以文本方式查看主题

-  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