Foxtable(狐表)用户栏目专家坐堂 → 初始数的科目汇总


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

主题:初始数的科目汇总

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
初始数的科目汇总  发帖心情 Post By:2021/5/20 15:26:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210520144832.png
图片点击可在新窗口打开查看

  初始数是手工输入的,要求逐级汇总科目初始金额,科目代码由逐级添加4位数区别科目级数,最后添加一行合并科目代码列与科目名称列单元格,在初始余额列汇总所有一级科目初始余额,我这样写,红色标注代码报错:
代码发不上来,只能用wps上传。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:科目汇总代码.rar



[此贴子已经被作者于2021/5/20 15:30:59编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 16:52:00 [显示全部帖子]

Tables("初始数据_Table1")的AfterLoad事件写入下面的代码,在窗口的Table1中加载资产表:
Tables("初始数据_Table1").Fill("Select * Fro m {资产}",False)
With Tables("初始数据_Table1")
    .SetColVisibleWidth("科目代码|110|科目名称|130|借或贷|50|初始数量|70|初始余额|70")
End With

在Tables("初始数据_Table1")的DataColChanged事件写入下面的代码能保存,但并没添加行:
With DataTables("初始数据_Table1")
    Dim km As String = e.DataRow("科目代码")
    For i1 As Integer = (km.Length / 4) - 1 To 1
        Dim c1 As Integer = 4 * i1
        Dim dr1 As DataRow = .find("[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "%'")
        If (e.DataCol.Name = "科目代码" OrElse e.DataCol.Name = "科目名称") AndAlso "[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "%'" Then
            e.Cancel = True '取消编辑
        Else
            dr1("借或贷") = "借"
            dr1("初始余额") = .Compute("Sum(初始余额)", "[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "%'")
        End If
    Next
    Dim rt1 As DataRow = .AddNew()
    rt1("科目代码") = "资产总计"
    rt1("借或贷") = "借"
    rt1("初始余额") = .Compute("Sum(初始余额)", "[科目代码] = '" & e.DataRow("科目代码").SubString(0,4) & "%'")
    .DataCols("初始数量").SetFormat("#,###.##")
    .DataCols("初始余额").SetFormat("#,###.##")
End With

Tables("初始数据_Table1")的DrawCell事件中写入下面代码报错:
Dim zc As WinForm.Table = e.Form.Controls("Table1")
Dim tb1 As Table = zc.Table
tb1.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
Dim rng As C1.Win.C1FlexGrid.CellRange = tb1.Grid.GetCellRange(tb1.Row.count -1, 0, tb1.Row.count -1, 1)
tb1.Grid.MergedRanges.Add(rng)
[此贴子已经被作者于2021/5/20 16:53:19编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 17:25:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210520172053.png
图片点击可在新窗口打开查看
这段代码写在AfterLoad事件中报错
Dim zc As WinForm.Table = e.Form.Controls("Table1")
Dim tb1 As Table = zc.Table
tb1.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
Dim rng As C1.Win.C1FlexGrid.CellRange = tb1.Grid.GetCellRange(tb1.Row.count -1, 0, tb1.Row.count -1, 1)
tb1.Grid.MergedRanges.Add(rng)


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 17:35:00 [显示全部帖子]

在Tables("初始数据_Table1")的DataColChanged事件写入下面的代码能保存,但并没添加行:
With DataTables("初始数据_Table1") '逐级统计初始余额 
    Dim km As String = e.DataRow("科目代码")
    For i1 As Integer = (km.Length / 4) - 1 To 1
        Dim c1 As Integer = 4 * i1
        Dim dr1 As DataRow = .find("[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "%'")
        If (e.DataCol.Name = "科目代码" OrElse e.DataCol.Name = "科目名称") AndAlso "[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "%'" Then
            e.Cancel = True '取消编辑
        Else
            dr1("借或贷") = "借"
            dr1("初始余额") = .Compute("Sum(初始余额)", "[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "%'")
        End If
    Next
    Dim rt1 As DataRow = .AddNew() '添加一行用来统计一级科目余额,它是汇总行,故科目代码这行的单元格自动显示为资产总计,因为用统计方式写这行,初始数据不能手工输入,且数据不是直接统计,而是只统计一级科目,所以不能用统计模式,只能手工编写代码。
    rt1("科目代码") = "资产总计"
    rt1("借或贷") = "借"
    rt1("初始余额") = .Compute("Sum(初始余额)", "[科目代码] = '" & e.DataRow("科目代码").SubString(0,4) & "%'") '统计一级科目余额
    .DataCols("初始数量").SetFormat("#,###.##") '千位分隔符,保留2位小数
    .DataCols("初始余额").SetFormat("#,###.##")
End With

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 17:50:00 [显示全部帖子]

这段代码写在AfterLoad事件中报错
Dim zc As WinForm.Table = e.Form.Controls("Table1")
Dim tb1 As Table = zc.Table
tb1.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
Dim rng As C1.Win.C1FlexGrid.CellRange = tb1.Grid.GetCellRange(tb1.Row.count -1, 0, tb1.Row.count -1, 1)
tb1.Grid.MergedRanges.Add(rng)
这段代码是合并Tables("初始数据_Table1")新添一行的科目代码、科目名称列的单元格的,Grid只对Table有效,错在哪我无从入手,合并单元格的内容我了一天帮助了,不想做到表的打印设显示中,效果直接在table中显示,我看了好久了,不知怎么实现。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 17:50:00 [显示全部帖子]

你给我看的连接不明什么作用。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 18:23:00 [显示全部帖子]

Dim zc As WinForm.Table = e.Form.Controls("Table1")
Dim tb1 As Table = zc.Table
tb1.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
Dim rng As C1.Win.C1FlexGrid.CellRange = tb1.Grid.GetCellRange(tb1.Rows.count -1, 0, tb1.Rows.count -1, 1)
tb1.Grid.MergedRanges.Add(rng)
这段代码不报错了。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 20:19:00 [显示全部帖子]

Tables("初始数据_Table1")的DataColChanged事件的代码改为这样能保存,依然没添加行:
With DataTables("初始数据_Table1")
    Dim km As String = e.DataRow("科目代码")
    For i1 As Integer = (km.Length / 4) - 1 To 0
        Dim c1 As Integer = 4 * i1
        Dim dr1 As DataRow = .find("[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "'")
        If (e.DataCol.Name = "科目代码" OrElse e.DataCol.Name = "科目名称") AndAlso "[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "%' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "'" Then
            dr1("借或贷") = "借"
            dr1("初始余额") = .Compute("Sum(初始余额)", "[科目代码] Like '" & e.DataRow("科目代码").SubString(0,c1) & "' And [科目代码] <> '" & e.DataRow("科目代码").SubString(0,c1) & "'")
        End If
    Next
    Dim rt1 As DataRow = .AddNew()
    rt1("科目代码") = "资产总计"
    rt1("借或贷") = "借"
    rt1("初始余额") = .Compute("Sum(初始余额)", "[科目代码] = '" & e.DataRow("科目代码").SubString(0,4) & "'") - 2 *(.Compute("Sum(初始余额)",rt1("科目名称") = "累计折旧"))
    .DataCols("初始数量").SetFormat("#,###.##")
    .DataCols("初始余额").SetFormat("#,###.##")
End With
[此贴子已经被作者于2021/5/21 9:12:08编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 21:00:00 [显示全部帖子]

窗口,主表不能动。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/5/20 22:30:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:初始数据.foxdb

代码都写在初始数据窗口中,我暂改了资产表的代码,其他的未改,你可预览,一级科目的初始余额是下一级科目余额的合计,如此类推,另在最后添加一行资产合计,初始余额合计所有一级科目余额,累计折旧例外,它是固定资产减折旧,为方便统一公式计算,所有一级科目余额合计后减去2倍累计折旧金额(表上写在余额列)。
[此贴子已经被作者于2021/5/21 7:54:44编辑过]

 回到顶部
总数 37 1 2 3 4 下一页