以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口中的表崩溃  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194589)

--  作者:JN_LC
--  发布时间:2024/12/25 10:05:00
--  [求助]窗口中的表崩溃
我窗口中有个目录树,还有个表,这个表是副本。
打开窗口后,对表中的记录进行编辑,编辑“重分类科目编号”这个列后这条记录就看不见了。正常的话,这要记录还应该在表中显示,不知道是什么原因。请指教。
窗口的AfterLoad事件代码如下:
Dim drs As List(of DataRow)=DataTables("kjkm").Select("科目对应 IS NOT null","[_Identify]")
Dim fil1 As String,fil2 As String,fil3 As String
For Each dr As DataRow In drs
    \'kgs.Add(dr("科目编码"),dr("科目对应"))
    If dr("科目编码") Like "2211-*" Then
        fil1=fil1 & "末级会计科目 LIKE \'%" & dr("科目编码") & "%\'|"
    ElseIf dr("科目编码") Like "5301-01-*" Then
        fil2=fil2 & "末级会计科目 LIKE \'%" & dr("科目编码") & "%\'|"
    ElseIf dr("科目编码") Like "5601-01-02-*" Then
        fil3=fil3 & "末级会计科目 LIKE \'%" & dr("科目编码") & "%\'|"
    End If
Next
fil1=fil1.trimend("|").Replace("|"," or ")
fil2=fil2.trimend("|").Replace("|"," or ")
fil3=fil3.trimend("|").Replace("|"," or ")
\'Dim fil4 As String="(" & fil1 & ")" & " " And (末级会计科目 LIKE \'%5601-01-02-01%\' OR 末级科目编号 LIKE \'%5301-01-%\')" \'2211中工资?五险一金及工会经费和教育经费这些科目对应的,且是计提的凭证,自动取2211的贷方数
\'Dim fil5 As String="(" & fil2 & ")" & " and 末级会计科目 NOT LIKE \'%6607%\'" \'5301中已经科目对应的,且不是结转研发费的凭证,自动取5301的借方数
\'Dim fil6 As String="(" & fil3 & ")" & " and 末级会计科目 NOT LIKE \'%5601-01-01-07%\'" \'5601-01-02中已经科目对应,且不是结转的凭证,自动取5601的借方数
\'fil4=fil4 & " or 末级会计科目 LIKE \'%2211-02-%\' And (末级会计科目 LIKE \'%5601-01-02-01%\' OR 末级科目编号 LIKE \'%5301-01-%\')" \'2211福利费虽没有对应,但是计提福利费的凭证,根据科目名称中的关键词自动取5601的借方
\'fil4=fil4 & " Or (末级会计科目 LIKE \'%2211-03-05%\'" & _
\'" Or 末级会计科目 LIKE \'%2211-04%\' or 末级会计科目 LIKE \'%2211-06%\'" & _
\'" Or 末级会计科目 LIKE \'%2211-07%\' or 末级会计科目 LIKE \'%2211-10%\')" & _
\'" and (末级会计科目 NOT LIKE \'%5601-01-%\' and 末级会计科目 NOT LIKE \'%5301-01-%\')" \'2211中除福利费外其他没有对应的,且不是计提间接费和计提研发费的凭证,需要手动重分类
\'fil5=fil5 & " or 末级会计科目 LIKE \'%5301-01-14-99%\' and 末级会计科目 NOT LIKE \'%6607%\'" \'5301中其他中的其他没有对应的,且不是结转研发费的凭证,需要手动重分类
\'fil6=fil6 & " or (末级会计科目 LIKE \'%5601-01-02-19%\' or 末级会计科目 LIKE \'%5601-01-02-21%\'" & _
\'" Or 末级会计科目 LIKE \'%5601-01-02-26%\')" & _
\'" And 末级会计科目 NOT LIKE \'%5601-01-01-07%\'" \'间接费中没有对应的科目,且不是结转间接费的凭证,根据摘要中的关键词自动重分类部分科目,没有关键词的需要手动重分类
Dim fil4 As String="(末级会计科目 Like \'%2211-03-05%\'" & _
" Or 末级会计科目 LIKE \'%2211-04%\' or 末级会计科目 LIKE \'%2211-06%\'" & _
" Or 末级会计科目 LIKE \'%2211-07%\' or 末级会计科目 LIKE \'%2211-10%\')" & _
" and (末级会计科目 NOT LIKE \'%5601-01-%\' and 末级会计科目 NOT LIKE \'%5301-01-%\')" \'2211中除福利费外其他没有对应的,且不是计提间接费和计提研发费的凭证,需要手动重分类
Dim fil5 As String="末级会计科目 Like \'%5301-01-14-99%\' and 末级会计科目 NOT LIKE \'%6607%\'" \'5301中其他中的其他没有对应的,且不是结转研发费的凭证,需要手动重分类
Dim fil6 As String="(末级会计科目 Like \'%5601-01-02-19%\' or 末级会计科目 LIKE \'%5601-01-02-21%\'" & _
" Or 末级会计科目 LIKE \'%5601-01-02-26%\')" & _
" And 末级会计科目 NOT LIKE \'%5601-01-01-07%\'" \'间接费中没有对应的科目,且不是结转间接费的凭证,根据摘要中的关键词自动重分类部分科目,没有关键词的需要手动重分类
Dim fil As String=fil4 & " or " & fil5 & " or " & fil6

