以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]移动行问题:  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=113171)

--  作者:狂风暴雨狂波
--  发布时间:2018/1/10 15:03:00
--  [求助]移动行问题:
设置代码在table中行动行,行动完后表中行的位置显示是对的,为什么关闭项目重启后再来看这个表,行的位置又不对了,怎么回事呀?
--  作者:有点甜
--  发布时间:2018/1/10 15:16:00
--  
你用什么代码设置table移动行的?贴出你写的代码。
--  作者:狂风暴雨狂波
--  发布时间:2018/1/10 15:29:00
--  

Dim dr As Row = Tables("注册表.会计期间表").Current
Dim n As Integer=dr("会计年度")
Dim m As Integer = dr("会计月份")
Dim r As Integer = Date.DaysInMonth(n,m)
Dim d As Date = New Date(n,m,r)
e.Form.Controls("DateTimePicker1").Value = d
Dim sbh As String = Tables("注册表").Current("纳税识别号")

Dim yjkmdms As New List(Of DataRow)
yjkmdms=DataTables("会计科目表").Select("是否一级科目=\'是\' And 纳税识别号=\'" & sbh & "\'")
Dim kmdm As String
Dim kmmc As String
For Each yjkmdm As DataRow In yjkmdms
    kmdm=yjkmdm("科目代码")
    kmmc=yjkmdm("科目名称")
    Dim tr As DataRow =DataTables("一级科目余额表").Find("年=" & n & " And 月=" & m & " And 科目代码=\'" & kmdm & "\'And 纳税识别号=\'" & sbh & "\'")
    If tr Is Nothing Then
        tr=DataTables("一级科目余额表").AddNew()
        tr("年")=n
        tr("月")=m
        tr("科目代码")=kmdm
        tr("科目名称")=kmmc
        tr("借方金额")=DataTables("凭证明细").Compute("sum(借方金额)","年=" & n & " And 年_月=" & m & " And 会计科目代码 Like \'" & kmdm & "%\' And 纳税识别号=\'" & sbh & "\'")
        tr("贷方金额")=DataTables("凭证明细").Compute("sum(贷方金额)","年=" & n & " And 年_月=" & m & " And 会计科目代码 Like \'" & kmdm & "%\' And 纳税识别号=\'" & sbh & "\'")
        tr.Save
        tr.Locked=True
        With Tables("一级科目余额表")
            Dim qcwz As Integer
            qcwz=.FindRow(tr)
            If qcwz>=0 Then
                .Position=qcwz
                Dim count As Integer
                Dim dyns As New List(Of DataRow)
                Dim xyns As New List(Of DataRow)
                dyns=DataTables("一级科目余额表").Select("年>" & n & " ")
                xyns=DataTables("一级科目余额表").Select("年=" & n & " And 月>" & m & " ")
                If m=12 Then
                    count=dyns.Count
                Else
                    count=dyns.Count+xyns.Count
                End If
                .Current.Move(qcwz-count)
                \'.Current.Save
                \'.Current.Locked=True
                \'.Current.DataRow.Save
            End If
        End With
    Else
        tr("借方金额")=DataTables("凭证明细").Compute("sum(借方金额)","年=" & n & " And 年_月=" & m & " And 会计科目代码 Like \'" & kmdm & "%\' And 纳税识别号=\'" & sbh & "\'")
        tr("贷方金额")=DataTables("凭证明细").Compute("sum(贷方金额)","年=" & n & " And 年_月=" & m & " And 会计科目代码 Like \'" & kmdm & "%\' And 纳税识别号=\'" & sbh & "\'")
    End If
Next


--  作者:狂风暴雨狂波
--  发布时间:2018/1/10 15:32:00
--  
此段代码运行没任何错误提示.
--  作者:狂风暴雨狂波
--  发布时间:2018/1/10 15:34:00
--  
在窗口中AfterLoad中运行的.
--  作者:狂风暴雨狂波
--  发布时间:2018/1/10 16:03:00
--  
移动行对外部表是不是不起作用?
--  作者:有点甜
--  发布时间:2018/1/10 16:14:00
--  

1、表格数据全部加载出来了没有?要全部加载出来,才能排序。

 

2、排好序以后,你要保存表格数据的。

 

3、做个例子发上来测试。


--  作者:狂风暴雨狂波
--  发布时间:2018/1/10 17:02:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:资产负债表.zip

打开资产负债表窗口
--  作者:有点甜
--  发布时间:2018/1/10 18:01:00
--  

就你的例子来说,如何操作后,什么数据位置不正确?截图说明。

 

 


--  作者:狂风暴雨狂波
--  发布时间:2018/1/11 9:08:00
--  
操作顺序:打开项目,将"一级科目余额表"中的数据删除,然后打开"资产负债表"窗口,然后选择日期2017年12月31日,数据处理完后,再选择日期2017年11月30日,数据处理完后关闭"资产负债表"窗口,查看"一级科目余额表"的数据排列情况是按11,12,18年1月的顺序排列的,然后保存数据,退出项目,再重新打开项目查看"一级科目余额表"的数据排列顺序,结果明显不同,数据排列顺序和保存时的排列顺序明显不同.由于月份的排列顺序不同,导致月份的期初余额和期末余额不同.