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


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

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

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


加好友 发短信
等级:五尾狐 帖子:1144 积分:7556 威望: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 = "编号"




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


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

没看懂,请贴出完整代码,并截图说明问题

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


加好友 发短信
等级:五尾狐 帖子:1144 积分:7556 威望: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


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


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

1、Dim cols() As String = {"SP", "KH", "GY", "DJ", "ZK", "SL"}
Dim cols2() As String = {"列1", "列2", "GY", "DJ", "ZK", "SL"}
For j As Integer = 0 To cols.Length - 1 '打印标题
            rt.Cells(0, j).Text = cols2(j)
        Next

2、这个单号select了多少条记录不会判断?知道副编号在哪里加的吗?

3、还是没看懂,请截图说明

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


加好友 发短信
等级:五尾狐 帖子:1144 积分:7556 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/14 11:41:00 [只看该作者]


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


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


加好友 发短信
等级:五尾狐 帖子:1144 积分:7556 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/14 11:43:00 [只看该作者]


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

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


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

……
        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+1).Text = rows(r)(cols(j))
            Next
rt.Cells(r - p * prs + 1, 0).Text = r
        Next
……

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


加好友 发短信
等级:五尾狐 帖子:1144 积分:7556 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/14 12:46:00 [只看该作者]


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

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2023/8/16 14:16:00 [只看该作者]

……
        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+1).Text = rows(r)(cols(j))
            Next
rt.Cells(r - p * prs + 1, 0).Text = r+1
        Next

 回到顶部
总数 39 上一页 1 2 3 4