Foxtable(狐表)用户栏目专家坐堂 → 代码的循环执行


  共有6164人关注过本帖树形打印复制链接

主题:代码的循环执行

帅哥哟,离线,有人找我吗?
15666282205
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4165 威望:0 精华:0 注册:2019/1/13 10:12:00
代码的循环执行  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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()
Next

Tables("零件目录表").current("选择") = False
Tables("零件目录表").current("打印") = True
Forms("打印工艺卡").Close()


 回到顶部
帅哥哟,离线,有人找我吗?
15666282205
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4165 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2022/10/19 10:48:00 [只看该作者]

老师,这个方法不完美。打印的行数是随机的,不是固定的。要先判断“选择”列是否有选中的,如果有就打印,再判断有没有,这样循环,没有就退出。如何判断逻辑列是否有选中行呢?

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18440 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2022/10/19 10:53:00 [只看该作者]

for i as integer = 0 to tables("A").rows.count 

next

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18440 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4165 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2022/10/19 10:58:00 [只看该作者]

老师,这样也不可以。因为需要打印的行是随机在“选择”列选中的,没选中的就不打印,最好先判断是否选中才行。我看看第二次的代码,谢谢
[此贴子已经被作者于2022/10/19 10:58:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
Next

Forms("打印工艺卡").Close()


 回到顶部
帅哥哟,离线,有人找我吗?
15666282205
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:4165 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2022/10/19 11:08:00 [只看该作者]

蓝老师的代码完美解决,谢谢!也谢谢fo老师!

 回到顶部