以文本方式查看主题

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

--  作者:benwong2013
--  发布时间:2016/12/20 18:53:00
--  关于打印提示文件存储失败问题

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

如图,在一键打印:
If Tables("T_Report").current IsNot Nothing Then
    DataTables("T_Item").ReplaceFor("开单状态",True,"[报告编号] = \'" & Tables("T_Report").current("报告编号") & "\'")
    DataTables("T_Item").ReplaceFor("内测标识",True,"[报告编号] = \'" & Tables("T_Report").current("报告编号") & "\'")
End If
DataTables("T_Item").save()
Dim bhs As List(Of String) = DataTables("T_Item").GetValues("表单编号", "报告编号 = \'" & Tables("T_Report").current("报告编号") & "\'")
For Each bh As String In bhs
    If bh IsNot Nothing Then
        Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & bh & ".xls")
        Dim fl As String = ProjectPath & "Reports\\" & Tables("T_Report").current("报告编号")& "&" & bh & ".xls"
        Book.Build() \'生成细节区
        Book.Save(fl) \'保存工作簿
        
        Dim Proc As New Process \'打开工作簿
        Proc.File = fl
        Proc.Start()
    End If
Next
选中打印:
Dim dic As new Dictionary(Of String, String)
For Each r As Row In Tables("T_Report.T_Item").GetCheckedRows
    r("开单状态") = True
    r("内测标识") = True
    r.save
    If dic.ContainsKey(r("表单编号")) = False Then
        dic.add(r("表单编号"), r("_Identify"))
    Else
        dic(r("表单编号")) = dic(r("表单编号")) & "," & r("_Identify")
    End If
Next
For Each key As String In dic.Keys
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & key & ".xls")
    Dim fl As String = ProjectPath & "Reports\\" & Tables("T_Report").current("报告编号")& "&" & key & ".xls"
    vars("编号") = key
    book.Sheets(0)(8, 7).Value = "<_Identify in (" & dic(key) & ")>"
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    Dim Proc As New Process \'打开工作簿
    Proc.File = fl
    Proc.Start()
Next

如报表为CTT-WI-F9999-01A,设置如下:

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

以上在打印到这个表单的时候无论是一键还是选中都是提示文件存储失败,请问是什么问题?



图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2016/12/20 18:55:46编辑过]

--  作者:有点蓝
--  发布时间:2016/12/20 20:18:00
--  
模板应该都是同一个吧,而不是N个以不同编号命名的模板

Dim Book As New XLS.Book(ProjectPath & "Attachments\\模板名称.xls")

--  作者:benwong2013
--  发布时间:2016/12/20 20:39:00
--  
一个表单编号对应一个模板,有多个模板
--  作者:有点蓝
--  发布时间:2016/12/20 21:59:00
--  
上例子测试
--  作者:benwong2013
--  发布时间:2016/12/21 14:52:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


主要典型的报表不能打印为CTT-WI-F9999-01A,报告编号为CTT161280864;

帮忙分析一下;

另外针对选择打印的话,目前针对此表对应的都可以打印出来,如何设置为只打印选中的项目,之前指导的方式会造成所有的窗口table数据错误;

--  作者:有点色
--  发布时间:2016/12/21 15:11:00
--  

你单元格的值,有空格照成的,导致找不到对应的文件

 

Dim dic As new Dictionary(Of String, String)
For Each r As Row In Tables("T_Report.T_Item").GetCheckedRows
    r("开单状态") = True
    r("内测标识") = True
    r.save
    Dim s As String = r("表单编号").trim
    If dic.ContainsKey(s) = False Then
        dic.add(s, r("_Identify"))
    End If
Next