Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderText '定义一个文本对象
Dim ra As New prt.RenderArea '定义一个容器
Dim Result As DialogResult
Result = MessageBox.Show("打印后内容将自动保存,内容已经确定了吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If Result = DialogResult.OK Then
doc.PageSetting.Width = 150 '纸张宽度为100毫米
doc.PageSetting.Height = 190 '纸张高度为120毫米
Doc.PageSetting.TopMargin = 30 '设置上边距
Doc.PageSetting.LeftMargin = 1 '设置左边距
ra.Style.Spacing.All = 2 '设置各个方向的间隔
rt.Style.Spacing.Bottom = 4
ra.DataBinding.DataSource = BindTables("开料日期.开料明细") '将容器绑定到订单表
ra.Style.FontSize = 18 '字体大小为14磅
ra.DataBinding.Grouping.Expressions.Add("Fields!材料种类.Value") '根据产品进行分组
ra.DataBinding.Grouping.Expressions.Add("Fields!配比.Value") '根据产品进行分组
ra.DataBinding.Grouping.Expressions.Add("Fields!颜色.Value") '根据产品进行分组
ra.Style.Spacing.Bottom = 2
'这一个RenderText无需设置DataBinding,这样每一个分组只打印一次
rt.Text= "[Fields!材料种类.Value] [Fields!配比.Value] [Fields!颜色.Value] "
rt.Style.FontSize = 18 '字体大小为14磅
rt.Style.FontBold = True '字体加粗
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
ra.Children.Add(rt)'将文本对象加入到容器ra中
'这一个RenderText需要单独设置DataBinding,这样才会针对每一个数据行打印副本
rt = New prt.RenderText '创建文本对象
rt.Text = "[Fields!规格.Value]cm [Fields!厚度.Value]C [Fields!重量.Value]斤 [Fields!备注.Value]"
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.DataBinding.DataSource = ra.DataBinding.DataSource '不能漏掉这一行
rt.Style.Spacing.Bottom = 2
ra.Children.Add(rt)'将文本对象加入到容器ra中
doc.body.Children.Add(ra)
Doc.PrinterName = "DPK770E"
doc.Print()
DataTables("开料日期").Save()
DataTables("开料明细").Save()
Else
e.Cancel = True
End If
个人感觉跟代码没关系~原因是两台机子同样的代码执行,A台出现的是纵向,B台出现的是横向,从A台复制项目到B台后出现的还是横向,B台执行预缆代码后再打印出现的是纵向,A台则不需要预缆,直接打印就是纵向,上传代码再进行研究