Dim zts As String=DataTables("ZTMX").GetComboListString("账套编码","管理单位编号=\'1001001\'","[_Identify]")
zts=zts.Replace("|","\',\'")
zts="(\'" & zts & "\')"
DataTables("Drsj_pzdjb").StopRedraw
DataTables("Drsj_xsz").StopRedraw
DataTables("Drsj_pzdjb").FillLoadTime.Out=60
DataTables("Drsj_xsz").FillLoadTime.Out=60
DataTables("Drsj_pzdjb").LoadFilter="账套编码 IN " & zts & " AND " & fil
DataTables("Drsj_pzdjb").LoadOrder="[_Identify]"
DataTables("Drsj_pzdjb").load(False)
Application.DoEvents
DataTables("Drsj_pzdjb").LoadChildren("Drsj_xsz")
Application.DoEvents
DataTables("Drsj_xsz").ResumeRedraw
Application.DoEvents
DataTables("Drsj_pzdjb").ResumeRedraw
Application.DoEvents

Dim czb As Table=Tables("间接费重分类_jjfcfl")
\'Dim czb As Table=Tables("Drsj_xsz")
Dim dczb As DataTable=DataTables("Drsj_xsz")
MainTable=czb
Dim fil7 As String=fil1.Replace("末级会计科目 LIKE \'%","\'").replace("%\'","\'").replace(" or ",",")
Dim fil8 As String=fil2.Replace("末级会计科目 LIKE \'%","\'").replace("%\'","\'").replace(" or ",",")
Dim fil9 As String=fil3.Replace("末级会计科目 LIKE \'%","\'").replace("%\'","\'").replace(" or ",",")
fil7=fil7 & ",\'2211-02-01\',\'2211-02-02\',\'2211-03-05\',\'211-04\',\'2211-06\',\'2211-07\',\'2211-10\'"
fil8=fil8 & ",\'5301-01-14-99\'"
fil9=fil9 & ",\'5601-01-02-19\',\'5601-01-02-21\',\'5601-01-02-26\'"
Dim fil0 As String="(" & fil7 & "," & fil8 & "," & fil9 & ")"
czb.Filter="重分类科目编号 Is NULL And 末级科目编号 In " & fil0

Dim grid As C1FlexGrid.C1FlexGrid = czb.Grid
grid.BackColor = Color.Transparent
grid.Styles.EmptyArea.BackColor = Color.Transparent

czb.SetColVisibleWidth("账套简称|86|日期|73|凭证字号|61|摘要|265|末级科目编号|98|借方本位币|90|贷方本位币|90|重分类科目编号|98|重分类方式|60|重分类科目名称|98|重分类凭证金额|98")
\'czb.Cols("预算年度").TextAlign = TextAlignEnum.Center
\'\'czb.Cols("截止日期").TextAlign = TextAlignEnum.Center
Dczb.DataCols("借方本位币").SetFormat("#,##0.00")
Dczb.DataCols("贷方本位币").SetFormat("#,##0.00")
Dczb.DataCols("重分类凭证金额").SetFormat("#,##0.00")
czb.Cols("日期").AllowEdit=False
czb.Cols("凭证字号").AllowEdit=False
czb.Cols("摘要").AllowEdit=False
czb.Cols("末级科目编号").AllowEdit=False
czb.Cols("借方本位币").AllowEdit=False
czb.Cols("贷方本位币").AllowEdit=False
\'czb.Cols("预算金额").AllowEdit=True
czb.EnterKeyActionDown=True

