以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 帮助查看一下代码动态合成表达式 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157483) |
-- 作者:HANZHIGANG -- 发布时间:2020/10/17 22:23:00 -- 帮助查看一下代码动态合成表达式 就是为了实现双击Tables("调度管理_table1")当前行后,找出DataTables("运单管理")后台数据中对应行号行的调度单号、车牌号等列替换为Tables("调度管理")当前行对应列的信息。其中Filter = "cr = \'" DataTables("运单管理").SQLFind("[_Identify] = " & pr("_Identify") & ") ""动态表达式不会写了,请老师指导 全部代码如下,如有其他不合理的地方,请老师一并指出、指导 Dim dr As Row = Tables("调度管理").Current Dim pr As Row = Tables("调度管理_table1").Current Dim cr As DataRow Dim Filter As String Filter = "cr = \'" DataTables("运单管理").SQLFind("[_Identify] = " & pr("_Identify") & ") ""(这句不会写了,老师指导一下) If dr IsNot Nothing If dr.IsNull("车牌号") OrElse dr.IsNull("驾驶员") OrElse dr.IsNull("调度动态") OrElse dr.IsNull("实际发车日期") Then MessageBox.Show("蓝色字体不能为空,请填写完整后再选运单!") Else If pr("调度选定") = False Then DataTables("运单管理").SQLReplaceFor("调度选定", 1,Filter) DataTables("运单管理").SQLReplaceFor("调度单号", dr("调度单号"),Filter) DataTables("运单管理").SQLReplaceFor("车牌号", dr("车牌号"),Filter) DataTables("运单管理").SQLReplaceFor("驾驶员", dr("驾驶员"),Filter) DataTables("运单管理").SQLReplaceFor("承运单位", dr("承运单位"),Filter) DataTables("运单管理").SQLReplaceFor("车辆类型", dr("车辆类型"),Filter) DataTables("运单管理").SQLReplaceFor("调度日期", dr("调度日期"),Filter) DataTables("运单管理").SQLReplaceFor("实际发车日期", dr("实际发车日期"),Filter) pr.Remove() Tables("调度管理_table2").DataTable.LoadFilter = "调度单号 = \'" & dr("调度单号") & "\'" Tables("调度管理_table2").DataTable.load() Tables("调度管理").DataTable.DataCols("调度单号").RaiseDataColChanged((Tables("调度管理").Current.DataRow)) Else MessageBox.Show("此运单已被其他调度单选定,无法进行二次调度,请核实后再进行选择!") End If End If End If [此贴子已经被作者于2020/10/18 18:30:52编辑过]
|
-- 作者:wei0769 -- 发布时间:2020/10/18 8:01:00 -- 此主题相关图片如下:1.jpg |
-- 作者:HANZHIGANG -- 发布时间:2020/10/18 10:00:00 -- 没弄明白啊,方便的话帮贴代码吧 |
-- 作者:有点蓝 -- 发布时间:2020/10/18 21:24:00 -- 几个问题 1、凡是使用current的地方都要先判断一下是否空值:http://www.foxtable.com/webhelp/topics/0445.htm,比如表格没有数据的时候,current就是空值 2、强烈建议不要使用_Identify做业务关联。这个是主键,不是行号,这个值基本是不可控的。行号仅在界面有意义,数据库里是没有行号这种概念的。建议使用单号,编号之类的数据查询 仅限在同一个表查询数据才有可能使用_Identify准确查询到数据。
|
-- 作者:HANZHIGANG -- 发布时间:2020/10/19 8:44:00 -- 老师,原来没有用行号进行处理,是以调度单号进行的关联 但因为跨表取值后,后台的数据不能时时更新,用RaiseDataColChanged的方法也得是加载后的数据才行,就想用这个办法 那要是想对后台的数据时时更新,老师指导一下,用什么方法
|
-- 作者:有点酸 -- 发布时间:2020/10/19 9:03:00 -- 看不懂你的设计逻辑,不过两个不同表的_Identify,要相等,显示不可能。 你应该根据调度单号这种唯一的编号来设计。 关于合成表达式,,参考:
|