Foxtable(狐表)用户栏目专家坐堂 → Table中只针对选中栏生成excel报表


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

主题:Table中只针对选中栏生成excel报表

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


加好友 发短信
等级:一尾狐 帖子:485 积分:4069 威望:0 精华:0 注册:2015/12/16 8:22:00
Table中只针对选中栏生成excel报表  发帖心情 Post By:2016/11/2 14:36:00 [显示全部帖子]


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

在上图中,比如CTT-WI-F1051-01C表单编号对应的项目有6个,若我现在只选这个表单对应的其中某一个项目打印的话,生成报表还是有包括所有这个6个的,代码如下,请问应该如何修改才能实现,无论这个表单对应多少个项目,生成表单的时候是根据我table复选框中所选的项目才生成(有可能是多个),而不是全部;请问以下的代码应该如何修改?

代码如下:
Dim dic As new Dictionary(Of String, String)
For Each r As Row In Tables("T_Report.T_Item").GetCheckedRows
    r("开单状态") = True
    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




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


加好友 发短信
等级:一尾狐 帖子:485 积分:4069 威望:0 精华:0 注册:2015/12/16 8:22:00
  发帖心情 Post By:2016/11/3 19:18:00 [显示全部帖子]

Dim dic As new Dictionary(Of String, String)

    If dic.ContainsKey(r("表单编号")) = False Then

        dic.add(r("表单编号"), r("_Identify"))

    Else

        dic(r("表单编号")) = dic(r("表单编号")) & "," & r("_Identify")

    End If

For Each key As String In dic.Keys

    Tables("开单管理_Table1").Filter = "[_Identify] in (" & dic(key) & ")"

    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.Build() '生成细节区

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

    Dim Proc As New Process '打开工作簿

    Proc.File = fl

    Proc.Start()

Next

Tables("开单管理_Table1").Filter = " 报告编号 = ‘" & Tables("T_Report").current("报告编号")& "’”

若我将原来是直接用关联表的话,现在修改为table副本的,发现这个无法实现,还是直接全部打印,若之前直接用关联表的话,可以实现,但打印之后会造成再打开其它报告的时关联的清单全部不出现;


 回到顶部