以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]在执行打印的时候,为什么前面的数据全部都没传输过来,只有最后几个字传过来打印出来了?换其他数据确实正常的,或者换电脑打印这段数据也是正常的  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144567)

--  作者:zto001
--  发布时间:2019/12/24 15:10:00
--  [求助]在执行打印的时候,为什么前面的数据全部都没传输过来,只有最后几个字传过来打印出来了?换其他数据确实正常的,或者换电脑打印这段数据也是正常的
\'\'\'
Dim doc As New PrintDoc \'定义一个报表
doc.PageSetting.Width =76 \'纸张宽度为100毫米
doc.PageSetting.Height =130 \'纸张高度为120毫米
Dim rt As New prt.RenderTable() \'定义一个表格对象
Doc.PageSetting.LeftMargin = 0 \'设置左边距
Doc.PageSetting.RightMargin = 0 \'设置右边距
Doc.PageSetting.TopMargin = 0 \'设置上边距
Doc.PageSetting.BottomMargin = 0 \'设置下边距
rt.Width = "Parent.Width" \'对象宽度等于页面宽度
rt.Height = "Parent.Height" \'对象高度等于页面高度
\'指定行数?列数?列宽?行高
rt.Rows.Count = 10 \'设置总行数
rt.Cols.Count = 4 \'设置总列数

rt.Rows(0).Height = 10 \'
rt.Rows(1).Height = 5 \'
rt.Rows(2).Height = 12 \'
rt.Rows(3).Height = 18 \'
rt.Rows(4).Height = 10 \'
rt.Rows(5).Height = 7 \'
rt.Rows(6).Height = 13 \'
rt.Rows(7).Height = 6 \'
rt.Rows(8).Height = 6 \'
rt.Rows(9).Height = 28 \'
rt.Rows(10).Height = 14 \'


\'设置列宽度
rt.Cols(0).Width = 8.5 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 29.5
rt.Cols(2).Width = 23
rt.Cols(3).Width = 15
\'设置合并单元格

rt.Cells(0,0).SpanCols =2 \'
rt.Cells(1,0).SpanCols = 2 \'
rt.Cells(1,2).SpanCols = 2 \'
rt.Cells(2,0).SpanCols = 4 \'
rt.Cells(3,0).SpanCols = 4 \'
rt.Cells(4,0).SpanCols = 2 \'

rt.Cells(5,1).SpanCols = 2 \'
rt.Cells(5,0).SpanRows = 2 \'
rt.Cells(6,1).SpanCols = 2 \'
rt.Cells(7,0).SpanRows = 2 \'
rt.Cells(7,1).SpanCols = 2 \'
rt.Cells(8,1).SpanCols = 2 \'
rt.Cells(9,0).SpanCols = 4 \'
rt.Cells(10,0).SpanCols = 2 \'
rt.Cells(10,2).SpanCols = 2 \'

rt.Cells(5,3).SpanRows = 4 \'
\'设置表格样式
rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
rt.Style.GridLines.All = new Prt.LineDef(Color.Gainsboro) \'设置网格颜色
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
rt.Rows(9).Style.TextAlignVert = prt.AlignVertEnum.Top \'唯独第7行是备注,内容靠上对齐
\'\'\'下面很简单,指定每一个单元格的内容
rt.Cells(0,0).Text= "zto"
rt.Cells(0,0).Style.Font = New Font("微软雅黑", 16, FontStyle.Bold) \'设置字体
....................
Dim rg As New prt.RenderGraphics
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.Code128
bar.Code = "368806664526"  \'条形码
rg = new prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics,0,0,1)
rt.Cells(3,0).RenderObject = rg  \'将单元格内容设置为图片对象rm


Dim rbc As New prt.RenderBarCode()
rbc.Height = 1

rbc.BarCodeType = BarCodeEnum.Code128
rbc.BarDirection = BarDirectionEnum.Up
rbc.Text = "368806664526"
rbc.ShowText = False
rt.Cells(5,3).RenderObject = rbc  \'将单元格内容设置为图片对象rm

doc.Body.Children.Add(rt) \'将表格对象加入到报表中

\'Dim rt0 As prt.RenderText \'定义一个文本对象
\'rt0 = New prt.RenderText \'设置文本对象的内容
\'rt0.Text = "承诺达" \'设置文本内容
\'rt0.Width = "38" \'宽度等于页面宽度
\'rt0.Height = "245" \'高度等于页面高度
\'rt0.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中对齐
\'rt0.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中对齐
\'rt0.Style.Font = New Font("微软雅黑",14, FontStyle.Bold) \'设置字体
\'rt0.Style.TextColor = Color.DarkSlateGray \'文本颜色为灰色
\'Doc.WaterMark = rt0 \'作为水印使用

Doc.Preview   () \'预览报表

