Foxtable(狐表)用户栏目专家坐堂 → ft前台表中用select集合行时如何合并相同行


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

主题:ft前台表中用select集合行时如何合并相同行

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
ft前台表中用select集合行时如何合并相同行  发帖心情 Post By:2019/6/24 21:03:00 [只看该作者]


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


如上图同一个表中有产品编码,规格,品名相同的两行,只是数量不同,在sql数据库中处理可以用gruop by轻松合并
但在前台界面中,因为要根据临时勾选的行来处理,用下面这个语句要如何才能现将编码,品名规格相同的行合并汇总数量后与其他行形成行集合?
Dim drs As List(Of DataRow)

drs = DataTables("订单").Select("[产品] = 'PD01' And [日期]= #1/4/1999#")
For Each
dr As Datarow In drs
    dr("折扣") = 0.12

Next 

谢谢!

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


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

应该使用GroupTableBuilder而不是Select

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17032 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/6/24 22:15:00 [只看该作者]

老师,我的目的不是要汇总数据统计,而是要汇总后将勾选行打印标签出来
Dim drs As List(of DataRow)
drs = DataTables("销售出库单_明细").Select("出库单号 = '" & pr("出库单号") & "'")
For i As Integer = 0 To drs.Count - 1
    Dim ra As New prt.RenderArea
    Dim rt As prt.RenderText
    ra.Width = Cint(Vars("tagW")) '标签宽
    ra.Height = Cint(Vars("tagH")) '标签高
    ra.Style.Spacing.All = 1
    ra.Style.Borders.All = New prt.Linedef(0.3, Color.black) '设置边框
    ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
    ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
    
    rt = New prt.RenderText
    rt.Text = company '公司名称
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
    rt.Style.FontSize = prt_UpFontsize  '字体大小(磅)
    'rt.X = 30
    rt.Y = prt_Upspacing '抬头与主体的间距  prt_Uplinespacing  '行间距
    ra.Children.Add(rt) '添加到容器中
    
    rt = New prt.RenderText
    rt.Text = "出库日期: " & pr("出库日期")
    rt.X = xL
    rt.Y =  "Prev.Bottom + 2 *" & sh '主体首行与抬头两倍行距
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt) '添加到容器中
    
    rt = New prt.RenderText
    rt.Text = "客户: " & pr("收货单位")
    rt.X = xL
    rt.Y =  "Prev.Bottom + " & sh  '垂直坐标位于迁移对象之下的2毫米
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt) '添加到容器中
    
    rt = New prt.RenderText
    rt.Text =  "品名: " & drs(i)("品名")
    rt.X = xL
    rt.Y = "Prev.Bottom + " & sh '垂直坐标位于迁移对象之下的2毫米
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt)
    
    rt = New prt.RenderText
    rt.Text = "规格: " & drs(i)("规格")
    rt.X = xL
    rt.Y = "Prev.Bottom + " & sh '垂直坐标位于迁移对象之下的2毫米
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt)
    
    rt = New prt.RenderText
    rt.Text = "数量: " & drs(i)("数量")
    rt.X = xL
    rt.Y = "Prev.Bottom + " & sh '垂直坐标位于迁移对象之下的2毫米
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt)
    
    rt = New prt.RenderText
    rt.Text = "检验员: "
    rt.X = xL
    rt.Y = "Prev.Bottom + " & sh '垂直坐标位于迁移对象之下的2毫米
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt)
    
    rt = New prt.RenderText
    rt.Text = "备注: " & drs(i)("备注")
    rt.X = xL
    rt.Y = "Prev.Bottom + " & sh '垂直坐标位于迁移对象之下的2毫米
    rt.Style.FontSize = fs '字体大小(磅)
    ra.Children.Add(rt)
    
Next
Doc.Preview() '预览报表
现在的就是不知道怎么把相同行合并后生成集合drs,然后再遍历打印标签即可
老师的意思是用GroupTableBuilder生成一个临时表再遍历各行打印吗?

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


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

是的,生成一个临时表再遍历各行打印。使用select还要逐行判断比较,不更麻烦吗

 回到顶部