首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB按行打印数据库表设置字段间距有关问题

2012-12-25 
VB按行打印数据库表设置字段间距问题VB+SQL2000数据库,当向表中添加一条记录就实时打印出来,使用Open LPT

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

热点排行