Foxtable(狐表)用户栏目专家坐堂 → 关于固定格式表填充数据


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

主题:关于固定格式表填充数据

帅哥哟,离线,有人找我吗?
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
关于固定格式表填充数据  发帖心情 Post By: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


如果是多列判断要怎么写,如图中,要统计日期和部门同时对应的数据



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


问题二

另外,上图中前面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


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb


[此贴子已经被作者于2015/12/18 22:56:20编辑过]

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/19 8:48:00 [只看该作者]

1. select case : http://www.foxtable.com/help/topics/0224.htm

 
2.写到DataTables("B").的DataColChanged中,B增加一列,A增加一列;B改A跟着改


 


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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/19 9:32:00 [只看该作者]

以下是引用Hyphen在2015/12/19 8:48:00的发言:

1. select case : http://www.foxtable.com/help/topics/0224.htm

 
2.写到DataTables("B").的DataColChanged中,B增加一列,A增加一列;B改A跟着改


 请问上面解决的是第一个问题还是第二个问题


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/19 9:37:00 [只看该作者]

1是第一个问题,2是第二个问题

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By: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

结果如下:

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

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



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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/19 10:02:00 [只看该作者]

代码没有问题,应该是事件触发了3次。放出事件完整代码

 

如果是想一次性初始化多条数据,最好是用按钮或者菜单

 

DataColChanged适合逐条处理数据


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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/19 10:12:00 [只看该作者]

好的,我用按钮试一下,第一个问题已按你说的解决,谢谢

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/19 11:14:00 [只看该作者]

只能一项一项来写

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/19 11:26:00 [只看该作者]

好的,谢谢

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