以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于标签打印  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=152389)

--  作者:l1q2lq
--  发布时间:2020/7/11 10:55:00
--  [求助]关于标签打印
老师,求助个关于标签打印的思路:

计划表,A零件计划生产4500个,输入单个装箱的零件数量和标签数量,比如每箱1000个零件,打印5张,就自动生成5张标签,4张1000的标签,1张500的标签,
在标签记录表中增加5行,4行1000个,1行500个

需要怎么处理

--  作者:l1q2lq
--  发布时间:2020/7/11 11:00:00
--  
例子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.foxdb


--  作者:有点蓝
--  发布时间:2020/7/11 11:07:00
--  
比如 

Dim cnt As Integer = 4500
Dim r As Row 
Dim idx as Integer = 1
Do While cnt > 1000
   r = Tables("库存商品").AddNew
    r("序号") = idx
    r("零件数量") = 1000
    cnt = cnt - 1000
    idx = idx + 1
Loop
r = Tables("库存商品").AddNew
r("序号") = idx
r("零件数量") = cnt

--  作者:l1q2lq
--  发布时间:2020/7/11 15:57:00
--  
老师,具体到每一个零件都这么判断呢
--  作者:有点蓝
--  发布时间:2020/7/11 16:13:00
--  
比如

比如 
Dim r As Row 
for each nr as row in Tables("发货表").rows
Dim cnt As Integer = nr("发货数量")
Do While cnt > 1000
   r = Tables("标签记录").AddNew
    r("零件号") = nr("零件号")
    r("零件数量") = 1000
    cnt = cnt - 1000
Loop
r = Tables("标签记录").AddNew
r("零件号") = nr("零件号")
r("零件数量") = cnt
next

--  作者:l1q2lq
--  发布时间:2020/7/11 16:39:00
--  
老师,需求数量4500,单包装数量1000,现在我如果打印5张标签,增加5行,4行1000,1行500;3张标签,增加3行,每行1000;
但是这个代码不管标签数量几张都是增加全部行,要怎么修改

--  作者:有点蓝
--  发布时间:2020/7/11 17:00:00
--  
比如 
Dim r As Row 
dim 标签数量 as integer = 3
for each nr as row in Tables("发货表").rows
Dim cnt As Integer = nr("发货数量")
Do While cnt > 1000 andalso 标签数量 > 0
   r = Tables("标签记录").AddNew
    r("零件号") = nr("零件号")
    r("零件数量") = 1000
    cnt = cnt - 1000
标签数量 = 标签数量 - 1
Loop
if 标签数量 > 0 then
r = Tables("标签记录").AddNew
r("零件号") = nr("零件号")
r("零件数量") = cnt
end if
next