Foxtable(狐表)用户栏目专家坐堂 → 求助-单元格数据合并


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

主题:求助-单元格数据合并

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


加好友 发短信
等级:幼狐 帖子:89 积分:852 威望:0 精华:0 注册:2018/7/3 0:45:00
求助-单元格数据合并  发帖心情 Post By:2023/6/18 17:14:00 [只看该作者]

老师,我的原数据表格是这样的01

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20230618170259.png
图片点击可在新窗口打开查看
而我想要的结果是下图这样的表格02

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20230618170601.png
图片点击可在新窗口打开查看
也就是说,把原表01的同一个生日(也就是日期)的运生差量、销运差量、销生差量结算到一起的,并将他们的说明一栏的并空说明合并到一栏中,请问老师,用代码如何实现或如何参考,请指教。


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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/18 20:36:00 [只看该作者]

大概:

for each s as string in datatables("表A").getvalues("生日")
  dim r as row = tables("表A").addnew
  r("差量") = datatables("表A").compute("sum("差量")","生日='" & s & "'")
  r("说明") = datatables("表A").GetComboListString("说明","生日='" & s & "'").replace("|","")
……
next

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


加好友 发短信
等级:幼狐 帖子:89 积分:852 威望:0 精华:0 注册:2018/7/3 0:45:00
  发帖心情 Post By:2023/6/21 15:54:00 [只看该作者]

老师,我接触FT的时间不长,虽然买了商业版的,但我研究半天,还真没弄出来,能否假设原数据表为:表A,终数据表为:表B,请老师帮我写下全代码,而后我再认真对比学习,谢谢老师!

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


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

for each s as string in datatables("表A").getvalues("生日")
  dim r as row = tables("表B").addnew
  r("运生_差量") = datatables("表A").compute("sum("运生_差量")","生日='" & s & "'")
  r("运生_说明") = datatables("表A").GetComboListString("运生_说明","生日='" & s & "'").replace("|","")
  r("销运_差量") = datatables("表A").compute("sum("销运_差量")","生日='" & s & "'")
……
next


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


加好友 发短信
等级:幼狐 帖子:89 积分:852 威望:0 精华:0 注册:2018/7/3 0:45:00
  发帖心情 Post By:2023/6/23 9:15:00 [只看该作者]

老师,我按您的这个代码做相应的表格调整后,系统提示:运生_差量 不属于 表B,您看这是什么问题,谢谢

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


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

说明列名不正确,自己打开表结构看看正确的列名

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


加好友 发短信
等级:幼狐 帖子:89 积分:852 威望:0 精华:0 注册:2018/7/3 0:45:00
  发帖心情 Post By:2023/6/28 12:05:00 [只看该作者]

老师,我是真心解决不了这个,我把全代码给您发出来,您看看
Dim ny As WinForm.TextBox = e.Form.Controls("TextBox188")

e.form.controls("TextBox199").Text = e.form.controls("TextBox188").Text
e.form.controls("TextBox200").Text = e.form.controls("TextBox188").Text

Dim g As New GroupTableBuilder("统计表1", DataTables("明细根表"))
g.Groups.AddDef("运输审核_结算月")
g.Groups.AddDef("运输审核_生日", "生日")
g.Groups.AddDef("FZSYXCCFMC")
g.Groups.AddDef("生产信息_等级强度")
g.Groups.AddDef("FZSYXCBB")
g.Groups.AddDef("FZSYXCBZ")
g.Groups.AddDef("FZSYXCLX", "类型")
g.Groups.AddDef("FZSYXCYCSM", "异常_说明")
g.Totals.AddDef("FZSYXCYS", "运生_差量")
g.Totals.AddDef("FZSYXCXY", "销运_差量")
g.Totals.AddDef("FZSYXCXS", "销生_差量")
g.Filter = "[运输审核_结算月] = '" & ny.text & "' and [FZSYXCB] is not Null"
Tables("统计总表_Table175").DataSource = g.BuildDataSource()

