Foxtable(狐表)用户栏目专家坐堂 → 专业报表的统计问题


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

主题:专业报表的统计问题

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/11 15:29:00 [显示全部帖子]

每页20行,明细表有30行,第一张单号第一页其明细是20行,第2张单号第2页其明细实际是15行,不足20行,不足由空行补足。明细表有30行分2页即可。

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/11 15:58:00 [显示全部帖子]

11
[此贴子已经被作者于2023/10/20 9:55:01编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/11 16:15:00 [显示全部帖子]

主表的每一个单号都是另起一页开始打印的,是的

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/11 17:07:00 [显示全部帖子]

刚试,报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,打印窗口,Button7,Click
详细错误信息:
添加的项目已经有所有者了。

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/11 19:47:00 [显示全部帖子]

For Each pr As Row In tbl.Rows

   1、增加下面代码,连续打印,执行后,最后终会有一张空,这样会造成浪费纸,如何解决?
    doc.PageSetting.Width = 241 '
    doc.PageSetting.Height = 155 '
    doc.AutoRotate = False '
    doc.PageSetting.TopMargin = 5
    doc.PageSetting.BottomMargin = 5
    doc.PageSetting.LeftMargin = 5
    doc.PageSetting.RightMargin = 5

2、把下面代码改为红色代码,出库单号,不管理明细的内容是单页,还是多页都会加“-1”,不是,需求,只有明细的内容是多页才加“-1”、“-2”、单页不用加
    'Rows = tb.DataTable.select("客户='" & pr("公司名称") & "'")
改为
    Rows = tb.DataTable.select("出库单号='" & pr("出库单号") & "'")

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/12 11:17:00 [显示全部帖子]

 Dim rg As prt.RenderGraphics
    Dim Bar As New BarCodeBuilder
    Bar.Symbology = Barpro.Symbology.QRCode
    bar.Code = pr("出库单号")
    rg = New prt.RenderGraphics
    bar.DrawOnCanvas(rg.Graphics, 0, 0, 1)
  
 Dim rz As prt.RenderTable
 rz = New prt.RenderTable 

'    rz.Cells(0, 5).RenderObject = rg 
''    rz.Cells(0, 5).SpanCols = 2 
'    rz.Cells(0, 5).Style.TextAlignHorz = prt.AlignHorzEnum.Right 
    Doc.Body.Children.Add(rg)

需求:以主表的出库单号做一个二维码,放在右边角,如何实现?
执行上面代码时,没红字代码,二维码是在左边,
有红字代码,报错,提示:添加的项目已经有所有者了。删除BIN也没有用



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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/13 9:57:00 [显示全部帖子]

For c As Integer = 0 to 100
    rt.Cols(c).Width = 
15 '明确指定每一列的宽度
    
If c = 0 then
        rt.Cells(
0,0). Text = "编号"
    
Else
        rt.Cells(
0, c).Text = "第" & (c + 1) & "列"
    
End If
Next
For
 r As Integer = 1 To 50
    rt.Cells(r,
0).Text = r
    For
 c As integer = 1 to 100
        rt.Cells(r,c).Text = r & 
"," & c
    Next
Next

改为下面代码,没有实现需求,实现增加编号列?如何实现?

        For j As Integer = 0 To cols.Length - 1 '打印标题
            
            If j = 0 Then
                rt.Cells(0, 0).Text = "编号"
            Else
                '        rt.Cells(0, c).Text = "第" & (c + 1) & "列"
                rt.Cells(0, j).Text = cols(j)
                
            End If

        Next
        'rt.Cells(0, 0).Text = "编号"




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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/14 11:12:00 [显示全部帖子]

Dim doc As New Printdoc
Dim rx As prt.RenderText
Dim rt As prt.RenderTable
Dim Rows As List(Of DataRow)
Dim tbl As Table = Tables("销售主表")
Dim tb As Table = Tables("销售明细")

Dim prs As Integer = 20 '每页20行
Dim cols() As String = {"产品", "客户", "雇员", "单价", "折扣", "数量"}'中文字段
'Dim cols() As String = {"SP", "KH", "GY", "DJ", "ZK", "SL"}  '问题一:英文字段如何显示中文。



For Each pr As Row In tbl.Rows
    
    Rows = tb.DataTable.select("客户='" & pr("公司名称") & "'")
'    Rows = tb.DataTable.select("出库单号='" & pr("出库单号") & "'")'问题二:客户改为出库单号,无法实现只能超过20条记录,才加副编号,
   如CR-202308-01-1,CR-202308-01-2,不超过20条记录,不加副编号,如CR-202308-01
'    
    For p As Integer = 0 To math.Ceiling(Rows.Count / prs) - 1
        rx = New prt.RenderText
        ' '
        rx.Style.FontSize = 14
        rx.Style.FontBold = True
        rx.Style.Spacing.Bottom = 5
        rx.Text = "公司名称: " & pr("公司名称") & " - " & (p + 1)
'        rx.Text = "出库单号: " & pr("出库单号") & " - " & (p + 1)''客户改为出库单号
        
        doc.Body.Children.Add(rx)
        
        rt = New prt.RenderTable
        rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
        rt.Style.TextAlignVert = prt.AlignVertEnum.Center
        rt.Style.Borders.Bottom = New prt.LineDef(0.3, Color.LightGray)
        rt.CellStyle.Spacing.All = 1
        rt.Cols.Count = 4
        For j As Integer = 0 To cols.Length - 1 '打印标题
            rt.Cells(0, j).Text = cols(j)
        Next

问题三:如何实现打印,不存在表字段,编号或序号?
'      For j As Integer = 0 To cols.Length - 1 '打印标题
            
'            If j = 0 Then
'                rt.Cells(0, 0).Text = "编号"
'            Else
'                '        rt.Cells(0, c).Text = "第" & (c + 1) & "列"
'                rt.Cells(0, j).Text = cols(j)
                
'            End If

'        Next
'        'rt.Cells(0, 0).Text = "编号"

        
        rt.Cols(1).Width = 60 '指定第2列宽
        rt.rows(0).Style.Borders.Top = New prt.LineDef(1, Color.LightGray)
        rt.rows(0).Style.Borders.Bottom = New prt.LineDef(1, Color.LightGray)
        Dim sum As Double = 0
        For r As Integer = p * prs To math.min(Rows.Count - 1, ( p + 1) * prs - 1)
            sum += rows(r)("数量") '计算合计
            For j As Integer = 0 To cols.Length - 1
                rt.Cells(r - p * prs + 1, j).Text = rows(r)(cols(j))
            Next
        Next
        If p = math.Ceiling(Rows.Count / prs) - 1 Then'如果是最后一页
            For r As Integer = Rows.Count To ( p + 1) * prs - 1 '补空行
                rt.Rows.Count = rt.Rows.Count + 1
                rt.Rows(rt.Rows.count - 1)(0).text = " "
            Next
        End If
        Dim cnt = rt.Rows.Count
        rt.Cells(cnt, 0).Text = "合计 " '打印合计
        rt.Cells(cnt, 5).Text = sum
        doc.Body.Children.Add(rt)
        
        rx = New prt.RenderText
        rx.Style.FontBold = True
        rx.Style.Spacing.Top = 3
        rx.Text = "销售明细数目: " & Rows.Count
        rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right
        rx.BreakAfter = prt.BreakEnum.Page '否则换页
        doc.Body.Children.Add(rx)
    Next
    
Next 

doc.Preview

'问题一:英文字段如何显示中文。
问题二:客户改为出库单号,无法实现只能超过20条记录,才加副编号,
   如CR-202308-01-1,CR-202308-01-2,不超过20条记录,不加副编号,如CR-202308-01
问题三:如何实现打印,不存在表字段,编号或序号?

http://www.foxtable.com/webhelp/index.htm?page=0400.htm


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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/14 11:41:00 [显示全部帖子]


此主题相关图片如下:专业报表的编号.jpg
按此在新窗口浏览图片


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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/14 11:43:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:专业报表编号-1.jpg
图片点击可在新窗口打开查看

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