Foxtable(狐表)用户栏目专家坐堂 → [求助]专业报表套打


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

主题:[求助]专业报表套打

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
[求助]专业报表套打  发帖心情 Post By:2014/2/8 20:01:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多条件筛选.table

按客户/雇员/产品筛选,然后在命令窗口加入以下代码执行:

Dim doc As New PrintDoc
Dim rt As Prt.RenderTable
Dim rx As prt.RenderText
Dim tbl As Table = Tables("订单")
Dim Rows As List(Of DataRow)
Dim Datas As List(Of String) = tbl.DataTable.GetValues("客户",tbl.Filter)
doc.Pagesetting.LandScape = True
For Each Data As String In Datas
    rx = New prt.RenderText
    rx.Style.FontSize = 8
    rx.Text = Data
    rx.x = 117
    rx.y = 28
    doc.Body.Children.Add(rx)
   
    rt = New prt.RenderTable
    rt.Style.Font = Tables("订单").Font
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center
    'rt.Style.GridLines.All = New prt.LineDef(0.3,Color.LightGray)
    rt.Style.Spacing.Bottom = 5
    rt.CellStyle.Spacing.All = 2
    rt.Style.Font = tbl.Font
    If tbl.Filter = "" Then
        Rows = tbl.DataTable.Select("[客户] = '" & Data & "'")
    Else
        Rows = tbl.DataTable.Select("[客户] = '" & Data & "' And (" & tbl.Filter & ")")
    End If
    Dim ColNames As String() = New String(){"单价", "折扣","数量","金额"}
   
    For c As Integer = 0 To ColNames.Length - 1 '逐列设置和填入内容
        rt.Width = "Auto"
        For i As Integer = 0 To 3
            rt.Cols(0).Width = 20  '设置列宽
            rt.Cols(1).Width = 24  '设置列宽
            rt.Cols(2).Width = 12 '设置列宽
            rt.Cols(3).Width = 12 '设置列宽
        Next
        For r As Integer = 0 To Rows.Count -1
            rt.Cells(r + 1, c).Text = Rows(r)(ColNames(c))
        Next
    Next
    rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All
    doc.Body.Children.Add(rt)
Next
Doc.PageSetting.LeftMargin = 24 '设置左边距
'Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 62 '设置上边距
'Doc.PageSetting.BottomMargin = 10 '设置下边距
doc.PageSetting.Width = 210 '纸张宽度为100毫米
doc.PageSetting.Height = 140 '纸张高度为120毫米
doc.preview()

结果:

 


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

 


在我的实际运用中,需要添加3段打印文本,以下代码打印了客户文本:

rx = New prt.RenderText
    rx.Style.FontSize = 8
    rx.Text = Data
    rx.x = 117
    rx.y = 28
    doc.Body.Children.Add(rx)

如果想打印雇员和产品文本,上面的代码如何改?

 

另说明实际运用中,只需按客户筛选,雇员和产品这两列内容都是相同的。

 


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/2/10 1:13:00 [显示全部帖子]

以下是引用有点甜在2014-2-9 21:34:00的发言:
 楼主,你的意思是想说,点击打印,雇员、产品也分别作为一段打印,结构类似客户

 还是想说,把雇员、产品、客户的打印在同一行里?

雇员、产品也分别作为一段打印。

琢磨了好久,感觉不太好处理,只好把这个表拆分为销售表和销售明细表,用单号关联(本来想偷懒只用一个表方便统计,打印销售单用单号筛选的办法解决)

拆分成两个表并关联后,套打问题很好解决了。

现在转过来又得琢磨统计的问题,这种多对多的关联表如何统计?看了帮助文件,翻来翻去,看到用的事例都是一对多的关联。

[此贴子已经被作者于2014-2-10 1:15:09编辑过]

 回到顶部