Foxtable(狐表)用户栏目专家坐堂 → [求助]这样的综合汇总怎样做呢?


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

主题:[求助]这样的综合汇总怎样做呢?

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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]这样的综合汇总怎样做呢?  发帖心情 Post By:2014/9/15 22:45:00 [只看该作者]

如题,三个表格的数据,欲通过共同的“生产单号”进行综合汇总,汇总后表格的样式及数据见附表,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:样式.xls

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



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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/9/15 22:45:00 [只看该作者]

按照表B的日期段进行生成。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 23:42:00 [只看该作者]

Dim dt As DataTable
Dim cmd As new SQLCommand

cmd.CommandText = "Select Distinct {表A}.领料日期, {表A}.基材型号, {表A}.基材规格, {表A}.厂商代号, {表A}.投料件数, {表A}.投料重量, {表B}.客户, {表c}.生产类型, {表B}.产品型号, {表B}.产品规格 "
cmd.CommandText &= " From ({表A} Inner JOIN {表B} ON {表B}.[生产单号] = {表A}.[生产单号]) Inner JOIN {表C} ON {表C}.[生产单号] = {表A}.[生产单号] where 1=1"

dt = cmd.ExecuteReader

dt.DataCols.Add("一等品出货重量", Gettype(Integer))
dt.DataCols.Add("二等品出货重量", Gettype(Integer))
dt.DataCols.Add("一等品库存", Gettype(Integer))
dt.DataCols.Add("二等品库存", Gettype(Integer))
dt.DataCols.Add("单边库存", Gettype(Integer))

Dim filter As String = ""
Dim ed As Date = e.Form.Controls("结束日期").Value
Dim sd As Date = e.Form.Controls("开始日期").value
If sd <> Nothing Then
    filter &= " and 日期 >= #" & sd & "#"
End If
If ed <> Nothing Then
    filter &= " and 日期 <= #" & ed & "# "
End If
For Each dr As DataRow In dt.DataRows
    dr("一等品出货重量") = DataTables("表B").Compute("sum(每箱净重)", "产品型号 = '" & dr("产品型号") & "' and 产品规格 = '" & dr("产品规格") & "' and 已出货 = true and 等级 = '一等品' " & filter)
    dr("二等品出货重量") = DataTables("表B").Compute("sum(每箱净重)","产品型号 = '" & dr("产品型号") & "' and 产品规格 = '" & dr("产品规格") & "' and 已出货 = true and 等级 = '二等品' " & filter)
    dr("一等品库存") = DataTables("表B").Compute("sum(每箱净重)","产品型号 = '" & dr("产品型号") & "' and 产品规格 = '" & dr("产品规格") & "' and 已出货 = false and 等级 = '一等品' " & filter)
    dr("二等品库存") = DataTables("表B").Compute("sum(每箱净重)","产品型号 = '" & dr("产品型号") & "' and 产品规格 = '" & dr("产品规格") & "' and 已出货 = false and 等级 = '二等品' " & filter)
    dr("单边库存") = DataTables("表B").Compute("sum(每箱净重)","产品型号 = '" & dr("产品型号") & "' and 产品规格 = '" & dr("产品规格") & "' and 已出货 = false and 等级 = '单边' " & filter)
Next

e.Form.Controls("Table1").Table.Datasource = dt


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/9/16 9:41:00 [只看该作者]

有点甜真棒!那么晚了还在回复真是太感谢了!我按照您对例子的回复用在例子上可以生成我想要的表格,但我按照思路往我的系统导的时候,提示错误,说找不到“***表”!我再仔细查是一下原因,如果实在找不出来的话,再上来向您请教!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/16 10:17:00 [只看该作者]

 如果是外部数据源,就要加入代码

 

Dim dt As DataTable
Dim cmd As new SQLCommand

cmd.ConnectionName = "数据源名"


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/9/20 17:33:00 [只看该作者]

终于按照有点甜的代码,将自己的实际表格生成出来了。但是我这边又遇到一下问题,就是表C中有两列逻辑列。在生成表格时,想多一项判断,就是表C中"已完成"列为TURE的行.然后生成表格的同时,表C中的"已记账"列为TURE.请问如何实现 ?如附表:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题1.foxdb


[此贴子已经被作者于2014-9-21 21:06:41编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/21 9:30:00 [只看该作者]

    dr("单边库存") = DataTables("生产入库明细表").Compute("sum(每箱净重)","产品型号 = '" & dr("型号") & "' and 产品规格 = '" & dr("规格") & "' and 已出货 = false and 等级 = '单边' and 已记账 = true " & filter)

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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/9/21 21:09:00 [只看该作者]

现在我遇到的问题是,表C中有两列逻辑列。在生成表格时,想多一项判断,就是表C中"已完成"列为TURE的行.然后生成表格的同时,表C中的"已记账"列为TURE.而现在所有的统计都按照表B去统计,请问如何把表C的条件进行筛选及变更表C逻辑列 ?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/21 21:12:00 [只看该作者]

 参考

 

cmd.CommandText = "Select Distinct {表A}.领料日期, {表A}.基材型号, {表A}.基材规格, {表A}.厂商代号, {表A}.投料件数, {表A}.投料重量, {表B}.客户, {表c}.生产类型, {表B}.产品型号, {表B}.产品规格 "
cmd.CommandText &= " From ({表A} Inner JOIN {表B} ON {表B}.[生产单号] = {表A}.[生产单号]) Inner JOIN {表C} ON {表C}.[生产单号] = {表A}.[生产单号] where {表C}.已记账 = true"


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2014/9/21 21:18:00 [只看该作者]

cmd.CommandText &= " From ({表A} Inner JOIN {表B} ON {表B}.[生产单号] = {表A}.[生产单号]) Inner JOIN {表C} ON {表C}.[生产单号] = {表A}.[生产单号] where {表C}.已完成 = true"

这样可以实现当生成表C,已完成列为true的数据了。另外,如何实现在这个表生成以后,表C的已记账列自动变为true呢?

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