老师您好! 这几天我设计的生产工艺卡的连续打印问题一直困扰着我,还得请教老师。问题是这样的:
我有一个“生产计划明细表”,表中主要有工作令号和条形码两个字段,条形码是图片形式。我是想手动选取工作令号,一个工作令号可能有n条条形码,在这些条形码中,我还要勾选“打印否”逻辑字段,用勾选的这些记录逐个生成生产工艺卡。我的目的是一张纸只能打印一个工艺卡,但如果我选三条记录就让它自动逐张连续打印三张生产工艺卡。
为此,我设计了一个窗口,我写的代码,有一个问题,在一张纸上打印两个工艺卡,第三张打印不了了。
Dim Result As DialogResult
Dim b As WinForm.TextBox= e.Form.Controls("TextBox1")
'b.BackColor = Color.Red
Dim gzh As String = b.Value
Dim Filter As String
Filter = "工作令号='" & gzh & "'and 打印否=1"
Tables("生产计划明细表").Filter = Filter
Dim mr As DataRow
mr = DataTables("生产计划明细表").Find("工作令号 = '" & gzh & "'")
Dim Book As New XLS.Book(ProjectPath & "Attachments\生产工艺加工流程卡模板.xls")
Dim fl As String = ProjectPath & "Reports\" & mr("清单条码编码") & ".xls"
book.AddDataTable("生产计划明细表", "亚中系统数据", "S elect * fr om {生产计划明细表} w here 工作令号 = '" & gzh & "' and 打印否=1 ")
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()
输出完整sql,到后台数据库查询看有几条数据
output.show("Select * fr om {生产计划明细表} w here 工作令号 = '" & gzh & "' and 打印否=1 ")
另外,把原始模板发上来看看
老师:上午好! 我手动选择了三条记录,上述代码执行后,三条记录三条工艺卡内容一次预览输出,这里只用了一个文件名(注:只用了第一条记录的清单条码作为文件名),我想一条记录一个卡并且用选中的三条清单条码作为三个文件名存储,并且一张纸只打印一张。这个怎么实现?请指教!我现在将源代码,生成的excel表和原模板发给您!
Dim Result As DialogResult
Dim b As WinForm.TextBox= e.Form.Controls("TextBox1")
'b.BackColor = Color.Red
Dim gzh As String = b.Value
Dim Filter As String
Filter = "工作令号='" & gzh & "'and 打印否=1"
Tables("生产计划明细表").Filter = Filter
Dim mr As DataRow
mr = DataTables("生产计划明细表").Find("工作令号 = '" & gzh & "'")
Dim Book As New XLS.Book(ProjectPath & "Attachments\生产工艺加工流程卡模板.xls")
Dim fl As String = ProjectPath & "Reports\" & mr("清单条码编码") & ".xls"
book.AddDataTable("生产计划明细表", "亚中系统数据", "S elect * f rom {生产计划明细表} w here 工作令号 = '" & gzh & "' and 打印否=1 ")
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()
只能发模板,其它的不让发了。
book.AddDataTable是从后台取数据的,不管手动选择了多少条记录,如果没有保存,都和后台没有任何关系
上面上传的不是模板,麻烦把原始模板发上来。
好的,谢谢老师!我的模块要求就是手动选取要打印的内容。
手动选取那就不要使用book.AddDataTable,去掉这行代码。
把这行也去掉:Tables("生产计划明细表").Filter = Filter,因为做筛选会导致所有选取失效
另外手动选取是鼠标拖选,还是勾选的?
[此贴子已经被作者于2024/10/24 10:15:21编辑过]
如果拖拽的话,用select 语句?但是如果要打印的记录顺序不连续的话,就不好实现了吧
勾选参考这种:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=179135&skin=0