--  作者:有点蓝
--  发布时间:2019/12/24 15:19:00
--  
什么数据没有过来?截图说明一下。这段代码除了2个条码都没有其他赋值的代码
--  作者:zto001
--  发布时间:2019/12/24 20:01:00
--  
如图,一个是我打的,一个是别人电脑打的,打了一张白纸
[此贴子已经被作者于2019/12/24 20:03:59编辑过]

--  作者:zto001
--  发布时间:2019/12/24 20:03:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20191224200228.jpg
图片点击可在新窗口打开查看
发错图了,是这两个
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20191224200224.jpg
图片点击可在新窗口打开查看


--  作者:zto001
--  发布时间:2019/12/24 20:04:00
--  

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

[此贴子已经被作者于2019/12/24 20:04:32编辑过]

--  作者:zto001
--  发布时间:2019/12/24 20:05:00
--  
Dim 当前行 As Row = Args(0)
Dim 自定义 As String
Dim 打印() As String = 当前行("打印信息").split("\\")
If 当前行("内件详情").Contains ("[{") Then
Dim json As String =  当前行("内件详情")
For Each ep As JToken In JArray.Parse(json)
自定义=ep("商品名称").ToString() &  " " & ep("规格").ToString() &" 【" & ep("数量").ToString() &"】"
Next
Else
自定义= 当前行("内件详情")
End If
Dim doc As New PrintDoc \'定义一个报表

doc.PageSetting.Width =74 \'纸张宽度为100毫米
doc.PageSetting.Height =129 \'纸张高度为120毫米

Dim rt As New prt.RenderTable() \'定义一个表格对象
Doc.PageSetting.LeftMargin = 1 \'设置左边距
Doc.PageSetting.RightMargin = 1 \'设置右边距
Doc.PageSetting.TopMargin = 2 \'设置上边距
Doc.PageSetting.BottomMargin = 1 \'设置下边距
rt.Width = "Parent.Width" \'对象宽度等于页面宽度
rt.Height = "Parent.Height" \'对象高度等于页面高度
\'指定行数?列数?列宽?行高
rt.Rows.Count = 10 \'设置总行数
rt.Cols.Count = 4 \'设置总列数
rt.Rows(0).Height = 9 \'
rt.Rows(1).Height = 0 \'
rt.Rows(2).Height = 17 \'
rt.Rows(3).Height = 11 \'
rt.Rows(4).Height = 10 \'
rt.Rows(5).Height = 7 \'
rt.Rows(6).Height = 14 \'
rt.Rows(7).Height = 6 \'
rt.Rows(8).Height = 6 \'
rt.Rows(9).Height = 37 \'
rt.Rows(10).Height = 14 \'
\'设置列宽度
rt.Cols(0).Width = 8.5 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 29.5
rt.Cols(2).Width = 22
rt.Cols(3).Width = 15
\'设置合并单元格
\'rt.Cells(0,0).SpanCols =2 \'
rt.Cells(1,0).SpanCols = 2 \'
rt.Cells(1,2).SpanCols = 2 \'
rt.Cells(2,0).SpanCols = 4 \'
rt.Cells(3,0).SpanCols = 4 \'
rt.Cells(4,0).SpanCols = 2 \'
rt.Cells(5,1).SpanCols = 2 \'
rt.Cells(5,0).SpanRows = 2 \'
rt.Cells(6,1).SpanCols = 2 \'
rt.Cells(7,0).SpanRows = 2 \'
rt.Cells(7,1).SpanCols = 2 \'
rt.Cells(8,1).SpanCols = 2 \'
rt.Cells(9,0).SpanCols = 4 \'
rt.Cells(10,0).SpanCols = 2 \'
rt.Cells(10,2).SpanCols = 2 \'
rt.Cells(5,3).SpanRows = 4 \'

