以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  报表问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83279)

--  作者:yjd
--  发布时间:2016/4/5 19:40:00
--  报表问题
老师您好,问题求助!
Dim Book As New XLS.Book(ProjectPath & "Attachments\\对公客户台帐.xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\对公客户台帐.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,0).Value = "<对公客户明细, 1>"  \'细节区定义一
Sheet(31,0).Value = "<对公客户明细>"  \'细节区定义二
Sheet(1,6).Value = "管户经理:" & User.Name \'修改模板,加入制单人信息
Sheet(27,1).Value = "建档日期:"& Date.Today()
Book.Build() \'生成报表
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

我的代码,希望利用模板生成报表后不预览,直接以”户名“列指定文件名保存到d:\\盘,谢谢!

--  作者:大红袍
--  发布时间:2016/4/5 19:59:00
--  
Dim Book As New XLS.Book(ProjectPath & "Attachments\\对公客户台帐.xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\" & Tables("对公客户明细").Current("户名") & ".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,0).Value = "<对公客户明细, 1>"  \'细节区定义一
Sheet(31,0).Value = "<对公客户明细>"  \'细节区定义二
Sheet(1,6).Value = "管户经理:" & User.Name \'修改模板,加入制单人信息
Sheet(27,1).Value = "建档日期:"& Date.Today()
Book.Build() \'生成报表
Book.Save(fl)

--  作者:yjd
--  发布时间:2016/4/5 20:05:00
--  
谢谢老师,如果有数十条记录,如何批量生成XLS报表,不想保存在Reports文件夹,比如保存d:\\,怎样写代码,谢谢!
--  作者:大红袍
--  发布时间:2016/4/5 20:43:00
--  
Dim t As Table = Tables("对公客户明细")
For i As Integer = t.TopPosition To t.BottomPosition
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\对公客户台帐.xls") \'打开模板
    Dim fl As String = "d:\\" & t.Rows(i)("户名") & ".xls"
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(1,0).Value = "<对公客户明细, 1>"  \'细节区定义一
    Sheet(31,0).Value = "<对公客户明细>"  \'细节区定义二
    Sheet(1,6).Value = "管户经理:" & User.Name \'修改模板,加入制单人信息
    Sheet(27,1).Value = "建档日期:"& Date.Today()
    Book.Build() \'生成报表
    Book.Save(fl)
Next

--  作者:yjd
--  发布时间:2016/4/5 20:52:00
--  
谢谢老师,不过代码不能数十条记录批量生成xls.报表。只生成了一个表。
--  作者:大红袍
--  发布时间:2016/4/5 20:55:00
--  

 你的户名一样么?下面的代码,是生成你选择的行,而不是全部。

 

Dim t As Table = Tables("对公客户明细")
For i As Integer = t.TopPosition To t.BottomPosition
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\对公客户台帐.xls") \'打开模板
    Dim fl As String = "d:\\" & t.Rows(i)("改成对应唯一的列值") & ".xls"
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(1,0).Value = "<对公客户明细, 1>"  \'细节区定义一
    Sheet(31,0).Value = "<对公客户明细>"  \'细节区定义二
    Sheet(1,6).Value = "管户经理:" & User.Name \'修改模板,加入制单人信息
    Sheet(27,1).Value = "建档日期:"& Date.Today()
    Book.Build() \'生成报表
    Book.Save(fl)
Next


--  作者:yjd
--  发布时间:2016/4/5 21:00:00
--  
老师,户名不一样,还是不能批量,谢谢!
--  作者:大红袍
--  发布时间:2016/4/5 21:01:00
--  

上面的代码,是生成你选择的行,而不是全部。

 

Dim t As Table = Tables("对公客户明细")
For i As Integer = 0 To t.Rows.count - 1
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\对公客户台帐.xls") \'打开模板
    Dim fl As String = "d:\\" & t.Rows(i)("户名") & ".xls"
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(1,0).Value = "<对公客户明细, 1>"  \'细节区定义一
    Sheet(31,0).Value = "<对公客户明细>"  \'细节区定义二
    Sheet(1,6).Value = "管户经理:" & User.Name \'修改模板,加入制单人信息
    Sheet(27,1).Value = "建档日期:"& Date.Today()
    Book.Build() \'生成报表
    Book.Save(fl)
Next

[此贴子已经被作者于2016/4/5 21:01:30编辑过]

--  作者:yjd
--  发布时间:2016/4/5 21:03:00
--  
老师,我全选就可以了。代码能否改为不用选择,全部生成!谢谢!
--  作者:yjd
--  发布时间:2016/4/5 21:08:00
--  
老师,问题已解决!非常感谢。