VB按行打印数据库表设置字段间距问题
VB+SQL2000数据库,当向表中添加一条记录就实时打印出来,使用
Open "LPT1" For Output As #1
Print #1, Adodc2.Recordset.Fields(1),Adodc2.Recordset.Fields(2)
Close
如何设置每个字段的开始打印位置,就是设置两字段的固定间距。效果如下
姓名 地区 电话
张三 北京 15810608288
张大山 鄂尔多斯 13324111111
[解决办法]
求帮助!!!!!!!!!
[解决办法]
Open "LPT1" For Output As #1
Print #1, Adodc2.Recordset.Fields(1);TAB(10);Adodc2.Recordset.Fields(2)
Close
用TAB()格开也不行,用spc()格也不行
都是根据前一字段中内容长短而使第二个字段打印位置变化
[解决办法]
这不是 VB 语言的问题,要根据具体的打印机设置制表符。
例如:
Oracle 打印机是以 8 个空格表示制表符;
在 LQ-1600K 打印机则更为复杂:
==================================================
设置/ 解除水平制表符
ASCII 代码 ESC D n1...nk NUL
十六进制代码 1B 44 n1...nk 00
用途:最多可设置32 个水平制表符位置。
表达式CHR$(27); "D";CHR$(n1);...CHR$(n32);CHR$(0);
n= 1-255;k= 1-32
其中:
n1 到n32 指定制表符位置的字符列。NUL 是序列结束符。ESC
D NUL 清除所有制表符。
说明 n 值必须按升序排列,否则将被忽略。大于32 或超出右边界的
制表符将被忽略。物理制表符位置是n 和当前单元宽度(1/ 跨度
) 的乘积,不包括双倍宽度。
设置制表符后, HT 将模拟打印头移至下一个制表符位置。发送
ESC @ 初始化打印机并重置制表符为每8 个字符列插入一个(
默认设置)。
在均匀模式下, 10 CPI 字符的大小决定制表符位置。
=====================================================
请查阅你的打印机手册。
[解决办法]
我是这样解决的
先为每个字段设一个固定长度,然后用len算出字段中字符的个数,再和固定长度比较后用空格补齐
a=30
b=len(Adodc2.Recordset.Fields(1))
c=a-b
str=Adodc2.Recordset.Fields(1)& space(c)
然后再打印str