以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码的循环执行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=180895) |
-- 作者:15666282205 -- 发布时间:2022/10/19 10:03:00 -- 代码的循环执行 老师,需要打印工艺卡,打印多份,需要循环执行打印代码,我不会设计循环,麻烦您看看。谢谢指导! if 如果“零件目录表”的“”选择“列有选中的 then \'-----------------------------循环开始------------------------------------ Tables("零件目录表").Filter = "选择 = True" \'-----------------------------打印按钮------------------------------------ Dim cmb1 As winform.combobox = e.Form.controls("cmbprinters") Dim doc1 As PrintDoc = e.Form.GernatePrintDoc() If cmb1.value <> "默认打印机" Then Doc1.printername = cmb1.value End If doc1.Print() \'-----------------------------反选------------------------------------- Tables("零件目录表").current("选择") = False Tables("零件目录表").current("打印") = True if 如果“零件目录表”的“”选择“列没有有选中的 then Forms("打印工艺卡").Close() [此贴子已经被作者于2022/10/19 10:04:23编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/10/19 10:17:00 -- 参考:http://www.foxtable.com/webhelp/topics/0225.htm 比如循环5次 Dim cmb1 As winform.combobox = e.Form.controls("cmbprinters") Dim i As Integer For i = 1 to 5 Dim doc1 As PrintDoc = e.Form.GernatePrintDoc() If cmb1.value <> "默认打印机" Then Doc1.printername = cmb1.value End If doc1.Print() NextTables("零件目录表").current("选择") = False Tables("零件目录表").current("打印") = True Forms("打印工艺卡").Close() |
-- 作者:15666282205 -- 发布时间:2022/10/19 10:48:00 -- 老师,这个方法不完美。打印的行数是随机的,不是固定的。要先判断“选择”列是否有选中的,如果有就打印,再判断有没有,这样循环,没有就退出。如何判断逻辑列是否有选中行呢? |
-- 作者:chnfo -- 发布时间:2022/10/19 10:53:00 -- for i as integer = 0 to tables("A").rows.count next
|
-- 作者:chnfo -- 发布时间:2022/10/19 10:55:00 -- 或者 for i as integer = 0 to tables("A").rows.count - 1 dim r as row = tables("A").rows(i) if r("选择") = true then \'\'打印代码 end if next
|
-- 作者:15666282205 -- 发布时间:2022/10/19 10:58:00 -- 老师,这样也不可以。因为需要打印的行是随机在“选择”列选中的,没选中的就不打印,最好先判断是否选中才行。我看看第二次的代码,谢谢 [此贴子已经被作者于2022/10/19 10:58:41编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/10/19 10:58:00 -- Dim cmb1 As winform.combobox = e.Form.controls("cmbprinters") Tables("零件目录表").filter = "选择=true" For each r as row in Tables("零件目录表").rows Tables("零件目录表").position = r.index Dim doc1 As PrintDoc = e.Form.GernatePrintDoc() If cmb1.value <> "默认打印机" Then Doc1.printername = cmb1.value End If doc1.Print() r("选择") = False r("打印") = True Forms("打印工艺卡").Close() |
-- 作者:15666282205 -- 发布时间:2022/10/19 11:08:00 -- 蓝老师的代码完美解决,谢谢!也谢谢fo老师! |