|
VB + POS机打印超市小票,要怎样控制根据打印的内容自动停止走纸??
用Printer打印的。
参考代码:
Private Sub cmdPrint_Click()
Dim i As Integer, Row As Integer, Rows As Integer
Dim BColWidth As Integer, ColWidth(4) As Integer, ColPosition(4) As Integer
Adodc1.RecordSource = "select * from ckd "
Adodc1.Refresh
With Adodc1.Recordset
If .RecordCount = 0 Then
MsgBox "没有要打印的数据!", vbOKCancel, "提示"
Exit Sub
End If
Printer.ScaleMode = 3
'根据字宽设置基本列宽
BColWidth = Int(Printer.TextWidth("宽")) + 1
'根据纸张大小和字高设置每页打印行数
Rows = Printer.ScaleHeight \ (Printer.TextHeight("高") + 1) - 4
'设置每列的宽度
ColWidth(0) = 5 * BColWidth
ColWidth(1) = 8 * BColWidth
ColWidth(2) = 5 * BColWidth
ColWidth(3) = 5 * BColWidth
ColWidth(4) = 8 * BColWidth
'定位要打印的数据
ColPosition(0) = 260
ColPosition(1) = ColPosition(0) + ColWidth(0)
ColPosition(2) = ColPosition(1) + ColWidth(1)
ColPosition(3) = ColPosition(2) + ColWidth(2)
ColPosition(4) = ColPosition(3) + ColWidth(3)
'打印表头
Printer.FontName = "黑体"
Printer.FontSize = "10"
Printer.Print
Printer.Print
Printer.CurrentX = ColPosition(0)
Printer.Print "编号";
Printer.CurrentX = ColPosition(1)
Printer.Print "商品名称";
Printer.CurrentX = ColPosition(2)
Printer.Print "CT";
Printer.CurrentX = ColPosition(3)
Printer.Print "G";
Printer.CurrentX = ColPosition(4)
Printer.Print "金额"
'打印数据
.MoveFirst
Row = 0
Do While Not .EOF
Printer.FontName = "宋体"
Printer.FontSize = "10"
Printer.CurrentX = ColPosition(0)
Printer.Print .Fields("编号");
Printer.CurrentX = ColPosition(1)
Printer.Print .Fields("商品名称");
Printer.CurrentX = ColPosition(2)
Printer.Print .Fields("CT");
Printer.CurrentX = ColPosition(3)
Printer.Print .Fields("G");
Printer.CurrentX = ColPosition(4)
Printer.Print Format(.Fields("金额"), "##,##0.00")
Row = Row + 1
.MoveNext
Loop
Printer.EndDoc
End With
End Sub |
|