以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于自定义纸张设置问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178609)

--  作者:jhxb8821
--  发布时间:2022/7/12 10:38:00
--  关于自定义纸张设置问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


老师,我对自定义纸张和打印机进行设置,可是选择票据打印机后,打出的内容不齐全,有的方向还有问题,我用的纸张为190*93,连续纸;票据打印机映美FP560K,请老师帮我看看两个代码,在哪里出现问题
[此贴子已经被作者于2022/7/12 10:42:32编辑过]

--  作者:有点蓝
--  发布时间:2022/7/12 10:43:00
--  
预览和打印要分开2个按钮,不能在预览界面里进行打印。
--  作者:jhxb8821
--  发布时间:2022/7/12 10:53:00
--  请教如何分开
请问老师怎么写打印代码?
--  作者:有点蓝
--  发布时间:2022/7/12 11:07:00
--  
Doc.Print()
--  作者:jhxb8821
--  发布时间:2022/7/12 11:34:00
--  代码
老师,我试了多次,浪费了很多纸张,还是不行,应该横着打,结果竖做打,打的还不齐全。麻烦老师帮我认真看看代码
怎么实例上传不了
打印预览代码:

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
Dim rx As New prt.RenderText \'定义一个文本对象
doc.PageSetting.Landscape = True \'横向打印  逻辑型型,是否横向打印
doc.PageSetting.Width = 190 \'自定义设置纸张宽度为210毫米   设置页面宽度,单位为毫米
doc.PageSetting.Height = 93 \'纸张高度为120毫米   设置页面高度,单位为毫米
doc.AutoRotate = False \'如果纸张的宽度超过高度,要加上这行代码
Doc.PageSetting.TopMargin = 5 \'设置上边距为15毫米
Doc.PageSetting.LeftMargin = 15 \'设置左边距,单位为毫米
Doc.PageSetting.RightMargin = 15 \'设置右边距
Doc.PageSetting.BottomMargin = 5 \'设置下边距  底边距
Dim CurRow As Row = Tables("表A").Current
\'加入标题
rx.text = "浙中旅游公司——员工资料卡"
rx.Style.FontBold = True \'字体加粗
rx.Style.FontSize = 16 \'大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列
rx.Style.Spacing.Bottom = 2 \'和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) \'加入到报表中
\'指定行数、列数、列宽、行高
rt.Rows.Count = 7 \'设置总行数
rt.Cols.Count = 5 \'设置总列数
rt.Height = 55 \'设置表格的高度为80毫米
rt.Width = 155 \'设置表格的宽度为155毫米
rt.Rows(6).Height = 16 \'设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行
\'rt.Cols(0).Width = 24 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 35
\'rt.Cols(2).Width = 24
rt.Cols(3).Width = 35
rt.Cols(4).Width = 35
\'设置合并单元格
rt.Cells(0, 4).SpanRows = 6 \'第1行第5个单元格向下合并6行(用于显示照片)
rt.Cells(4, 1).SpanCols = 3 \'第5行第2个单元格向右合并3列(用于显示地址)
rt.Cells(6, 0).SpanCols = 5 \'第7行第1个单元格向右合并5列(用于显示备注)
\'设置表格样式
rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列  新增
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
\'rt.Style.Font = New Font("宋体", 11, FontStyle.Bold) \'设置字体   新增
rt.Style.Font = New Font("宋体", 11) \'设置字体   新增
rt.Rows(6).Style.TextAlignVert = prt.AlignVertEnum.Top \'唯独第7行是备注,内容靠上对齐
\'下面很简单,指定每一个单元格的内容
rt.Cells(0, 0).Text = "姓  名"
rt.Cells(0, 1).Text = CurRow("姓名")
rt.Cells(0, 2).Text = "出生日期"
rt.Cells(0, 3).Text = CurRow("出生日期")
rt.Cells(1, 0).Text = "部  门"
rt.Cells(1, 1).Text = CurRow("部门")
rt.Cells(1, 2).Text = "雇佣日期"
rt.Cells(1, 3).Text = CurRow("雇佣日期")
rt.Cells(2, 0).Text = "性  别"
rt.Cells(2, 1).Text = CurRow("性别")
rt.Cells(2, 2).Text = "职  务"
rt.Cells(2, 3).Text = CurRow("职务")
rt.Cells(3, 0).Text = "城  市"
rt.Cells(3, 1).Text = CurRow("城市")
rt.Cells(3, 2).Text = "邮政编码"
rt.Cells(3, 3).Text = CurRow("邮政编码")
rt.Cells(4, 0).Text = "地  址"
rt.Cells(4, 1).Text = CurRow("地址")
rt.Cells(5, 0).Text = "家庭电话"
rt.Cells(5, 1).Text = CurRow("家庭电话")
rt.Cells(5, 2).Text = "办公电话"
rt.Cells(5, 3).Text = CurRow("办公电话")
rt.Cells(6, 0).Text = CurRow("备注")
rt.Cells(0, 4).Image = GetImage(CurRow("照片"))
doc.Body.Children.Add(rt) \'将表格对象加入到报表中

