如何在VB实现打印功能

mis_ks 2008-03-09 11:18:03
在一个窗体上面有许多TEXT控件,当点击打印按扭时.打印机就会在相同的位置上打印填写有TEXT的内容!
在VB中该如何实现!
...全文
439 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
youchun2008 2008-10-22
  • 打赏
  • 举报
回复
还是不懂
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
等待牛人来答.
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
lz要干嘛?
lcsfxs 2008-03-14
  • 打赏
  • 举报
回复
nLeft = lcsleft
nTop = lcstop
Printer.Width = 13904 '' 13904
Printer.Height = 3800 '' 3800
Printer.Orientation = 1
If MsgBox("请检查打印机是否接电与装纸,开始打印吗?", _
vbYesNo + vbQuestion) = vbYes Then
Printer.Font.Size = 14
' Printer.CurrentX = nLeft + 6250
' Printer.CurrentY = nTop
' Printer.Print ADOTemp![编号]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1100
Printer.Print ADOTemp![用户姓名]
Printer.CurrentX = nLeft + 3300
Printer.CurrentY = nTop + 1100
Printer.Print ADOTemp![地区名称]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1100 + 490 * 1
Printer.Print ADOTemp![上网帐号]
Printer.CurrentX = nLeft + 5700
Printer.CurrentY = nTop + 1100 + 490 * 1
Printer.Print ADOTemp![联系电话]

lcsprinter1

Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1100 + 490 * 3
Printer.Print ADOTemp![地址]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1000 + 490 * 4
Printer.Print ADOTemp![宽带类型]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1000 + 490 * 5
Printer.Print ADOTemp![受理时间]
Printer.CurrentX = nLeft + 4700
Printer.CurrentY = nTop + 1000 + 490 * 5
Printer.Print ADOTemp![受理工号]
' Printer.CurrentX = nLeft - 300
' Printer.CurrentY = nTop + 1100 + 490 * 6
' Printer.Print ADOTemp![机型]
' Printer.CurrentX = nLeft - 300
' Printer.CurrentY = nTop + 1100 + 490 * 7
' Printer.Print ADOTemp![显示器]
End If
Printer.EndDoc
shepanrrylib 2008-03-13
  • 打赏
  • 举报
回复
老师 想请教一下 也是关于打印的问题.数据表格的打印.

比如,字段是 学号,姓名,性别,家庭地址,入学年份,备注.
要打印的页面是

[学号,姓名,性别,家庭地址,入学年份,备注. ] [学号,姓名,性别,家庭地址,入学年份,备注. ]


也就是说一张A4纸我想打两排.而不是想数据报表打印的只能打一排.
另外,想请教一下,如果有很多页,比如超过2页时,怎么写代码?特别是表格前面我想做个表头的.
请给一个思路,谢谢!!
还有,表格的大小可不可以随着表格内的数据大小自动调整,用什么样的表格控件比较好,
?
谢谢!!!!!
如果我说的不清楚,下次我放个图片上来.
shepanrrylib 2008-03-13
  • 打赏
  • 举报
回复
请问一下老师============打印和表格制作的问题

比如,字段是 学号,姓名,性别,家庭地址,入学年份,备注.
要打印的页面是

[学号,姓名,性别,家庭地址,入学年份,备注. ] [学号,姓名,性别,家庭地址,入学年份,备注. ]


也就是说一张A4纸我想打两排.而不是想数据报表打印的只能打一排.
另外,想请教一下,如果有很多页,比如超过2页时,怎么写代码?特别是表格前面我想做个表头的.
请给一个思路,谢谢!!
还有,表格的大小可不可以随着表格内的数据大小自动调整,用什么样的表格控件比较好,
?
谢谢!!!!!
如果我说的不清楚,下次我放个图片上来.
mis_ks 2008-03-09
  • 打赏
  • 举报
回复
打印的位置X,Y的置就是TEXT到窗体的距离?

mis_ks 2008-03-09
  • 打赏
  • 举报
回复
楼上的兄弟 能否跟我说详细点.有点不太懂!
饮水需思源 2008-03-09
  • 打赏
  • 举报
回复
printer.currentx=500
printer.currenty=500
printer.print text1.text

printer.currentx=1000
printer.currenty=500
printer.print text2.text
cbm6666 2008-03-09
  • 打赏
  • 举报
回复
'补充说明:

Dim i%, obj As Control
Private Sub Command1_Click()
jj = Me.Controls.Count
'*********************** 打印窗体内所有TextBox内容
Me.AutoRedraw = True: Me.Cls
i = 0
For Each obj In Me.Controls '枚举窗体内的所有控件
If TypeOf obj Is TextBox Then '如该控件为 TextBox
If Controls(i).Text <> "" Then '如该TextBox不为空,则打印
Me.CurrentX = Controls(i).Left '定位窗体上显示的X座标
Me.CurrentY = Controls(i).Top '定位窗体上显示的Y座标
Print Controls(i).Text '显示该TextBox的内容
'Printer.CurrentX = Controls(i).Left '定位打印机的X座标
'Printer.CurrentY = Controls(i).Top '定位打印机的Y座标
'Printer.Print Controls(i).Text '打印该TextBox的内容
Controls(i).Left = Screen.Width '不移走的话,看不到下面的字,呵呵...
End If
End If
i = i + 1
Next
'Printer.EndDoc '结束打印
End Sub

cbm6666 2008-03-09
  • 打赏
  • 举报
回复
Dim i%, obj As Control
Private Sub Command1_Click()
jj = Me.Controls.Count
'*********************** 打印窗体内所有TextBox内容
Me.AutoRedraw = True: Me.Cls
i = 0
For Each obj In Me.Controls '枚举窗体内的所有控件
If TypeOf obj Is TextBox Then '如该控件为 TextBox
If Controls(i).Text <> "" Then '如该TextBox不为空,则打印
Me.CurrentX = Controls(i).Left
Me.CurrentY = Controls(i).Top
Controls(i).Left = Screen.Width '不移走的话,看不到下面的字,呵呵...
Print Controls(i).Text
'Printer.Print Controls(i).Text
End If
End If
i = i + 1
Next
'Printer.EndDoc
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