Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口中的表崩溃


  共有23人关注过本帖树形打印复制链接

主题:[求助]窗口中的表崩溃

帅哥哟,离线,有人找我吗?
JN_LC
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:139 积分:1583 威望:0 精华:0 注册:2015/12/7 13:25:00
[求助]窗口中的表崩溃  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:139 积分:1583 威望:0 精华:0 注册:2015/12/7 13:25:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/25 10:13:00 [只看该作者]

如果对表做了筛选,然后编辑筛选条件有关的列,列数据不符合筛选条件,当然就被筛选掉了看不到

 回到顶部