注册 登录
编程论坛 VB6论坛

A4 窗体自动插满控件并多页打印??

newsoftware 发布于 2018-04-25 23:16, 3383 次点击

我想在A4 窗体上自动插满控件,比如BarCodeCtrl1控件,大小固定为3000宽,1300高,但用 Top 或 Left 属性定义位置时,只能纵向或橫向增加插入,不能插满A4幅面,如下:

For i = 1 To 900
Load BarCodeCtrl1(i)
BarCodeCtrl1(i).Top = 1300 + 1300 * i '只能纵向加载
Next

我想自动加载满在A4纸(窗体)大小并打印出来,一页满后,自动插入下一页(窗体)并打印,不知怎样才能实现? 望大神指教。
11 回复
#2
Artless2018-04-26 00:22
以下是引用newsoftware在2018-4-25 23:16:40的发言:


我想在A4 窗体上自动插满控件,比如BarCodeCtrl1控件,大小固定为3000宽,1300高,但用 Top 或 Left 属性定义位置时,只能纵向或橫向增加插入,不能插满A4幅面,如下:

For i = 1 To 900
Load BarCodeCtrl1(i)
BarCodeCtrl1(i).Top = 1300 + 1300 * i '只能纵向加载
Next

我想自动加载满在A4纸(窗体)大小并打印出来,一页满后,自动插入下一页(窗体)并打印,不知怎样才能实现? 望大神指教。

没见你用left
#3
newsoftware2018-04-26 18:26
回复 2楼 Artless
亲,如果同时用left和top,就变成了对角线加裁了。。。。

BarCodeCtrl1(i).Top = 1300 + 1300 * i
BarCodeCtrl1(i).Left = 3000 + 3000 * i
#4
wds12018-04-26 19:36
假设横竖为8*6=48个标签
For i = 0 To 47
 if i>0 then Load BarCodeCtrl1(i)'假设第一个数组标签已创建,后续的程序创建
 BarCodeCtrl1(i).left =  1000+3100 * (i mod 8) '横向控制,两个标签横向间隔100
 BarCodeCtrl1(i).top =  1000+1400 *(i \ 8)'纵向控制,两个标签纵向间隔100
next i

我建议你还是自己动动脑。
#5
newsoftware2018-04-27 23:13
回复 4楼 wds1

的确如此,关键是逻辑想不到.

那打印问题应该如何解决呢?感谢。
#6
风吹过b2018-04-28 09:29
你在窗体上排满了,那就使用 打印窗体 命令吧!

Form1.PrintForm          '在其他窗口执行开始打印

Me.PrintForm             '在本窗口内执行

#7
newsoftware2018-04-28 23:39
以下是引用风吹过b在2018-4-28 09:29:15的发言:

你在窗体上排满了,那就使用 打印窗体 命令吧!

Form1.PrintForm          '在其他窗口执行开始打印

Me.PrintForm             '在本窗口内执行



问题是有很多标签(数量是变量),我想一页加载满后,自动插入下一页(窗体)并打印或自动保存为PDF文件也行,不知怎样才能实现?谢谢。
#8
风吹过b2018-04-29 09:06
排满一页,打印,然后再重新修改 条形码内容,再重新打印。
这样循环就是了。

打印成pdf ,装个虚拟打印机打印成pdf。
#9
newsoftware2018-04-29 21:11
以下是引用风吹过b在2018-4-29 09:06:30的发言:

排满一页,打印,然后再重新修改 条形码内容,再重新打印。
这样循环就是了。

打印成pdf ,装个虚拟打印机打印成pdf。



我的条码可以一次全部修改完成(比如2000个),一页页修改打印太麻烦了,我想一次过就完成全部的打印,不知要怎样实现???
#10
newsoftware2018-05-01 23:41
======
#11
风吹过b2018-05-02 18:04
修改用代码改啊!
加载了一个页 的控件,
然后修改该页控件的属性,再打印,循环就是了啊。

不打算用控件,自己控制,就去看 GB_12904 吧
#12
lianjianke2019-04-24 23:47
回复 3楼 newsoftware
你根据窗体和你控件的长宽,判断什么时候换行排下去就可以了,循环语句加判断语句。当打印完之后,就清空控件,然后继续,以此类推
1