\'二维码代码     
Dim rg As prt.RenderGraphics
Dim mg As String = ProjectPath & "Images\\二维码.wmf"\'\'约定的图片文件 二维码保存代码1
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Bar.QRCodeModuleSize = 2 \'二维码的放大倍数
Bar.Code = "姓名:" & CurRow("姓名") & vbcrlf & "部门:" & CurRow("部门") & vbcrlf & "电话:" & CurRow("办公电话") 
bar.SaveImage(mg, 300) \'二维码保存代码2
rg = New prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics, 0, 0, 0.5)
rg.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
rg.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center \'图片垂直居中
rg.Style.ImageAlign.StretchHorz = False \'禁止水平方向扩展图片
rg.Style.ImageAlign.StretchVert = False \'禁止垂直方向扩展图片
Dim ra2 = rt.Cells(0, 4).Area \'引用单元格的容器 \'
ra2.Children.Add(rg)
\'表格后新增内容设计
rx = New prt.RenderText() \'再次定义一个文本对象
rx.Text = "说明:第一联(存根),第二联(客户),第三联(会计)"
rx.Style.Font = New Font("仿宋", 10 , FontStyle.Bold) \'设置文本对象的字体
rx.Style.Spacing.Top = 2 \'表格和前面对象的垂直间隔为4毫米  \'此代码是调整"标题与表格"之间的间距
doc.Body.Children.Add(rx) \'将文本对象加入到表格中
Doc.Preview() \'预览报表
\'Doc.Print()

打印按钮代码:

Dim doc As New PrintDoc()
doc.PageSetting.Width = 190 \'纸张宽度为190毫米
doc.PageSetting.Height = 93 \'纸张高度为93毫米
doc.AutoRotate = False \'如果纸张的宽度超过高度,要加上这行代码
\'添加打印内容
\'Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
Dim rx As New prt.RenderText \'定义一个文本对象
doc.PageSetting.Landscape = True \'横向打印  逻辑型型,是否横向打印
Doc.PageSetting.TopMargin = 5 \'设置上边距为15毫米
Doc.PageSetting.LeftMargin = 15 \'设置左边距,单位为毫米
Doc.PageSetting.RightMargin = 15 \'设置右边距
Doc.PageSetting.BottomMargin = 5 \'设置下边距  底边距
Dim CurRow As Row = Tables("表A").Current
\'加入标题
rx.text = "浙中旅游公司——员工资料卡"
rx.Style.FontBold = True \'字体加粗
rx.Style.FontSize = 16 \'大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列
rx.Style.Spacing.Bottom = 2 \'和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) \'加入到报表中
\'指定行数、列数、列宽、行高
rt.Rows.Count = 7 \'设置总行数
rt.Cols.Count = 5 \'设置总列数
rt.Height = 55 \'设置表格的高度为80毫米
rt.Width = 155\'设置表格的宽度为160毫米
rt.Rows(6).Height = 16 \'设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行
\'rt.Cols(0).Width = 24 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 35
\'rt.Cols(2).Width = 24
rt.Cols(3).Width = 35
rt.Cols(4).Width = 35
\'设置合并单元格
rt.Cells(0, 4).SpanRows = 6 \'第1行第5个单元格向下合并6行(用于显示照片)
rt.Cells(4, 1).SpanCols = 3 \'第5行第2个单元格向右合并3列(用于显示地址)
rt.Cells(6, 0).SpanCols = 5 \'第7行第1个单元格向右合并5列(用于显示备注)
\'设置表格样式
rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列  新增
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
\'rt.Style.Font = New Font("宋体", 11, FontStyle.Bold) \'设置字体   新增
rt.Style.Font = New Font("宋体", 11) \'设置字体   新增
rt.Rows(6).Style.TextAlignVert = prt.AlignVertEnum.Top \'唯独第7行是备注,内容靠上对齐
\'下面很简单,指定每一个单元格的内容
rt.Cells(0, 0).Text = "姓  名"
rt.Cells(0, 1).Text = CurRow("姓名")
rt.Cells(0, 2).Text = "出生日期"
rt.Cells(0, 3).Text = CurRow("出生日期")
rt.Cells(1, 0).Text = "部  门"
rt.Cells(1, 1).Text = CurRow("部门")
rt.Cells(1, 2).Text = "雇佣日期"
rt.Cells(1, 3).Text = CurRow("雇佣日期")
rt.Cells(2, 0).Text = "性  别"
rt.Cells(2, 1).Text = CurRow("性别")
rt.Cells(2, 2).Text = "职  务"
rt.Cells(2, 3).Text = CurRow("职务")
rt.Cells(3, 0).Text = "城  市"
rt.Cells(3, 1).Text = CurRow("城市")
rt.Cells(3, 2).Text = "邮政编码"
rt.Cells(3, 3).Text = CurRow("邮政编码")
rt.Cells(4, 0).Text = "地  址"
rt.Cells(4, 1).Text = CurRow("地址")
rt.Cells(5, 0).Text = "家庭电话"
rt.Cells(5, 1).Text = CurRow("家庭电话")
rt.Cells(5, 2).Text = "办公电话"
rt.Cells(5, 3).Text = CurRow("办公电话")
rt.Cells(6, 0).Text = CurRow("备注")
rt.Cells(0, 4).Image = GetImage(CurRow("照片"))
doc.Body.Children.Add(rt) \'将表格对象加入到报表中