\'\'czb.OpenLoadTree("账套简称")
\'czb.Cols("预算金额").GrandTotal = True \'指定要合计的列
\'\'czb.Cols("金额").GrandTotal = True
\'czb.GrandTotal = True \'显示合计模式

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dczb, "账套简称")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level=0 Then
        nd.text=nd.text & "(" & dczb.Compute("count(账套简称)","[账套简称] = \'" & nd.text & "\' AND 重分类科目编号 Is NULL And 末级科目编号 In " & fil0) & "条)"
    End If
Next
trv.Nodes.Insert("市政分公司所有","市政分公司所有(" & dczb.Compute("count(账套简称)","重分类科目编号 Is NULL And 末级科目编号 In " & fil0) & "条)",0)
trv.ResumeRedraw

czb.Filter = "(重分类科目编号 Is NULL or 重分类方式=\'手动\') And 末级科目编号 In " & fil0



--  作者:JN_LC
--  发布时间:2024/12/25 10:09:00
--  
控件TreeView1的NodeMouseClick代码如下:
Dim drs As List(of DataRow)=DataTables("kjkm").Select("科目对应 IS NOT null","[_Identify]")
Dim fil1 As String,fil2 As String,fil3 As String
For Each dr1 As DataRow In drs
    \'kgs.Add(dr("科目编码"),dr("科目对应"))
    If dr1("科目编码") Like "2211-*" Then
        fil1=fil1 & "末级会计科目 LIKE \'%" & dr1("科目编码") & "%\'|"
    ElseIf dr1("科目编码") Like "5301-01-*" Then
        fil2=fil2 & "末级会计科目 LIKE \'%" & dr1("科目编码") & "%\'|"
    ElseIf dr1("科目编码") Like "5601-01-02-*" Then
        fil3=fil3 & "末级会计科目 LIKE \'%" & dr1("科目编码") & "%\'|"
    End If
Next
fil1=fil1.trimend("|").Replace("|"," or ")
fil2=fil2.trimend("|").Replace("|"," or ")
fil3=fil3.trimend("|").Replace("|"," or ")
Dim fil7 As String=fil1.Replace("末级会计科目 LIKE \'%","\'").replace("%\'","\'").replace(" or ",",")
Dim fil8 As String=fil2.Replace("末级会计科目 LIKE \'%","\'").replace("%\'","\'").replace(" or ",",")
Dim fil9 As String=fil3.Replace("末级会计科目 LIKE \'%","\'").replace("%\'","\'").replace(" or ",",")
fil7=fil7 & ",\'2211-02-01\',\'2211-02-02\',\'2211-03-05\',\'211-04\',\'2211-06\',\'2211-07\',\'2211-10\'"
fil8=fil8 & ",\'5301-01-14-99\'"
fil9=fil9 & ",\'5601-01-02-19\',\'5601-01-02-21\',\'5601-01-02-26\'"
Dim fil0 As String="(" & fil7 & "," & fil8 & "," & fil9 & ")"

Dim Filter As String=""
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If e.Node.Text <> "市政分公司所有" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[账套简称] = \'" & dr("账套简称") & "\' AND ([重分类科目编号] Is NULL OR [重分类方式]=\'手动\') And [末级科目编号] In " & fil0
        \'Case 1
            \'Filter = "[产品] = \'" & dr("产品") & "\' And [客户] = \'" & dr("客户") & "\'"
        \'Case 2
            \'Filter = "[产品] = \'" & dr("产品") & "\' And [客户] = \'" & dr("客户") & "\' And [雇员] = \'" & dr("雇员") & "\'"
    End Select
ElseIf e.Node.Text="市政分公司所有" Then
    Filter ="([重分类科目编号] Is NULL OR [重分类方式]=\'手动\') And [末级科目编号] In " & fil0
End If
Tables("间接费重分类_jjfcfl").Filter = Filter


帖子内容有限制,其他代码发不了了
[此贴子已经被作者于2024/12/25 10:09:55编辑过]

--  作者:有点蓝
--  发布时间:2024/12/25 10:13:00
--  
如果对表做了筛选,然后编辑筛选条件有关的列,列数据不符合筛选条件,当然就被筛选掉了看不到