类似于-“中国移动话费单打印”的思路
来源:互联网 发布:ubuntu系统升级命令 编辑:程序博客网 时间:2024/04/30 03:57
前一阵子给 安徽省棉麻交易市场 作了一个咚咚
(类似于中国移动话费单打印)
其中一个模块的功能就是实现单据打印
单据是专用纸,不是白纸
模块程序简单,主要是思路要对,要不然就复杂了
开始走了弯路,老是想怎么用报表
比如datareport,ms的MSFlexGrid,还有更为复杂的第三方水晶报表
事实上用一个极为简单的Printer.CurrentX和printer.CurrentY就可以了
要做的准备工作就是量好单据每个要打印项的坐标
再乘以56.7,转化成“缇”
如果是水平打印,则要先将打印机的走纸设为横向(控制面板里。。)
还有个细节是换行问题
在VB中,text文本框的输入是可以自动换行的,但打印则不会自动换行
为此,我编写了一个函数实现每个文本框每行最多打印6个字符:
Sub PrintSingleLine(s As String, X As Long, n As Integer)
Dim nLines As Integer
nLines = Len(s) / n
If Len(s) > n * nLines Then nLines = nLines + 1
If Len(s) = 0 Then nLines = 1 ' 空 行
For i = 0 To nLines - 1
Printer.CurrentX = X
Printer.Print Mid(s, i * n + 1, n)
Next
End Sub
再实行以下调用:
Dim s As String, sLine As String
Printer.CurrentY = 72 * 56.7 '72是我例子的坐标
s = txtProductInfo(2).Text '我例子的文本框
pos = InStr(s, vbCrLf) 'vbCrlf索回车的意思。。
Do While pos > 0
sLine = Left(s, pos - 1)
s = Mid(s, pos + 2)
PrintSingleLine Trim(sLine), 49 * 56.7, 6
pos = InStr(s, vbCrLf)
Loop
PrintSingleLine Trim(s), 49 * 56.7, 6 '每行6个字符
---------作者卡卡---------
- 类似于-“中国移动话费单打印”的思路
- 一个类似于杨辉三角的数组算法思路
- java打印特殊单据的思路
- 中国移动的TD尴尬
- 中国移动的“一命二运三风水”
- 中国移动的指令大全
- 中国移动的GPRS设置
- 谁的中国移动?
- 如何写一个可以设置等级的打印log,类似于 Debug版本 和release版本。
- 中国移动
- 中国移动
- 中国移动
- java打印菱形思路
- 螺旋数组和S形状数组的打印思路
- 类似于DispatchAction的action
- 类似于QQ的菜单
- 类似于QQ的菜单
- 类似于flash的菜单
- 省亲金陵
- sql server平台用存储过程进行分页的两种方法
- 终身受用的4个经典故事
- mp3文件格式(frame header )---翻译
- 对ORACLE初学者的一点建议
- 类似于-“中国移动话费单打印”的思路
- jbpm 异常处理与安全问题
- Problem during Miranda development
- 质量是什么?
- asp过滤数据库中含有html标签。
- java.util.Dictionary翻译
- ado.net获取存储过程的返回值
- 可用性ABC
- Asp.net中与codePage="936"有关的css失效等奇怪问题的解决办法(原创)