以文本方式查看主题

-  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=158057)

--  作者:zhuxinhui
--  发布时间:2020/11/6 10:59:00
--  组合统计表列顺序调整
使用组合多个统计结果,但不知怎样才能调整生成表列的显示顺序,
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20201106105619.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/11/6 11:15:00
--  
参考:http://www.foxtable.com/webhelp/topics/0587.htm

[此贴子已经被作者于2020/11/6 11:14:58编辑过]

--  作者:zhuxinhui
--  发布时间:2020/11/6 11:40:00
--  
多谢,有时间还得通读一遍说明书才好


--  作者:zhuxinhui
--  发布时间:2020/11/6 11:44:00
--  
现在组合表是根据凭证明细表--科目编码列进行统计组合的,凭证科目编码列都是最低级的科目编码,现在想同时统计显示一级到明细级科目编码的数据,要怎样统计?


--  作者:有点蓝
--  发布时间:2020/11/6 11:50:00
--  
没看懂,截图举例说明一下
--  作者:zhuxinhui
--  发布时间:2020/11/6 12:03:00
--  
例如:科目编码600100020001,这个是三级科目最低级的,他上面还有一级的6001及二级的60010002,这个一二级如果才能显示统计出来
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20201106120044.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/11/6 12:07:00
--  
请做个例子发上来测试
--  作者:zhuxinhui
--  发布时间:2020/11/6 17:03:00
--  
现在改为调用科目明细来做,但是使用SQLCompute计算很慢
--  作者:zhuxinhui
--  发布时间:2020/11/6 17:03:00
--  
老师有什么办法可以帮我提速下
Dim s As Table = Tables("科目表")
For i As Integer = 0 To s.Rows.count-1
    Dim b1 As String = s.Rows(i)("科目编码")
    Dim dr As DataRow
    Dim dn As DataRow
    Dim y As Date = e.Form.Controls("enddate").value
    Dim yy As Integer = y.Year
    Dim dt As New Date(yy, 1, 1)
    dr = DataTables("试算平衡表").Find("科目编码 = \'" & b1 & "\'")
    If dr Is Nothing Then
        dr = DataTables("试算平衡表").AddNew()
        dr("科目编码") = s.Rows(i)("科目编码")
        dr("科目名称") = s.Rows(i)("科目名称")
        dr("累计借方金额") = DataTables("凭证明细").SQLCompute("sum(借方金额)","[科目编码] =\'" & s.Rows(i)("科目编码") & "\'And 编制日期 >= #"& star &"# And 编制日期 <= #" & e.Form.Controls("startdate").value & "#")
        dr("累计贷方金额") = DataTables("凭证明细").SQLCompute("sum(贷方金额)","[科目编码] =\'" & s.Rows(i)("科目编码") & "\'And 编制日期 >= #"& star &"# And 编制日期 <= #" & e.Form.Controls("startdate").value & "#")
        dr("期初余额") = dr("累计借方金额") - dr("累计贷方金额")
        dr("本期借方") = DataTables("凭证明细").SQLCompute("sum(借方金额)","[科目编码] =\'" & s.Rows(i)("科目编码") & "\'And 编制日期 >= #" & e.Form.Controls("startdate").value & "# " & " And 编制日期 <= #" & e.Form.Controls("enddate").value & "#")
        dr("本期贷方") = DataTables("凭证明细").SQLCompute("sum(贷方金额)","[科目编码] =\'" & s.Rows(i)("科目编码") & "\'And 编制日期 >= #" & e.Form.Controls("startdate").value & "# " & " And 编制日期 <= #" & e.Form.Controls("enddate").value & "#")
        dr("本期余额") = dr("期初余额") + dr("本期借方") - dr("本期贷方")
        dr("本年借方") = DataTables("凭证明细").SQLCompute("sum(借方金额)","[科目编码] =\'" & s.Rows(i)("科目编码") & "\'And 编制日期 >= #"& dt &"# And 编制日期 <= #" & e.Form.Controls("enddate").value & "#")
        dr("本年贷方") = DataTables("凭证明细").SQLCompute("sum(贷方金额)","[科目编码] =\'" & s.Rows(i)("科目编码") & "\'And 编制日期 >= #"& dt &"# And 编制日期 <= #" & e.Form.Controls("enddate").value & "#")
    End If
Next
Tables("试算平衡表").SetColVisibleWidth("科目编码|120|科目名称|120|期初方向|60|期初余额|120|本期借方|120|本期贷方|120|余额方向|60|本期余额|120|本年借方|120|本年贷方|120")
DataTables("试算平衡表").Save()

--  作者:有点蓝
--  发布时间:2020/11/6 17:17:00
--  
SQLCompute没有办法提速,先生成统计表,在从统计表取数据