Office中国论坛/Access中国论坛

标题: POS打印走纸 [打印本页]

作者: wufeng980114    时间: 2010-3-28 19:43
标题: POS打印走纸
我实现了如下图所示的主体按照要求打印内容,但是如对齐标题,我还是没有解决,那位高手给我修改一下代码。

Private Sub 输出打印_Click()
Dim K小编号, K名称, K单价 As String
Open "LPT1" For Output As #1
Print #1, Chr(2) + "     表1"
Print #1, Chr(2) + "大编号" + "___________"
Print #1, Chr(2) + "小编号" + "    名称" + "  单位" + "数量"
Dim st As String
Dim rs As ADODB.Recordset
   
Set rs = New ADODB.Recordset
st = "select * from 表1 where [大编号]='" & 大编号 & "'"
rs.Open st, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For I = 1 To rs.RecordCount
K小编号 = rs("小编号")
K名称 = rs("名称")
K单价 = rs("单价")
Print #1, Chr(2) + K小编号 + K名称 + K单价
rs.MoveNext
Next I
Print #1, Chr(2)
Print #1, Chr(2)
Print #1, Chr(2)
Print #1, Chr(2)
Print #1, Chr(2)
Print #1, Chr(2)
Print #1, Chr(2)
Print #1, Chr(2)
Close #1
End Sub

[attach]41807[/attach][attach]41808[/attach]
作者: popo559    时间: 2010-3-29 18:02
帮你顶
作者: LeeTien    时间: 2010-3-30 10:28
期待
作者: tz-chf    时间: 2010-3-30 11:25
Print #1, Chr(2) + "小编号" + "    名称" + "  单位" + "数量"
干什么?
Print #1, "小编号    名称  单位  数量"不行啊!
chr(2)是什么?

Print #1, Chr(2) + K小编号 + K名称 + K单价
没必要用变量。连在一起怎么看,该空的空啊,和标题对齐吧

还有一个疑问:
Dim K小编号, K名称, K单价 As String
三个都声明为string了?好多书上都这么写。我记得要一个个写as string。
作者: wufeng980114    时间: 2010-4-14 14:26
本帖最后由 wufeng980114 于 2010-4-14 14:37 编辑

Print #1, "小编号    名称  单位  数量"  是可以的。
Print #1, Chr(2) + K小编号 + K名称 + K单价
没必要用变量。连在一起怎么看,该空的空啊,和标题对齐吧
Print #1, Chr(2) + K小编号 + K名称 + K单价。因为,每次打印的具体的内容和内容长度不一样,所以必须用变量来解决,而且,空多少也是变化的,下面我解决了空多少空格的问题。
可以连续定义很多变量的,不用一个一个的定义。

CHR(2)我也不知道是什么,还有,打印的内容都必须为string 否则出错。其他的如:如何调整字体大小、字体格式等如何设置,我都不明白,在此请高手解决吧!

我想到了一个笨办法对齐:
整个POS打印纸宽度为32个字节,因此,根据,列数和每列内容,自己确定每列所占的字节数.如:小编号2字节(数字字节为汉字的一半);名称:24字节;单位:2字节;数量:4字节.每列字节的大小规定好了,就相当于规定了每列所占用的宽度。
接着,用LEN("")先求出每列内容所占的字节数,然后用每列的规定字节数减去该列内容的字节数,如果有余数,则在内容后本列增加相对应的空格数,这样每列都可以自动左对齐了;在内容左边加空格,在实现右对齐了。如果把余数除以2,在内容两端加空格,则实现中间对齐。

如:
K空格="                                  "
K名称=名称  &  LEFT(K空格,24-LEN("名称"))
其他以此类推。

经实际操作,按照以上方法,本人,已实现对齐功能。
作者: tz-chf    时间: 2010-4-14 21:01
基础思路对了,但用len名称如果有不是中文的就不对了。
作者: wufeng980114    时间: 2010-4-18 20:51
本帖最后由 wufeng980114 于 2010-4-18 20:56 编辑

数字和字母只占半个字节。
作者: hupingrenjia    时间: 2010-4-24 12:50
把重新修改后的文件放上来,看行不?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3