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


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

主题:初始数的科目汇总

美女呀,离线,留言给我吧!
采菊东篱下
  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


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

代码放在什么事件里的?


不同事件有不同的e参数,不要随便用

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

第1、3段代码可以放到窗口afterload事件,但是不能放到表事件处理。

第2段代码感觉就是,找来几条衣服,剪碎,随便找些碎片用胶布粘成一件新的衣服。就是随便找来一些代码堆到一起,至于可以干什么,看不懂

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)


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


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


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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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中显示,我看了好久了,不知怎么实现。

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


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

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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)
这段代码不报错了。

 回到顶部
总数 60 1 2 3 4 5 6 下一页