以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联字段约制失效及改进建议  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144949)

--  作者:lgz518
--  发布时间:2020/1/3 16:51:00
--  关联字段约制失效及改进建议
1.一般关联表都是约制,主表关联字段没有录入数据,是不能录入明细表,不知什么原因,我做却可以,这个什么情况?
2.关联表的新增经常失效,也不知道什么原因?
With Tables("订单登记主表")
    If .Current Is Nothing OrElse .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
        Tables("订单登记主表").AddNew()
    End If
End With

3.建议:
3.1 对于关联字段在表和窗口上引用时,颜色标识来区别主表和明细表哪些字段是关联,比如红色,黑色是没关联字段。
3.2窗口设计时,字段和表,希望主表以卡片框,明细表以表编辑框批量生成及附加键也带上,比如常用附加键,增删改查等,类以雅奇那样设计,贺总是从雅奇出来,就知道它设计。这样提高开发效率

--  作者:有点蓝
--  发布时间:2020/1/3 17:07:00
--  
Foxtable没有这种关联表约束控制,主表,明细表随便哪个先添加数据都可以,如果要控制只能自己写代码处理。


窗口都是要自己设计的,您可以做一个通用的窗口,然后保存为模板,下次其它窗口就导入这个模板改改就好了

--  作者:lgz518
--  发布时间:2020/1/3 17:53:00
--  
With Tables("订单登记主表")
    If .Current Is Nothing OrElse .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改
        Tables("订单登记主表").AddNew()
    End If
End With

上面代码是这个”新增“按键单击事件,没增主表,而关掉开发系统,是什么问题?

--  作者:lgz518
--  发布时间:2020/1/3 17:57:00
--  
Foxtable没有这种关联表约束控制,主表,明细表随便哪个先添加数据都可以,如果要控制只能自己写代码处理。
1.关联表约束控制,会造成数据混乱,漏?
2.我们这种小白,自己写代码,那太难。
3.这个是共用通用的,怎么写?

--  作者:有点蓝
--  发布时间:2020/1/3 20:34:00
--  
3楼问题请上传实例测试

1、Foxtable的关联属于代码级别的,不是数据库级别的,无法像数据库一样做完整的约束。何况Foxtable的关联是可以双向的,也就是互为父子表,如果要约束,那么谁都添加不了数据。
2、不要老拿小白说事,谁都是这么过来的。公司也不会因为您是小白就减轻您的工作。恰恰相反,是否有持续的学习能力是当今评估人才的标准之一
3、其实也可以不用写代码,比如只允许在关联表里新增。