注册 登录
编程论坛 VB6论坛

什么表格控件适合打印?

dsasada 发布于 2018-05-01 22:43, 1548 次点击
我想把excel表格几列数据提取出来,然后在窗体上显示,每行数据前有复选框,把勾选的数据打印在打印纸的格子里,什么表格控件适合显示数据又能打印?
3 回复
#2
wufuzhang2018-05-03 15:11
试试VSFlexGrid控件(注册并添加VSFlex8.ocx文件)
#3
dsasada2018-05-09 23:18
'打印时以左上角为原点,向右和向下为正,反向为负
'字号为10号
Printer.FontSize=10
'打印机的横坐标
Printer.CurrentX = 0
'打印机的纵坐标
Printer.CurrentY = 0
'设定打印机是横向打印还是纵向打印,1:纵向;2:横向
Printer.Orientation = 1
'打印内容
Printer.Print ""
For i=1 To lvwPub.ListItems.Count
    '打印ListView中每一行中每列的内容
    '在打印每一列前先设定打印位置(坐标)
    '打印机的横坐标
    Printer.CurrentX = 0
    '打印机的纵坐标
    Printer.CurrentY = 0+i*5  '*5中的5为每行的高度
    'ListView中每一行中第0列的内容
    Printer.Print lvwPub.ListItems(i)
    '打印机的横坐标
    Printer.CurrentX = 10
    '打印机的纵坐标
    Printer.CurrentY = 0+i*5
    'ListView中每一行中第1列的内容
    Printer.Print lvwPub.ListItems(i).SubItems(1)
    '打印机的横坐标
    Printer.CurrentX = 20
    '打印机的纵坐标
    Printer.CurrentY = 0+i*5
    'ListView中每一行中第2列的内容
    Printer.Print lvwPub.ListItems(i).SubItems(2)
    '打印机的横坐标
    Printer.CurrentX = 30
    '打印机的纵坐标
    Printer.CurrentY = 0+i*5
    'ListView中每一行中第3列的内容
    Printer.Print lvwPub.ListItems(i).SubItems(3)
Next
'打印内容处理完毕,打印机打开始打印
Printer.EndDoc
没有打印机可以用Snagit软件,它是一个截图软件,可以代替打印机使用,打印的内容会以图片的形式显示再来
#4
dsasada2018-05-09 23:27
一个办法是利用ListView.ListItems集合遍历所有的数据,并输出至打印机。如:
Dim i, j
For i = 1 To ListView1.ListItems.Count
Printer.Print ListView1.ListItems(i),
For j = 1 To ListView1.ColumnHeaders.Count - 1
Printer.Print ListView1.ListItems(i).SubItems(j),
Next
Printer.Print
Next
另一个办法是遍历数据的同时,将数据输出到一个临时数据库文件,然后利用报表控件输出。
1