以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]跨表引用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120127) |
||||
-- 作者:天一生水 -- 发布时间:2018/6/7 16:43:00 -- [求助]跨表引用 合并发送多个案件后,怎样根据这个不规则的案号,在勾选“邮寄”后,将“邮寄清单”中的数据,填入数据表的相应案件中。
此主题相关图片如下:image 1.jpg 此主题相关图片如下:image 2.jpg
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/7 17:15:00 -- \'\'\' Dim str As String = "(2018)鲁01行初330、333、356-358、赔初10-12号" Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(\\([0-9]+\\)[鲁0-9]+)|(行初[0-9\\-]+)|(赔初[0-9\\-]+)|([0-9\\-]+)") Dim qz As String = "" Dim lx As String = "" For i As Integer = 0 To mc.count-1 Dim s As String = mc(i).value msgbox(s) If i = 0 Then qz = s Else If s.StartsWith("行初") Then lx = "行初" s = s.replace("行初", "") ElseIf s.StartsWith("赔初") Then lx = "赔初" s = s.replace("赔初", "") End If Dim ii = 0 Dim jj = 0 If s.Indexof("-") >= 0 Then ii = s.split("-")(0) jj = s.split("-")(1) Else ii = s jj = s End If For k As Integer = ii To jj msgbox(qz & lx & k & "号") Next End If Next |
||||
-- 作者:天一生水 -- 发布时间:2018/6/7 21:58:00 -- 谢谢甜老师! 还有点问题: 每个案件会在多个时间向被送达人邮寄文书,当确定邮寄后(勾选逻辑列),把当前记录的“邮寄清单”写入数据表; 上次请教过老师单元格追加的问题,这次把不规则案号邮寄的代码合并写入DataColChanged事件中,但是不同时间追加的代码不会修改,请老师帮助,谢谢! 此主题相关图片如下:aa.jpg
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/7 22:12:00 -- 不明白你的意思。
你要做什么操作以后,得到什么效果? |
||||
-- 作者:天一生水 -- 发布时间:2018/6/7 22:30:00 -- 先把勾选都去掉,例子里有相同案号但不同时间的(比如,第一行和第二行)邮寄清单。 勾选第一行后,第一行的“邮寄清单“写入数据表的相同案号里;再勾选第二行(案号和第一行相同),把第二行的“邮寄清单“内容追加进刚才的单元格。
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/7 22:52:00 -- If e.DataCol.Name = "邮寄" Then \'如果内容发生变动的是品名列 \'’If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空 \'e.DataRow("邮寄清单") = Nothing \'那么清空此行单价列的内容 \'Else Dim str As String = e.DataRow("案号") Dim drs = e.DataTable.Select("案号=\'" & str & "\' and 邮寄 = true", "收寄日期") Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(\\([0-9]+\\)[鲁0-9]+)|(行初[0-9\\-]+)|(赔初[0-9\\-]+)|(行终[0-9\\-]+)|([0-9\\-]+)") Dim qz As String = "" Dim lx As String = "" For i As Integer = 0 To mc.count-1 Dim s As String = mc(i).value \'msgbox(s) If i = 0 Then qz = s Else If s.StartsWith("行初") Then lx = "行初" s = s.replace("行初", "") ElseIf s.StartsWith("赔初") Then lx = "行赔初" s = s.replace("赔初", "") ElseIf s.StartsWith("行终") Then lx = "行终" s = s.replace("行终", "") End If Dim ii = 0 Dim jj = 0 If s.Indexof("-") >= 0 Then ii = s.split("-")(0) jj = s.split("-")(1) Else ii = s jj = s End If For k As Integer = ii To jj \'msgbox(qz & lx & k & "号") Dim dr1 As DataRow dr1 = DataTables("数据表").Find("[案号] = \'" & qz & lx & k & "号" & "\'") If dr1 IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing Dim ls As new List(of String) For Each cdr As DataRow In drs For Each l As String In cdr.lines("邮寄清单") If ls.Contains(l) = False Then ls.Add(l) End If Next Next dr1.lines("邮寄清单") = ls End If Next End If Next End If |