DataTables("统计总表_Table175").DataCols.Add("运生_说明", GetType(String), 255 , "IIF([运生_差量] = 0 , Null ,IIF([类型] = '多记' or [类型] = '少记' or [类型] = '他产'  or [类型] = '取样'  or [类型] = '报废'  or [类型] = '不结',[FZSYXCCFMC]  + [FZSYXCBZ] + [类型] + [运生_差量] + '方' + [生产信息_等级强度] + ';',IIF([类型] = '多产'  or [类型] = '少产'  or [类型] = '自运'  or [类型] = '多签'  or [类型] = '少签' ,[FZSYXCCFMC] + [类型] + [运生_差量] + '方' + [生产信息_等级强度] + ';',IIF([类型] = '剩料' or [类型] = '退料' ,[FZSYXCCFMC] + [类型] + [运生_差量] + '方' + [FZSYXCBB] + [FZSYXCBZ], IIF([类型] = '异日' ,[FZSYXCCFMC] + [FZSYXCBZ] + '运输' + [运生_差量] + '方' + [生产信息_等级强度] + ';',NuLL )))))")
DataTables("统计总表_Table175").DataCols.Add("销运_说明", GetType(String), 255 , "IIF([销运_差量] = 0 , Null ,IIF([类型] = '多记' or [类型] = '少记' or [类型] = '他产'  or [类型] = '取样'  or [类型] = '报废'  or [类型] = '不结',[FZSYXCCFMC]  + [FZSYXCBZ] + [类型] + [销运_差量] + '方' + [生产信息_等级强度] + ';',IIF([类型] = '多产'  or [类型] = '少产'  or [类型] = '自运'  or [类型] = '多签'  or [类型] = '少签' ,[FZSYXCCFMC] + [类型] + [销运_差量] + '方' + [生产信息_等级强度] + ';',IIF([类型] = '剩料' or [类型] = '退料' ,[FZSYXCCFMC] + [类型] + [销运_差量] + '方' + [FZSYXCBB] + [FZSYXCBZ], Null ))))")
DataTables("统计总表_Table175").DataCols.Add("销生_说明", GetType(String), 255 , "IIf([销生_差量] = 0 , Null ,IIF([类型] = '多记' or [类型] = '少记' or [类型] = '他产'  or [类型] = '取样'  or [类型] = '报废'  or [类型] = '不结',[FZSYXCCFMC]  + [FZSYXCBZ] + [类型] + [销生_差量] + '方' + [生产信息_等级强度] + ';',IIF([类型] = '多产'  or [类型] = '少产'  or [类型] = '自运'  or [类型] = '多签'  or [类型] = '少签' ,[FZSYXCCFMC] + [类型] + [销生_差量] + '方' + [生产信息_等级强度] + ';',IIF([类型] = '剩料' or [类型] = '退料' ,[FZSYXCCFMC] + [类型] + [销生_差量] + '方' + [FZSYXCBB] + [FZSYXCBZ], IIF([类型] = '异日' ,[FZSYXCCFMC] + [FZSYXCBZ] + '销售' + [销生_差量] + '方' + [生产信息_等级强度] + ';',NuLL )))))")

Tables("统计总表_Table175").Cols("运生_差量").Move(7)
Tables("统计总表_Table175").Cols("运生_说明").Move(8)
Tables("统计总表_Table175").Cols("销运_差量").Move(9)
Tables("统计总表_Table175").Cols("销运_说明").Move(10)
Tables("统计总表_Table175").Cols("销生_差量").Move(11)
Tables("统计总表_Table175").Cols("销生_说明").Move(12)

Tables("统计总表_Table175").Cols("运输审核_结算月").Visible = False
Tables("统计总表_Table175").Cols("FZSYXCCFMC").Visible = False
Tables("统计总表_Table175").Cols("生产信息_等级强度").Visible = False
Tables("统计总表_Table175").Cols("FZSYXCBB").Visible = False
Tables("统计总表_Table175").Cols("FZSYXCBZ").Visible = False

Tables("统计总表_Table175").AutoSizeCols()

With DataTables("统计总表_Table176")
    .DataCols("第一列").Caption = "生日"
    .DataCols("第二列").Caption = "运生_差量"
    .DataCols("第三列").Caption = "运生_说明"
    .DataCols("第四列").Caption = "销运_差量"
    .DataCols("第五列").Caption = "销运_说明"
    .DataCols("第六列").Caption = "销生_差量"
    .DataCols("第七列").Caption = "销生_说明"
    .DataCols("第八列").Caption = "异常_说明"
    .BuildHeader()
End With

For Each s As String In DataTables("统计总表_Table175").getvalues("生日")
    Dim r As Row = Tables("统计总表_Table176").addnew
    r("运生_差量") = DataTables("统计总表_Table175").compute("sum(FZSYXCYS)", "生日='" & s & "'")
    r("运生_说明") = DataTables("统计总表_Table175").GetComboListString("运生_说明", "生日='" & s & "'").replace("|", "")
    r("销运_差量") = DataTables("统计总表_Table175").compute("sum(FZSYXCXY)", "生日='" & s & "'")
    r("销运_说明") = DataTables("统计总表_Table175").GetComboListString("销运_说明", "生日='" & s & "'").replace("|", "")
    r("销生_差量") = DataTables("统计总表_Table175").compute("sum(FZSYXCXS)", "生日='" & s & "'")
    r("销生_说明") = DataTables("统计总表_Table175").GetComboListString("销生_说明", "生日='" & s & "'").replace("|", "")
    r("异常_说明") = DataTables("统计总表_Table175").GetComboListString("异常_说明", "生日='" & s & "'").replace("|", "")
Next


运行后错误的提示是:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.6.12.1
错误所在事件:窗口,统计总表,Button182,Click
详细错误信息:
未找到列 [FZSYXCYS]。

请老师,帮我看下,

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/28 13:37:00 [只看该作者]

    Dim r As Row = Tables("统计总表_Table176").addnew
    r("第一列") = DataTables("统计总表_Table175").compute("sum(运生_差量)", "生日='" & s & "'")

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


加好友 发短信
等级:幼狐 帖子:89 积分:852 威望:0 精华:0 注册:2018/7/3 0:45:00
  发帖心情 Post By:2023/6/28 14:25:00 [只看该作者]

老师,刚才的问题已经解决,但还有一个就是,如何在表176的第一列中显示表175的生日列数据,也就是01 02 03-31日
还有就是原表176的上面还有10行是空着的,这些数据并没有顶行显示,还要如何解决这些,请老师帮忙处理下

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/28 14:45:00 [只看该作者]

给第一列赋值生日不就行了

空行先清空表格再增加数据不就行了

 回到顶部
总数 12 1 2 下一页