以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何将下边的代码生成的数据保存,下次打开表的时候还在呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=28981)

--  作者:hrw68529
--  发布时间:2013/2/25 8:41:00
--  [求助]如何将下边的代码生成的数据保存,下次打开表的时候还在呢?
为什么下面一段代码执行后的数据,不有保存,保存后,再打开表,数据没有了,必须"重置列",为什么?,能否想办法,生成数据后,保存,请指教
Select Case e.DataCol.Name
    Case "审签序号"
        Dim total As Long
        Total = DataTables("人员增减").Compute("Count(_Identify)", "进入渠道 = 1 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("转任") = Iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "进入渠道 = 2 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("调任") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "进入渠道 = 3 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("交流") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "进入渠道 = 4 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("军转") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "进入渠道 = 5 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("考录") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "进入渠道 = 6 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("过渡") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "退出渠道 = 1 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("调出") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "退出渠道 = 2 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("退休") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "退出渠道 = 3 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("辞职辞退") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "退出渠道 = 4 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("开除") = iif(Total = 0, Nothing, Total)
        Total = DataTables("人员增减").Compute("Count(_Identify)", "退出渠道 = 5 And 审签序号 = \'" & e.DataRow("审签序号") & "\'")
        e.DataRow("死亡") = iif(Total = 0, Nothing, Total)
End Select


--  作者:狐狸爸爸
--  发布时间:2013/2/25 8:55:00
--  

是不是这个原因:

http://www.foxtable.com/help/topics/1380.htm

 


--  作者:lin_hailun
--  发布时间:2013/2/25 8:58:00
--  
 你的这个数据表是临时表么?

http://www.foxtable.com/help/topics/0626.htm

 如果不是,是否是你没有保存?

--  作者:hrw68529
--  发布时间:2013/2/25 9:29:00
--  
谢谢狐爸,你说的对着,我已经改过来了,下边一段代码,还需你帮一下,原因:已登记人数第一次引用初始登记人数,随着数据变化,引用登记后人数,但行政编制数引用的不变,怎么加上,也就是引用的单位基础数据中的行政编制数不变,而已登记人数需随着数据变化而变化,请帮修改下.代码如下:
Select Case e.DataCol.Name
    Case "县区", "单位名称"
        If e.DataRow.IsNull("县区") = False AndAlso e.DataRow.IsNull("单位名称") = False Then
            Dim fdr As DataRow = e.DataTable.Find("县区 = \'" & e.DataRow("县区") & "\' and 单位名称 = \'" & e.DataRow("单位名称") & "\' And _Identify <> " & e.DataRow("_Identify"), "_Identify Desc")
            If fdr Is Nothing Then
                fdr = DataTables("单位基础数据").Find("县区 = \'" & e.DataRow("县区") & "\' and 单位名称 = \'" & e.DataRow("单位名称") & "\'")
                If fdr IsNot Nothing Then
                e.DataRow("已登记人数") = fdr("初始登记人数")
                End If
            Else
                e.DataRow("已登记人数") = fdr("登记后人数")
            End If
        End If
End Select

--  作者:lin_hailun
--  发布时间:2013/2/25 9:46:00
--  
 行政编制数根据什么得出?怎么去变?
--  作者:hrw68529
--  发布时间:2013/2/25 9:53:00
--  
行政编制数在单位基础数据中,一般不变,直接输入的
--  作者:hrw68529
--  发布时间:2013/2/25 10:35:00
--  
就像已登记人数引用初始登记人数一样,只不过,行政编制数引用不变化
--  作者:hrw68529
--  发布时间:2013/2/25 10:36:00
--  
我把e.DataRow("行政编制数") = fdr("行政编制数") 加到e.DataRow("已登记人数") = fdr("初始登记人数")上方,第一次引用有数据,但第二次引用该单位时,不出现数据,
--  作者:hrw68529
--  发布时间:2013/2/25 10:38:00
--  
就像以下代码:
Select Case e.DataCol.Name
    Case "县区", "单位名称"
        If e.DataRow.IsNull("县区") = False AndAlso e.DataRow.IsNull("单位名称") = False Then
            Dim fdr As DataRow = e.DataTable.Find("县区 = \'" & e.DataRow("县区") & "\' and 单位名称 = \'" & e.DataRow("单位名称") & "\' And _Identify <> " & e.DataRow("_Identify"), "_Identify Desc")
            If fdr Is Nothing Then
                fdr = DataTables("单位基础数据").Find("县区 = \'" & e.DataRow("县区") & "\' and 单位名称 = \'" & e.DataRow("单位名称") & "\'")
                If fdr IsNot Nothing Then
                e.DataRow("行政编制数") = fdr("行政编制数") 
                e.DataRow("已登记人数") = fdr("初始登记人数")
                End If
            Else
                e.DataRow("已登记人数") = fdr("登记后人数")
            End If
        End If
End Select


--  作者:lin_hailun
--  发布时间:2013/2/25 11:18:00
--  
 这样改一下吧。

Select Case e.DataCol.Name
    Case "县区", "单位名称"
        If e.DataRow.IsNull("县区") = False AndAlso e.DataRow.IsNull("单位名称") = False Then
            Dim fdr As DataRow = e.DataTable.Find("县区 = \'" & e.DataRow("县区") & "\' and 单位名称 = \'" & e.DataRow("单位名称") & "\' And _Identify <> " & e.DataRow("_Identify"), "_Identify Desc")
            If fdr Is Nothing Then
                fdr = DataTables("单位基础数据").Find("县区 = \'" & e.DataRow("县区") & "\' and 单位名称 = \'" & e.DataRow("单位名称") & "\'")
                If fdr IsNot Nothing Then
                    e.DataRow("已登记人数") = fdr("初始登记人数")
                End If
            Else
                e.DataRow("已登记人数") = fdr("登记后人数")
            End If
             e.DataRow("行政编制数") = fdr("行政编制数")
        End If
End Select