以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码修正,如何判断代码在第一次运行的时候,判断当审结日期不等于空的时候,不增加告知内容,当代码第二次运行的时候,则增加告知内容数据。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132801) |
-- 作者:李孝春 -- 发布时间:2019/3/29 21:46:00 -- 代码修正,如何判断代码在第一次运行的时候,判断当审结日期不等于空的时候,不增加告知内容,当代码第二次运行的时候,则增加告知内容数据。 代码修正,如何实现代码在第一次运行的时候,判断当审结日期不等于空的时候,不增加告知内容,当代码第二次及以后代码运行的时候,则增加告知内容数据。 代码如下: Dim tb1 As WinForm.Table = e.Form.Controls("table1") Dim tb2 As WinForm.Table = e.Form.Controls("table2") For Each r1 As Row In tb1.Table.Rows Dim drs As List(of DataRow) = DataTables("职务").SQLSe lect("制单人=\'" & r1("承办人") & "\'") For Each dr As DataRow In drs Dim dr21 As DataRow = DataTables("告知内容").sqlfind("姓名 = \'" & dr("职务人员") & "\' and 部门受案号 = \'" & r1("部门受案号") & "\' and 审结日期 = #" & r1("审结日期") & "# " ) If dr21 Is Nothing Then \'如果不存在同编号的订单 Dim r2 As Row =tb2.Table.AddNew r2("姓名") = dr("职务人员") r2("流程时间")=r1("受理日期") r2("案件类别")=r1("案件类别") r2("审结日期")= r1("审结日期") r2("序号")= r1("_identify") r2.save End If Next Next |
-- 作者:有点蓝 -- 发布时间:2019/3/29 22:15:00 -- afteropenproject事件 vars("第一次") = 0 1楼的代码添加2行 if vars("第一次") = 0 then return vars("第一次") = 1 Dim tb1 As WinForm.Table = e.Form.Controls("table1") Dim tb2 As WinForm.Table = e.Form.Controls("table2") ……
|
-- 作者:李孝春 -- 发布时间:2019/3/30 1:47:00 -- 回复:(有点蓝)afteropenproject事件vars("第一次")... 有点蓝老师 不是整体代码运行一次 Dim tb1 As WinForm.Table = e.Form.Controls("table1") Dim tb2 As WinForm.Table = e.Form.Controls("table2") For Each r1 As Row In tb1.Table.Rows Dim drs As List(of DataRow) = DataTables("职务").SQLSe lect("制单人=\'" & r1("承办人") & "\'") 而是第一次运行这个整段代码时候 if tb1(“审结处理结果”)isnot nothing then 则不生成职务人员的所有告知内容 如果整体代码运行第二次的时候 if tb1(“审结处理结果”)isnot nothing then 就必须要生成职务人员的所有告知内容哦 For Each dr As DataRow In drs Dim dr21 As DataRow = DataTables("告知内容").sqlfind("姓名 = \'" & dr("职务人员") & "\' and 部门受案号 = \'" & r1("部门受案号") & "\' and 审结日期 = #" & r1("审结日期") & "# " ) If dr21 Is Nothing Then \'如果不存在同编号的订单 Dim r2 As Row =tb2.Table.AddNew r2("姓名") = dr("职务人员") r2("流程时间")=r1("受理日期") r2("案件类别")=r1("案件类别") r2("审结日期")= r1("审结日期") r2("序号")= r1("_identify") r2.save End If Next Next
|
-- 作者:有点蓝 -- 发布时间:2019/3/30 8:56:00 -- 没看出来有什么区别。 意思是遍历的时候第一行不处理,第二行开始处理?那就从第二行开始遍历不就行了
|
-- 作者:李孝春 -- 发布时间:2019/3/30 12:32:00 -- 回复:(有点蓝)没看出来有什么区别。意思是遍历的时... 不是哦 因为是从Excel表中导入的数据 实现在第一次导入Excel时,对于审结处理结果为空的数据,生成告知内容表信息,对于审结处理结果不为空的,不生成告知内容表信息。以后再次导入Excel时,不再做这个判断,所有的数据都生成告知内容表信息。
[此贴子已经被作者于2019/3/30 12:43:24编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/3/30 14:19:00 -- 用法一样,第一次导入的时候,设置vars("第一次") = 0 以后导入设置+1:vars("第一次") = vars("第一次")+1 判断vars("第一次") = 0就是第一次
|
-- 作者:李孝春 -- 发布时间:2019/3/30 15:42:00 -- 回复:(有点蓝)用法一样,第一次导入的时候,设置va... 试过 还是不得要领 继续求解! 不知道我这样理解对不对 就是当等于1的时候 执行一段代码 这个代码如果审结处理结果不为空时,不生成告知内容表数据 当不等于1的时候 执行另一端代码 这个代码如果审结处理结果不为空时,生成告知内容表数据
|
-- 作者:有点蓝 -- 发布时间:2019/3/30 15:53:00 -- 是的 |
-- 作者:李孝春 -- 发布时间:2019/3/30 16:01:00 -- 回复:(有点蓝)是的 蓝老师 是这样么? Dim tb1 As WinForm.Table = e.Form.Controls("table1") Dim tb2 As WinForm.Table = e.Form.Controls("table2") For Each r1 As Row In tb1.Table.Rows Dim drs As List(of DataRow) = DataTables("职务").SQLSe lect("制单人=\'" & r1("承办人") & "\'") If vars("第一次") = 0 Then If tb1("审结处理结果")<>"" Then MessageBox.Show(" 不生成职务人员的所有告知内容") End If Else MessageBox.Show(" 生成职务人员的所有告知内容") If tb1("审结处理结果")<>"" Then For Each dr As DataRow In drs Dim dr21 As DataRow = DataTables("告知内容").sqlfind("姓名 = \'" & dr("职务人员") & "\' and 部门受案号 = \'" & r1("部门受案号") & "\' and 审结日期 = #" & r1("审结日期") & "# " ) If dr21 Is Nothing Then \'如果不存在同编号的订单 Dim r2 As Row =tb2.Table.AddNew r2("姓名") = dr("职务人员") r2("流程时间")=r1("受理日期") r2("案件类别")=r1("案件类别") r2("审结日期")= r1("审结日期") r2("序号")= r1("_identify") r2.save End If End If Next End If Next [此贴子已经被作者于2019/3/30 17:01:16编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/3/30 16:56:00 -- If r1("审结处理结果")<>"" Then |