\'二维码代码     
Dim rg As prt.RenderGraphics
Dim mg As String = ProjectPath & "Images\\二维码.wmf"\'\'约定的图片文件 二维码保存代码1
Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.QRCode
Bar.QRCodeModuleSize = 2 \'二维码的放大倍数
Bar.Code = "姓名:" & CurRow("姓名") & vbcrlf & "部门:" & CurRow("部门") & vbcrlf & "电话:" & CurRow("办公电话") 
bar.SaveImage(mg, 300) \'二维码保存代码2
rg = New prt.RenderGraphics
bar.DrawOnCanvas(rg.Graphics, 0, 0, 0.5)
rg.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中
rg.Style.ImageAlign.AlignVert = prt.ImageAlignVertEnum.Center \'图片垂直居中
rg.Style.ImageAlign.StretchHorz = False \'禁止水平方向扩展图片
rg.Style.ImageAlign.StretchVert = False \'禁止垂直方向扩展图片
Dim ra2 = rt.Cells(0, 4).Area \'引用单元格的容器 \'
ra2.Children.Add(rg)
\'表格后新增内容设计
rx = New prt.RenderText() \'再次定义一个文本对象
rx.Text = "说明:第一联(存根),第二联(客户),第三联(会计)"
rx.Style.Font = New Font("仿宋", 10 , FontStyle.Bold) \'设置文本对象的字体
rx.Style.Spacing.Top = 2 \'表格和前面对象的垂直间隔为4毫米  \'此代码是调整"标题与表格"之间的间距
doc.Body.Children.Add(rx) \'将文本对象加入到表格中
\'doc.Preview() \'预览报表
Doc.Print()\'直接打印
[此贴子已经被作者于2022/7/12 11:39:06编辑过]

--  作者:有点蓝
--  发布时间:2022/7/12 11:42:00
--  
去掉doc.PageSetting.Landscape = True
--  作者:jhxb8821
--  发布时间:2022/7/12 12:24:00
--  谢谢老师指导
终于打了一张正常的
--  作者:jhxb8821
--  发布时间:2022/7/20 8:48:00
--  代码
老师,我在进账单窗口设计时,想从日期列提取日,比如2022-07-01,e.Text = Day(e.Value),这个代码得到1,我想为2位数,得到01,请教老师如何修改?

--  作者:有点蓝
--  发布时间:2022/7/20 8:59:00
--  
e.Text = format(e.Value,"dd")
--  作者:jhxb8821
--  发布时间:2022/8/19 13:40:00
--  代码

保存达到这个效果:选房顺序号(2022-08-19  132029).

老师,帮忙看一下下面代码怎么修改?

Dim fl As String = ProjectPath & "Reports\\打印报表\\" & format(Date.now, "yyyy-MM-dd") & "\\" & r("户型") & "  选房顺序号" & "(" & format(Date.now, "yyyy-MM-dd") & "  " & "HH:mm:ss" & ").xls"