Foxtable(狐表)用户栏目专家坐堂 → 帮助查看一下代码动态合成表达式


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

主题:帮助查看一下代码动态合成表达式

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
帮助查看一下代码动态合成表达式  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1823 积分:19512 威望:0 精华:0 注册:2013/4/10 14:38:00
  发帖心情 Post By:2020/10/18 8:01:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2020/10/18 10:00:00 [只看该作者]

没弄明白啊,方便的话帮贴代码吧

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


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

几个问题
1、凡是使用current的地方都要先判断一下是否空值:http://www.foxtable.com/webhelp/topics/0445.htm,比如表格没有数据的时候,current就是空值
2、强烈建议不要使用_Identify做业务关联。这个是主键,不是行号,这个值基本是不可控的。行号仅在界面有意义,数据库里是没有行号这种概念的。建议使用单号,编号之类的数据查询
仅限在同一个表查询数据才有可能使用_Identify准确查询到数据。

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2020/10/19 8:44:00 [只看该作者]

老师,原来没有用行号进行处理,是以调度单号进行的关联
但因为跨表取值后,后台的数据不能时时更新,用RaiseDataColChanged的方法也得是加载后的数据才行,就想用这个办法
那要是想对后台的数据时时更新,老师指导一下,用什么方法

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2020/10/19 9:03:00 [只看该作者]

看不懂你的设计逻辑,不过两个不同表的_Identify,要相等,显示不可能。
你应该根据调度单号这种唯一的编号来设计。
关于合成表达式,,参考:

 回到顶部