\'设置表格样式
rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
rt.Style.GridLines.All = new Prt.LineDef(Color.RosyBrown) \'设置网格颜色
rt.Style.TextAlignVert =  prt.AlignVertEnum.Top \'内容靠上对齐
\'\'\'下面很简单,指定每一个单元格的内容
rt.Cells(0,1).Style.BackColor = Color.Black
Dim rx As New prt.RenderText \'定义一个文本对象
rx.Text = 打印(2) \' 打印(20)  \'退件标识
rx.Style.Font = New Font("微软雅黑", 16, FontStyle.Bold)
rx.Style.TextColor = Color.white
rt.Cells(0,1).RenderObject = rx \'将文本对象放置在单元格中
rt.Cells(0,3).Text= "退标请勿盖住此行!"  \'"第1/1页"
rt.Cells(0,3).Style.Font = New Font("微软雅黑", 7, FontStyle.Regular) \'设置字体
rt.Cells(0,2).Text= "普通订单"
rt.Cells(0,2).Style.Font = New Font("微软雅黑", 12, FontStyle.Bold) \'设置字体
rt.Cells(3,0).Text= 当前行("大头笔")  \'大头笔
rt.Cells(3,0).Style.Font = New Font("微软雅黑",20, FontStyle.Bold) \'设置字体
rt.Cells(4,0).Text= 当前行("集包地") \'集包地
rt.Cells(4,0).Style.Font = New Font("微软雅黑", 16, FontStyle.Bold) \'设置字体
rt.Cells(4,2).Text= Date.Now
rt.Cells(4,2).Style.FontSize = 8  \'字体大小为16磅
rt.Cells(5,1).Text= 当前行("收件人") & " " & 当前行("收件电话")  \'收件人 电话
rt.Cells(5,1).Style.Font = New Font("微软雅黑", 9, FontStyle.Bold) \'设置字体
rt.Cells(6,1).Text= 当前行("收件省") & " " &当前行("收件市")& " " &当前行("收件区")& " " &当前行("收件地址") \'收件地址
rt.Cells(6,1).Style.Font = New Font("微软雅黑",8, FontStyle.Regular) \'设置字体
rt.Cells(5,0).Text= "收"
rt.Cells(5,0).Style.Font = New Font("微软雅黑", 14, FontStyle.Bold) \'设置字体
rt.Cells(7,0).Text= "寄"
rt.Cells(7,0).Style.Font = New Font("微软雅黑", 14, FontStyle.Bold) \'设置字体
rt.Cells(7,1).Text= 当前行("寄件人") & " "& 当前行("寄件电话")  \'寄件人电话
rt.Cells(8,1).Text= 当前行("寄件省")& " "&当前行("寄件市")& " "&当前行("寄件区")& " "&当前行("寄件地址") \'寄件地址
rt.Cells(8,1).Style.Font = New Font("微软雅黑",8, FontStyle.Regular) \'设置字体
rt.Cells(9,0).Text=自定义 \'内件
rt.Cells(9,0).Style.Font = New Font("微软雅黑",8, FontStyle.Bold) \'设置字体
rt.Cells(10,0).Text= "本次服务适用于中通官网(www.zto.com)公示的快递服务协议条款.您对此单的签收代表您已收到快件且包装完好无损."
rt.Cells(10,0).Style.Font = New Font("微软雅黑",6, FontStyle.Regular) \'设置字体
rt.Cells(10,2).Text=  打印(2) \'当前行(20)  \'退件标识
rt.Cells(10,2).Style.Font = New Font("微软雅黑",14, FontStyle.Bold) \'设置字体
rt.Cells(4,3).Text= " 已验视 " & Chr(13) & Chr(10) & " 已实名"
rt.Cells(4,3).Style.Font = New Font("微软雅黑",9, FontStyle.Bold) \'设置字体
rt.Cells(4,3).Style.GridLines.All = new Prt.LineDef(0.5,Color.Black) \'设置网格颜色
Dim rg As New prt.RenderGraphics
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.Code128
bar.Code = 当前行("运单编号")    \'条形码
rg = new prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics,0,0,1)
rt.Cells(2,0).RenderObject = rg  \'将单元格内容设置为图片对象rm
Dim rbc As New prt.RenderBarCode()
rbc.Height = 1
rbc.BarCodeType = BarCodeEnum.Code128
rbc.BarDirection = BarDirectionEnum.Up
rbc.Text = 当前行("运单编号")
rbc.ShowText = False
rt.Cells(5,3).RenderObject = rbc  \'将单元格内容设置为图片对象rm
doc.Body.Children.Add(rt) \'将表格对象加入到报表中

Dim rt0 As prt.RenderText \'定义一个文本对象
rt0 = New prt.RenderText \'设置文本对象的内容
rt0.Text = 打印(2) \'设置文本内容
rt0.Width = "115" \'宽度等于页面宽度
rt0.Height = "245" \'高度等于页面高度
rt0.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中对齐
rt0.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中对齐
rt0.Style.Font = New Font("微软雅黑",14, FontStyle.Bold) \'设置字体
rt0.Style.TextColor = Color.DarkSlateGray \'文本颜色为灰色
Doc.WaterMark = rt0 \'作为水印使用

Doc.PrinterName = Args(1)
Doc.Preview() \'预览报表

--  作者:有点蓝
--  发布时间:2019/12/24 20:07:00
--  
预览的时候有没有问题?不要在预览界面里点击打印,另外建一个按钮,直接调用Doc.print
--  作者:zto001
--  发布时间:2019/12/24 20:43:00
--  
不是在预览的时候打印的,是直接调用print打印的。
--  作者:zto001
--  发布时间:2019/12/24 20:44:00
--  
而且我明明有打印网格,在他那边都不出来。。而这个单最奇特,其他都能打印出来,就他打不出来。
--  作者:有点蓝
--  发布时间:2019/12/24 20:57:00
--  
预览有没有问题?换个打印机(随便什么打印机,或者虚拟打印机)测试有没有问题?