Foxtable(狐表)用户栏目专家坐堂 → [求助]请教,关于导入的数据的验证方法


  共有2525人关注过本帖树形打印复制链接

主题:[求助]请教,关于导入的数据的验证方法

帅哥哟,离线,有人找我吗?
头狼
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:56 积分:570 威望:0 精华:0 注册:2020/2/7 16:19:00
[求助]请教,关于导入的数据的验证方法  发帖心情 Post By:2020/2/27 18:31:00 [只看该作者]

先谢谢论坛老师最近的指点,《使用指南》层面的我还马马虎虎,《开发指南》层面的我没基础,只能复制粘贴,修修改改。
我想实现一个控制:
我单独建立【客户表】,用来存放所有客户名称等信息。
在录入其他表例如“合同表”的时候,如果录入的“客户名称”不在【客户表】里(错字也不行),就让录入的字体变成红色,单元格背景变成黄色。

我已知的内容:
如果“合同表”是一条一条录入新增的,可以利用“列表项目”、“目录树”、“禁止直接编辑”这些功能来约束以达到录入准确。
但是,如果“合同表”是导入数据的,那些约束就无效了,
就得有方法来验证“客户名称是否都在客户表里”。

另外,如果列属性设置了“禁止重复”,对于导入的数据如何检查一遍?“重置列”可以吗?
[此贴子已经被作者于2020/2/27 18:41:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2177 积分:13784 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/2/28 1:15:00 [只看该作者]

你说的这些,都是使用方面的,要校验导入的数据,必须写代码,要从头开始慢慢看开发指南;

先说校验吧:你要在ValidateEdit事件里面写代码,查询客户表看看是否有同名记录,

如果有,就要用到DrawCell事件 调用预先设置好的自定义样式黄底红字


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105487 积分:536426 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/28 9:57:00 [只看该作者]

导入的时候就进行判断:http://www.foxtable.com/webhelp/topics/2334.htm

 回到顶部
帅哥哟,离线,有人找我吗?
头狼
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:56 积分:570 威望:0 精华:0 注册:2020/2/7 16:19:00
  发帖心情 Post By:2020/2/28 19:31:00 [只看该作者]

谢谢楼上的老师们。
“导入的时候就判断”在我目前的使用情景不太友好,会打断导入过程。
我还是希望能允许导入,然后给出警示,让同事去修正错误。
高级筛选-关联筛选 功能里,可以勉强实现我的需求,但此功能藏得比较深。

另外,对很多表的“禁止重复”的数据列,如何快速警告呢?
[此贴子已经被作者于2020/2/28 19:33:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2177 积分:13784 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/2/28 19:38:00 [只看该作者]

不写代码,很多功能是没法实现的.

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105487 积分:536426 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/28 20:47:00 [只看该作者]

那就到drawcell里查询,然后设置样式

 回到顶部
帅哥哟,离线,有人找我吗?
头狼
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:56 积分:570 威望:0 精华:0 注册:2020/2/7 16:19:00
  发帖心情 Post By:2021/9/11 10:26:00 [只看该作者]

老师,我又遇到这个问题了。
没懂您说的。

订单表里的“客户”,需要验证“是否存在于客户表的“客户”列”。

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105487 积分:536426 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/11 11:01:00 [只看该作者]

drawcell事件

if e.col.name = "客户" andalso e.row.isnull("客户") = false then
if tabels("客户").compute("count(客户)","客户='" & e.row("客户")  & "'") =0 then
e.style = "样式1"
end if
end if

 回到顶部
帅哥哟,离线,有人找我吗?
头狼
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:56 积分:570 威望:0 精华:0 注册:2020/2/7 16:19:00
  发帖心情 Post By:2021/9/16 8:35:00 [只看该作者]

以下是引用有点蓝在2021/9/11 11:01:00的发言:
drawcell事件

if e.col.name = "客户" andalso e.row.isnull("客户") = false then
if tabels("客户").compute("count(客户)","客户='" & e.row("客户")  & "'") =0 then
e.style = "样式1"
end if
end if


谢谢老师,我成功了。
我有个疑问啊:当“条件”不满足后,单元格的 style 自动恢复成默认了,这是怎么实现的啊?


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105487 积分:536426 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/16 8:48:00 [只看该作者]

只有符合条件e.style 才会等于 "样式1"。否则就是空的

 回到顶部