以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于固定格式表填充数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78872) |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/18 22:32:00 -- 关于固定格式表填充数据 问题一 Dim dr As DataRow = e.DataRow Dim dt As DataTable =DataTables("部门损益总账") If e.DataCol.Name = "部门" And dr.IsNull("部门")= False Then dr("其他日常营运成本_其他日常营运费用") = dt.Compute("sum(借方发生)", "[部门名称] = \'" & dr("部门") & "\' and [科目名称] =\'其他日常营运费用\'") End If 如果是多列判断要怎么写,如图中,要统计日期和部门同时对应的数据 问题二 另外,上图中前面4列也可以从其他表中填充过来吗,填充代码写在哪里,我把下面这段代码也写在DataColChanged中,一重置列项目就退出 Dim Cols1() As String = {"所属单位","部门类型","日期","部门"} Dim Cols2() As String = {"所属单位","部门类型","日期","部门"} For Each dr1 As DataRow In DataTables("B").Select("[部门类型] = \'商场\'") Dim dr2 As DataRow = DataTables("A").AddNew() For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next Next
[此贴子已经被作者于2015/12/18 22:56:20编辑过]
|
||||
-- 作者:Hyphen -- 发布时间:2015/12/19 8:48:00 -- 1. select case : http://www.foxtable.com/help/topics/0224.htm
|
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 9:32:00 -- 以下是引用Hyphen在2015/12/19 8:48:00的发言:
1. select case : http://www.foxtable.com/help/topics/0224.htm
|
||||
-- 作者:Hyphen -- 发布时间:2015/12/19 9:37:00 -- 1是第一个问题,2是第二个问题 |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 9:48:00 -- 第二个问题,我用了两种方式测试了下,记录都有重复增加,帮我看看代码有什么问题 来源表: 此主题相关图片如下:5.png 1、 Dim Vals As List(of String()) Vals = DataTables("B").GetValues("所属单位|部门类型|日期|部门") For i As Integer = 0 To Vals.Count - 1 Dim dr As DataRow = DataTables("A").AddNew() dr("所属单位") = Vals(i)(0) dr("部门类型") = Vals(i)(1) dr("日期") = Vals(i)(2) dr("部门") = Vals(i)(3) Next 2、 Dim Cols1() As String = {"所属单位","部门类型","日期","部门"} Dim Cols2() As String = {"所属单位","部门类型","日期","部门"} For Each dr1 As DataRow In DataTables("B").Select("[部门类型] = \'商场\'") Dim dr2 As DataRow = DataTables("A").AddNew() For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next Next 结果如下:
|
||||
-- 作者:Hyphen -- 发布时间:2015/12/19 10:02:00 -- 代码没有问题,应该是事件触发了3次。放出事件完整代码
如果是想一次性初始化多条数据,最好是用按钮或者菜单
DataColChanged适合逐条处理数据 |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 10:12:00 -- 好的,我用按钮试一下,第一个问题已按你说的解决,谢谢 |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 10:57:00 -- 通过设置按钮,第二个问题也已解决,谢谢 追问一下,如以下代码中 Dim dr As DataRow = e.DataRow Dim dt As DataTable =DataTables("部门损益总账") Select Case e.DataCol.Name Case "日期","部门" dr("其他日常营运成本_其他日常营运费用") = dt.Compute("sum(借方发生)", "[部门名称] = \'" & dr("部门") & "\' and [所属日期] = \'" & dr("日期") & "\' and [科目名称] =\'其他日常营运费用\'") End Select 如果我的“其他日常营运成本”下有几十项费用,每项费用我设一列,下面这句代码只能一项一项来写,还是有统一设置的方法 dr("其他日常营运成本_其他日常营运费用") = dt.Compute("sum(借方发生)", "[部门名称] = \'" & dr("部门") & "\' and [所属日期] = \'" & dr("日期") & "\' and [科目名称] =\'其他日常营运费用\'")
|
||||
-- 作者:Hyphen -- 发布时间:2015/12/19 11:14:00 -- 只能一项一项来写 |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 11:26:00 -- 好的,谢谢 |