以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]请教,关于导入的数据的验证方法 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146625) |
-- 作者:头狼 -- 发布时间:2020/2/27 18:31:00 -- [求助]请教,关于导入的数据的验证方法 先谢谢论坛老师最近的指点,《使用指南》层面的我还马马虎虎,《开发指南》层面的我没基础,只能复制粘贴,修修改改。 我想实现一个控制: 我单独建立【客户表】,用来存放所有客户名称等信息。 在录入其他表例如“合同表”的时候,如果录入的“客户名称”不在【客户表】里(错字也不行),就让录入的字体变成红色,单元格背景变成黄色。 我已知的内容: 如果“合同表”是一条一条录入新增的,可以利用“列表项目”、“目录树”、“禁止直接编辑”这些功能来约束以达到录入准确。 但是,如果“合同表”是导入数据的,那些约束就无效了, 就得有方法来验证“客户名称是否都在客户表里”。 另外,如果列属性设置了“禁止重复”,对于导入的数据如何检查一遍?“重置列”可以吗?
[此贴子已经被作者于2020/2/27 18:41:48编辑过]
|
-- 作者:sloyy -- 发布时间:2020/2/28 1:15:00 -- 你说的这些,都是使用方面的,要校验导入的数据,必须写代码,要从头开始慢慢看开发指南; 先说校验吧:你要在ValidateEdit事件里面写代码,查询客户表看看是否有同名记录, 如果有,就要用到DrawCell事件 调用预先设置好的自定义样式黄底红字 |
-- 作者:有点蓝 -- 发布时间:2020/2/28 9:57:00 -- 导入的时候就进行判断:http://www.foxtable.com/webhelp/topics/2334.htm |
-- 作者:头狼 -- 发布时间:2020/2/28 19:31:00 -- 谢谢楼上的老师们。 “导入的时候就判断”在我目前的使用情景不太友好,会打断导入过程。 我还是希望能允许导入,然后给出警示,让同事去修正错误。 高级筛选-关联筛选 功能里,可以勉强实现我的需求,但此功能藏得比较深。 另外,对很多表的“禁止重复”的数据列,如何快速警告呢?
[此贴子已经被作者于2020/2/28 19:33:27编辑过]
|
-- 作者:sloyy -- 发布时间:2020/2/28 19:38:00 -- 不写代码,很多功能是没法实现的. |
-- 作者:有点蓝 -- 发布时间:2020/2/28 20:47:00 -- 那就到drawcell里查询,然后设置样式 |
-- 作者:头狼 -- 发布时间:2021/9/11 10:26: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
|
-- 作者:头狼 -- 发布时间: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 自动恢复成默认了,这是怎么实现的啊?
|
-- 作者:有点蓝 -- 发布时间:2021/9/16 8:48:00 -- 只有符合条件e.style 才会等于 "样式1"。否则就是空的 |