以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态合成  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105315)

--  作者:nbsugu_z
--  发布时间:2017/8/16 20:38:00
--  动态合成
增加个窗口,增加4个组合框控件,分别为combobox1、combobox2、combobox3、combobox4
分别为年份、月份、单位和文件名。文件名的后缀名为xls到时动态合成打印模板
现在增加了一个确定按钮并写chick事件,并确定后能动态打印所选条件的模板文件
假如表名这A。


Dim str1 As String = e.Form.Controls("ComboBox1").Value  \'选年份
Dim str2 As String = e.Form.Controls("ComboBox2").Value  \'选月份
Dim str3 As String = e.Form.Controls("ComboBox2").Value  ’选单位
Dim str4 As String = e.Form.Controls("ComboBox3").Value  \'选文件名

Dim Book As New XLS.Book(ProjectPath & "Attachments\\\'" & str4(文件名) & "\'& .xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\\'" & str4(文件名) & "\'& .xls""
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(3,9).Value = "<单位 = \'" & str3(单位) & "\' and 年份 = \'" & str1(年份) & "\' and 月份 = \'" & str2(月份) & "\'>"  \'写入打印条件
Book.Build() \'生成报表
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

运行时不成功,请问代码有错吗?

--  作者:有点甜
--  发布时间:2017/8/16 21:35:00
--  

 

[此贴子已经被作者于2017/8/16 21:37:26编辑过]

--  作者:有点甜
--  发布时间:2017/8/16 21:55:00
--  

试试

 

Dim str1 As String = e.Form.Controls("ComboBox1").Value  \'选年份
Dim str2 As String = e.Form.Controls("ComboBox2").Value  \'选月份
Dim str3 As String = e.Form.Controls("ComboBox2").Value  \'选单位
Dim str4 As String = e.Form.Controls("ComboBox3").Value  \'选文件名
Dim filter As String = "1=1"
If str2 > "" Then
    filter &= " and 月份 = \'" & str2 & "\'"
End If
If str3 > "" Then
    filter &= "  and 单位 = \'" & str3 & "\'"
End If
If str1 > "" Then
    filter &= "  and 年份 = \'" & str1 & "\'"
End If

Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & str4 & ".xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\" & str4 & ".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(3,9).Value = "<" & filter & ">"  \'写入打印条件
Book.Build() \'生成报表
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

 

 

[此贴子已经被作者于2017/8/17 10:33:07编辑过]

--  作者:nbsugu_z
--  发布时间:2017/8/17 10:27:00
--  
有问题,把所有月份和年份都打印出来了。我要求是,比如 年份选2017,月份选7,单位(部门选A)。同时满足条件,打印出2017年7月份A部门的数据
--  作者:nbsugu_z
--  发布时间:2017/8/17 10:27:00
--  
有问题,把所有月份和年份都打印出来了。我要求是,比如 年份选2017,月份选7,单位(部门选A)。同时满足条件,打印出2017年7月份A部门的数据
--  作者:有点甜
--  发布时间:2017/8/17 10:32:00
--  

Dim str1 As String = e.Form.Controls("ComboBox1").Value  \'选年份
Dim str2 As String = e.Form.Controls("ComboBox2").Value  \'选月份
Dim str3 As String = e.Form.Controls("ComboBox2").Value  \'选单位
Dim str4 As String = e.Form.Controls("ComboBox3").Value  \'选文件名
Dim filter As String = "1=1"
If str2 > "" Then
    filter &= " and 月份 = \'" & str2 & "\'"
End If
If str3 > "" Then
    filter &= "  and 单位 = \'" & str3 & "\'"
End If
If str1 > "" Then
    filter &= "  and 年份 = \'" & str1 & "\'"
End If

Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & str4 & ".xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\" & str4 & ".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(3,9).Value = "<" & filter & ">"  \'写入打印条件
Book.Build() \'生成报表
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

 


--  作者:nbsugu_z
--  发布时间:2017/8/17 11:10:00
--  

Dim str1 As String = e.Form.Controls("ComboBox1").Value  \'选年份
Dim str2 As String = e.Form.Controls("ComboBox2").Value  \'选月份
Dim str3 As String = e.Form.Controls("ComboBox3").Value  \'选单位
Dim str4 As String = e.Form.Controls("ComboBox4").Value  \'选文件名
Dim filter As String = "1=1"
If str2 > "" Then
    filter &= " and 月份 = \'" & str2 & "\'"
End If
If str3 > "" Then
    filter &= "  and 单位 = \'" & str3 & "\'"
End If
If str1 > "" Then
    filter &= "  and 年份 = \'" & str1 & "\'"
End If

Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & str4 & ".xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\" & str4 & ".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(5,11).Value = "<" & filter & ">"  \'写入打印条件
Book.Build() \'生成报表
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()


老师,显示只有一个空表了,不知道哪里出问题


 


--  作者:有点甜
--  发布时间:2017/8/17 14:14:00
--  
实例发上来测试。