当前位置:编程学习 > VB >>

如何在VB实现打印功能

在一个窗体上面有许多TEXT控件,当点击打印按扭时.打印机就会在相同的位置上打印填写有TEXT的内容!
在VB中该如何实现!
--------------------编程问答-------------------- printer.currentx=500
printer.currenty=500
printer.print text1.text

printer.currentx=1000
printer.currenty=500
printer.print text2.text
--------------------编程问答-------------------- 楼上的兄弟 能否跟我说详细点.有点不太懂! --------------------编程问答-------------------- 打印的位置X,Y的置就是TEXT到窗体的距离?

--------------------编程问答-------------------- 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

--------------------编程问答-------------------- '补充说明:

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

--------------------编程问答-------------------- 请问一下老师============打印和表格制作的问题

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

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


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

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

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


也就是说一张A4纸我想打两排.而不是想数据报表打印的只能打一排.
另外,想请教一下,如果有很多页,比如超过2页时,怎么写代码?特别是表格前面我想做个表头的.
请给一个思路,谢谢!!
还有,表格的大小可不可以随着表格内的数据大小自动调整,用什么样的表格控件比较好,
?
谢谢!!!!!
如果我说的不清楚,下次我放个图片上来. --------------------编程问答--------------------     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
--------------------编程问答-------------------- lz要干嘛? --------------------编程问答-------------------- 等待牛人来答. --------------------编程问答-------------------- 好像没那么简单,呵呵. --------------------编程问答-------------------- 还是不懂
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,