Foxtable(狐表)用户栏目专家坐堂 → 动态合成


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

主题:动态合成

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
动态合成  发帖心情 Post By: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()

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/16 21:35:00 [只看该作者]

 

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2017/8/17 10:27:00 [只看该作者]

有问题,把所有月份和年份都打印出来了。我要求是,比如 年份选2017,月份选7,单位(部门选A)。同时满足条件,打印出2017年7月份A部门的数据

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2017/8/17 10:27:00 [只看该作者]

有问题,把所有月份和年份都打印出来了。我要求是,比如 年份选2017,月份选7,单位(部门选A)。同时满足条件,打印出2017年7月份A部门的数据

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By: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()


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


 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 14:14:00 [只看该作者]

实例发上来测试。

 回到顶部