Foxtable(狐表)用户栏目专家坐堂 → 打印数据重复行


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

主题:打印数据重复行

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
打印数据重复行  发帖心情 Post By:2020/7/29 10:22:00 [只看该作者]

为什么会出现重复行数据,怎么改

表格数据是这样的:

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20200729101952.png
图片点击可在新窗口打开查看
打印预览的数据是这样的:

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20200729102017.png
图片点击可在新窗口打开查看
打印代码是这样的:
If Tables("销售发货_table1").Current("审核") = True Then  
    Dim dtb As New DataTableBuilder("横向销售明细")
    If DataTables.Contains("横向销售明细") = False Then '如果表C没有加载
        DataTables.Load("横向销售明细") '加载表C
    End If
    
    dtb.AddDef("客户", Gettype(String), 60)
    dtb.AddDef("订单号", Gettype(String),65)
    dtb.AddDef("制单号", Gettype(String),65)
    dtb.AddDef("发货日期", Gettype(Date))
    dtb.AddDef("款号", Gettype(String), 60)
    dtb.AddDef("颜色", Gettype(String),60)
    dtb.AddDef("销售单价", Gettype(Decimal),25)
    dtb.AddDef("销售金额", Gettype(Decimal),25)
    'dtb.AddDef("通码", Gettype(Decimal),25)
    dtb.AddDef("折扣", Gettype(Decimal),25)
    dtb.AddDef("销售发货单号", Gettype(String), 60)
    For Each v As String In DataTables("销售发货明细表").GetValues("尺码","[销售发货单号] = '" & Tables("销售发货_table1").current("销售发货单号") & "'")
        dtb.AddDef("尺码_" & v, Gettype(String))
    Next
    
    Dim br As DataRow
    br = DataTables("销售发货明细表").Find("[销售发货单号] = '" & Tables("销售发货_Table1").Current("销售发货单号") & "'")

    
    Dim ta As Table = Forms("销售发货").Controls("Table3").Table
    ta.datasource = dtb.BuildDataSource
    Tables("销售发货_table3").DataTable.StopRedraw()
    For Each v As String() In DataTables("销售发货明细表").GetValues("客户|订单号|制单号|发货日期|款号|颜色|销售单价|销售金额|折扣|销售发货单号","[销售发货单号] = '" & Tables("销售发货_table1").current("销售发货单号") & "'")
        Dim dr1 As Row = ta.AddNew()
        dr1("客户") = v(0)
        dr1("订单号") = v(1)
        dr1("制单号") = v(2)
        dr1("发货日期") = v(3)
        dr1("款号") = v(4)
        dr1("颜色") = v(5)
        dr1("销售单价") = v(6)
        dr1("销售金额") = v(7)
        'dr1("通码") = v(8)
        dr1("折扣") = v(8)
        dr1("销售发货单号") = v(9)
        For Each dr2 As DataRow In DataTables("销售发货明细表").Select("客户 = '" & v(0) & "' And 订单号 = '" & v(1) & "'and  制单号 = '" & v(2) & "'and  款号 = '" & v(4) & "' and  颜色 = '" & v(5) & "' and  销售发货单号 = '" & v(9) & "' ")
            dr1("尺码_" & dr2("通码")) = dr2("发货数量")
            
        Next
        Tables("销售发货_table3").DataTable.ResumeRedraw()
    Next
    

    
    
Dim dt As Table = Tables("销售发货_table3")    

Dim Book As New XLS.Book '定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
Next

Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()
   
Else
    MessageBox.show("此销售发货单未审核,不能打印")
End If




[此贴子已经被作者于2020/7/29 10:24:01编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

没看懂到底是什么问题?

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/7/29 10:27:00 [只看该作者]


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

现在能看到不,打印出来的数据转换成横向报表,应该一行数据就生成好了,现在生成了重复行

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/29 10:32:00 [只看该作者]

For Each v As String() In DataTables("销售发货明细表").GetValues("客户|订单号|制单号|发货日期|款号|颜色|销售单价|销售金额|折扣|销售发货单号",

销售金额都不一样,就是不同的行,不属于重复行

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/7/29 11:13:00 [只看该作者]

如果不加 销售金额 这一列,怎么显示 销售金额

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/29 11:19:00 [只看该作者]

使用find根据单号再到表格里查一次

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/7/29 11:25:00 [只看该作者]

怎么写?是这样吗?

    Dim ta As Table = Forms("销售发货").Controls("Table3").Table
    ta.datasource = dtb.BuildDataSource
    Tables("销售发货_table3").DataTable.StopRedraw()
    For Each v As String() In DataTables("销售发货明细表").GetValues("客户|订单号|制单号|发货日期|款号|颜色|销售单价|折扣|销售发货单号","[销售发货单号] = '" & Tables("销售发货_table1").current("销售发货单号") & "'")
        Dim dr1 As Row = ta.AddNew()
        dr1("客户") = v(0)
        dr1("订单号") = v(1)
        dr1("制单号") = v(2)
        dr1("发货日期") = v(3)
        dr1("款号") = v(4)
        dr1("颜色") = v(5)
        dr1("销售单价") = v(6)

Dim dr8 As DataRow = DataTables("销售发货明细表").Find("客户 = '" & dr1("客户") & "' and 订单号 = '" & dr1("订单号") & "'  and 款号 = '" & dr1("款号") & "'  and 销售发货单号 = '" & dr1("销售发货单号") & "'")
        dr1("销售金额") = dr8("销售金额")
        dr1("折扣") = v(7)
        dr1("销售发货单号") = v(8)
        For Each dr2 As DataRow In DataTables("销售发货明细表").Select("客户 = '" & v(0) & "' And 订单号 = '" & v(1) & "'and  制单号 = '" & v(2) & "'and  款号 = '" & v(4) & "' and  颜色 = '" & v(5) & "' and  销售发货单号 = '" & v(8) & "' ")
            dr1("尺码_" & dr2("通码")) = dr2("发货数量")
            
        Next
        Tables("销售发货_table3").DataTable.ResumeRedraw()
    Next
[此贴子已经被作者于2020/7/29 11:32:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/29 11:58:00 [只看该作者]

是的

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/7/29 17:27:00 [只看该作者]

销售金额列是表达式,为
[发货数量] * [销售单价] * IsNull([折扣],1)
用comput的方式计算几个尺码数量的合计销售金额,获取不到数??
        dr1("销售金额") = DataTables("销售发货明细表").Compute("Sum(销售金额)", "客户 = '" & dr1("客户") & "' and 订单号 = '" & dr1("订单号") & "' and 颜色 = '" & dr1("颜色") & "'  and 款号 = '" & dr1("款号") & "'  and 销售发货单号 = '" & dr1("销售发货单号") & "'")

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/29 17:33:00 [只看该作者]

哪个销售金额列是表达式?dr1("销售金额")里的?还是DataTables("销售发货明细表")里的

dim d as double = DataTables("销售发货明细表").Compute("Sum(销售金额)", "客户 = '" & dr1("客户") & "' and 订单号 = '" & dr1("订单号") & "' and 颜色 = '" & dr1("颜色") & "'  and 款号 = '" & dr1("款号") & "'  and 销售发货单号 = '" & dr1("销售发货单号") & "'")
msgbox(d) 有没有值?

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