以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问这个是.NET的版本问题吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=172928)

--  作者:9EQ98
--  发布时间:2021/11/7 21:48:00
--  请问这个是.NET的版本问题吗?
图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2021/11/7 21:54:00
--  
应该和版本无关。打印的数据太多,或者打印了大量图片,显示内存溢出
--  作者:9EQ98
--  发布时间:2021/11/7 22:44:00
--  
BOOK.SAVE
有不有关闭语句,我可能是因为批量导出了文件

--  作者:9EQ98
--  发布时间:2021/11/7 22:46:00
--  
For Each dr As DataRow In drs
    Y1 =Y1 + 1
    生产合同编号 = dr("生产合同编号")
    姓名 = dr("新建人")
    状态 = dr("状态")
    Path = ProjectPath & "\\报表\\" & "生产合同\\" & 状态 & "\\"
    fl = Path & 生产合同编号 & "-" & 姓名 & ".xls"
    
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    StatusBar.Message3 = Y1 & "/" & 合同数量 & " / " & 生产合同编号
    
Next


--  作者:有点蓝
--  发布时间:2021/11/7 22:48:00
--  
贴出完整代码
--  作者:9EQ98
--  发布时间:2021/11/7 22:55:00
--  
Dim 批量循环条件 As String
批量循环条件 = "状态 = \'" & "审批通过" & "\' "
批量循环条件 = 批量循环条件 & " And Year(生产合同日期) = " & Date.Now.Year

If _登录人工作组.Contains("业务审批组") = False Then
    批量循环条件 = 批量循环条件 & " And 新建人 = \'" & _登录人 & "\'"
End If

Dim 生产合同编号 As String
Dim 姓名 As String
Dim 状态 As String
Dim Path As String = ""
Dim fl As String = ""

Dim Book As New XLS.Book(ProjectPath & "Attachments\\生产合同-报表.xls")

Dim drs As List(of DataRow)  = DataTables("生产合同").SQLSelect(批量循环条件)

Dim 合同数量 As Integer = DRS.Count
Dim Y1 As Integer = 0
StatusBar.Message2 = 批量循环条件
StatusBar.Message3 = 合同数量

If 合同数量 = 0 Then
    MESSAGEBOX.SHOW("没有打印导出的生产合同")
    Return
End If

For Each dr As DataRow In drs
    Y1 =Y1 + 1
    生产合同编号 = dr("生产合同编号")
    姓名 = dr("新建人")
    状态 = dr("状态")
    Path = ProjectPath & "\\报表\\" & "生产合同\\" & 状态 & "\\"
    fl = Path & 生产合同编号 & "-" & 姓名 & ".xls"
    
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    StatusBar.Message3 = Y1 & "/" & 合同数量 & " / " & 生产合同编号
    
Next


--  作者:有点蓝
--  发布时间:2021/11/7 23:05:00
--  
……
Dim 生产合同编号 As String
Dim 姓名 As String
Dim 状态 As String
Dim Path As String = ""
Dim fl As String = ""

Dim drs As List(of DataRow)  = DataTables("生产合同").SQLSelect(批量循环条件)

Dim 合同数量 As Integer = DRS.Count
Dim Y1 As Integer = 0
StatusBar.Message2 = 批量循环条件
StatusBar.Message3 = 合同数量

If 合同数量 = 0 Then
    MESSAGEBOX.SHOW("没有打印导出的生产合同")
    Return
End If

For Each dr As DataRow In drs
    Y1 =Y1 + 1
    生产合同编号 = dr("生产合同编号")
    姓名 = dr("新建人")
    状态 = dr("状态")
    Path = ProjectPath & "\\报表\\" & "生产合同\\" & 状态 & "\\"
    fl = Path & 生产合同编号 & "-" & 姓名 & ".xls"
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\生产合同-报表.xls")
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    StatusBar.Message3 = Y1 & "/" & 合同数量 & " / " & 生产合同编号
    Application.DoEvents
Next