以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现窗口上明细表字段不重复? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142520) |
||||
-- 作者:lgz518 -- 发布时间:2019/10/29 16:17:00 -- 如何实现窗口上明细表字段不重复? 如何实现窗口上明细表字段不重复? 窗口上有销售主表和销售明细表,要实现功能是: 1、防止销售明细表重复录入,禁止销售明细表的字段单个字段或多个字段重复,如物料号,品名,规格的字段不能段重复;限制在窗口编辑,而不限制 整个表,也就是整个销售明细表可以重复,但窗口录入时是禁止重复; 禁止输入重复值 我们知道,列有禁止输入重复内容的属性,不过这个属性有局限,就是只有直接在表格中输入的时候才有效,如果你通过窗口输入或者是通过代码设置,同样可以输入重复内容。 禁止单列输入重复值 假定有个订单表,要求订单号列不能输入重复值,可以将这个表的DataColChanging事件代码设置为: If e.DataCol.Name = "订单号" Then 上述代码设置完成后,不管以任何方式,都无法输入重复的订单号。 禁止多列输入重复值 假定产品表有型号和规格两列,禁止输入型号和规格相同的产品,可以将这个表的DataColChanging事件代码设置为: Select Case e.DataCol.name 上面的代码有点繁琐。 我们可以变通一下,改为DataColChanged事件事件代码 ,同样可以禁止输入型号和规格相同的行,而且代码会简洁一些: Select Case e.DataCol.name |
||||
-- 作者:有点蓝 -- 发布时间:2019/10/29 16:23:00 -- 如果是normal,副本,到主表的DataColChanging事件写代码即可 |
||||
-- 作者:lgz518 -- 发布时间:2019/10/30 10:57:00 -- 老师,我试一下不行,我上个例,在\'窗口管理‘上,请指教,谢谢
|
||||
-- 作者:有点蓝 -- 发布时间:2019/10/30 11:00:00 -- 关联表到子表的事件,就是销售单表的DataColChanging事件写代码 |
||||
-- 作者:lgz518 -- 发布时间:2019/10/30 12:43:00 -- 可能我说明不明白,大部分开发是这样,数据源,数据表,窗体或页面操作设计,而狐表,大部分是表设计,表操作的思维,设计是表属性及表属性的事件,而窗体设计是窗体表引用,类于数据源的表引用,或说数据源引用,和按键事件,没有表属性及表属性的事件设计。 这么说,狐表内表设计的表,暂叫“狐源表”,常规我们都在“狐源表”设计,如表属性及表属性的事件,问题: 1.“狐源表”(数据源表),它是数据库表,是我们允许也字段重复,比如:我昨天买10个香蕉,今天又买10个香蕉,同产品和数据,但不时间或批次, 做为数据源表是允许也字段重复; 2.但同产品和数据,同一时间或批次,都在合并写,这里出现允许也字段重复,就是重复录入,是错。 简单说,数据存储时可以字段重复,录入时不允许也字段重复,现在要录入窗体限制重复,如实例,销售明细表,窗体上“销售明细表”是引用表,在窗体上没找到DataColChanging,只有在数据存储表或“狐源表”(数据源表)才能DataColChanging。 窗体上“销售明细表”的DataColChanging在哪里能找到?谢谢 |
||||
-- 作者:有点蓝 -- 发布时间:2019/10/30 13:40:00 -- 要看窗口表的类型啊,都说了如果是normal,副本,到主表的DataColChanging事件写代码即可 |
||||
-- 作者:lgz518 -- 发布时间:2019/10/30 14:55:00 -- 我试过不行,是normal,副本,主表和明细表窗口上没DataColChanging,我到源表的主表DataColChanging录入代码,没有效果,这个限制也不太对,主表没有明细表要限制的字段,放在主表怎么能限制,谢谢! |
||||
-- 作者:lgz518 -- 发布时间:2019/10/30 15:06:00 -- 请老师,用上面实例处理,谢谢 |
||||
-- 作者:有点蓝 -- 发布时间:2019/10/30 15:15:00 --
|