以文本方式查看主题

-  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=32829)

--  作者:狐来江湖
--  发布时间:2013/5/9 6:41:00
--  关于打印按钮的条件判断的代码,如何修改呢?

在应用程序里设计了一个按钮,用于打印销售单明细小票,设置了如下代码:

For Each r As Row In Tables("xsdhz.xsdmx").Rows

    If r.Isnull("xssl") Or r.Isnull("ssj") Then

        MessageBox.show("单据明细部分为空,不能打印!")

        Return

    Else

        Dim Book As New XLS.Book(ProjectPath & "Attachments\\xsd1.xls")

        Dim fl As String = ProjectPath & "Reports\\xsd1.xls"

        Book.Build() \'生成细节区

        Book.Save(fl) \'保存工作簿

        Dim Proc As New Process \'打开工作簿

        Proc.File = fl

        Proc.Verb = "Print" \'指定动作

        Proc.Start()

    End If

Next

因为想在打印前做一个判断,如果单据明细某几项为空的话,就不启动打印,所以使用了for each ..... next语句,可是应用发现如果有两条以上的明细的话,打印按钮会执行2次以上。

 

这个代码怎么修改呢?

请老师帮忙!


--  作者:don
--  发布时间:2013/5/9 6:47:00
--  

For Each r As Row In Tables("xsdhz.xsdmx").Rows

    If r.Isnull("xssl") Or r.Isnull("ssj") Then

        MessageBox.show("单据明细部分为空,不能打印!")

        Return

      End If

Next

Dim Book As New XLS.Book(ProjectPath & "Attachments\\xsd1.xls")

        Dim fl As String = ProjectPath & "Reports\\xsd1.xls"

        Book.Build() \'生成细节区

        Book.Save(fl\'保存工作簿

        Dim Proc As New Process \'打开工作簿

        Proc.File = fl

        Proc.Verb = "Print" \'指定动作

        Proc.Start()

[此贴子已经被作者于2013-5-9 6:48:07编辑过]

--  作者:狐来江湖
--  发布时间:2013/5/9 7:04:00
--  
哦,原来是把部分代码拿出来,放在循环外边。谢谢谢谢