Foxtable(狐表)用户栏目专家坐堂 → [求助]:如何在DataList中打印选定的行?(用Excel报表)


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

主题:[求助]:如何在DataList中打印选定的行?(用Excel报表)

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/3/30 7:39:00 [显示全部帖子]

以下是引用smileboy在2009-3-29 21:26:00的发言:
我一直用datalist和表同时筛选打印

  我也是表和DATALIST同时筛选打印的.


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/3/30 12:39:00 [显示全部帖子]

以下是引用cpayinyuan在2009-3-30 10:25:00的发言:

这个对打印有什么作用呢?一般情况下, DataList中要打印的行是临时选取的,没有什么规定,所以 DataList中并不需要筛选.

我看了一下,前面几位老兄提的方案应该是可以的.

'选定你所要选定的区域,筛选代码你可以参照老六的窗口列子的筛选代码
Dim Filter As String
With e.Form.Controls("textbox1")
    If .Value IsNot Nothing Then
        Filter = "列名 = '" & .Value & "'"
    End If
End With
If Filter > "" Then
    Tables("表名").Filter = Filter
    END IF

'这个是表筛选后,在datalist中显示和表一样内容的代码
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst .RowFilter = Tables("表名").Filter
'筛选后全部选定区域
With Tables("表名")

    .Select(0,0, .Rows.Count - 1, .Cols.Count - 1)

End With

'打印代码
Dim Book As New XLS.Book(ProjectPath & "Attachments\报表名字.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Book.Build() '生成细节区
Book.Save("D:\release\reports\报表名字.xls") '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = "D:\release\reports\报表名字.xls"
Proc.Verb = "Print" '加上这个可以直接打印,去掉只能预览
Proc.Start()



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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
费用的报销流程管理系统有没有谁开发过  发帖心情 Post By:2009/3/30 13:37:00 [显示全部帖子]

以下是引用czy在2009-3-30 13:31:00的发言:
14楼的理解和楼主要求有点出入,楼主的前提条件是在DataList复选框中选择数据行后再执行接下来的操作。

  那老大你的代码不是已经很好用了嘛.


 回到顶部