以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 报表模板生成报表时的表头问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123904) |
-- 作者:aza520 -- 发布时间:2018/8/26 17:12:00 -- 报表模板生成报表时的表头问题 窗口生成报表的代码如下,采用用的报表模板如图一,想用1~4行做为表头,每页都能生成表头,如图二。红色代码不起作用。请问老师怎么修改?如果还想用横板中的14~15行作为每页的页脚,又该如何写代码? Dim Book As New XLS.Book(ProjectPath & "Attachments\\变更统计表1.xlsx") Dim fl As String = ProjectPath & "Reports\\变更统计表1.xlsx" Dim filter As String = IIF(vars("变更信息表filter") > ""," where " & vars("变更信息表filter") & " and 承包人申报=1"," where 承包人申报=1") book.AddDataTable("变更统计表1","xlgl","Selec t *, (selec t sum(Round((Case When 变更后数量 Is null Then 0 Else 变更后数量 End - Case When 变更前数量 Is null Then 0 Else 变更前数量 End) * Case When 单价 Is null Then 0 Else 单价 End,0)) fro m {申请费用表} b where a.项目名称=b.项目名称 and a.变更编号=b. 变更编号) As [估计变更金额] fro m {变更申请单} a " & filter) Book.Build() Book.Save(fl) Dim Sheet As XLS.Sheet = Book.Sheets(0) With Sheet.PrintSetting .PaperKind = 9 \'设为A4纸 .LandScape = True \'横向打印 .MarginLeft = 5 \'左右边距设为5毫米 .MarginRight = 5 .MarginTop = 15 \'上下边距设为15毫米 .MarginBottom = 10 End With Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 rt.RowGroups(0,3).Header = prt.TableHeaderEnum.All \'将1~4行作为表头. Dim Proc As New Process Proc.File = fl Proc.Start() 图一: 图二:
|
-- 作者:有点甜 -- 发布时间:2018/8/26 23:13:00 -- 需要用vba处理,参考
http://www.foxtable.com/webhelp/scr/2121.htm
|
-- 作者:aza520 -- 发布时间:2018/9/7 11:15:00 -- 增加红色部分代码,想将1~4行作为每一页的表头,但显示错误,请问老师,该怎么改? Dim Book As New XLS.Book(ProjectPath &
"Attachments\\变更统计表1.xlsx") Dim fl As String = ProjectPath & "Reports\\变更统计表1.xlsx" Dim filter As String = IIF(vars("变更信息表filter") > ""," where " &
vars("变更信息表filter") & " and 承包人申报=1"," where 承包人申报=1") book.AddDataTable("变更统计表1","xlgl","Selec t
*, (selec t sum(Round((Case When 变更后数量 Is null Then 0 Else 变更后数量 End - Case When 变更前数量 Is null Then 0 Else 变更前数量 End) * Case When 单价 Is null Then 0 Else 单价 End,0)) from {申请费用表} b where a.项目名称=b.项目名称 and a.变更编号=b. 变更编号) As [估计变更金额] fro m {变更申请单} a " & filter) Book.Build() Book.Save(fl) Dim Sheet As XLS.Sheet = Book.Sheets(0) With Sheet.PrintSetting .PaperKind = 9
\'设为A4纸 .LandScape =
True \'横向打印 .MarginLeft = 5
\'左右边距设为5毫米 .MarginRight =
5 .MarginTop = 15
\'上下边距设为15毫米 .MarginBottom =
10 End With
Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook =
App.WorkBooks.Open("Reports\\变更统计表1.xlsx") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(0) With Ws.PageSetup \'设置打印区域 .PrintTitleRows
= Ws.Rows(0,3).Address \'打印行标题(在每一页的顶部重复出现) End With App.Visible = True Ws.PrintPreview App.Quit
Dim Proc As New Process Proc.File = fl Proc.Start() |
-- 作者:有点甜 -- 发布时间:2018/9/7 11:52:00 -- 改成
.PrintTitleRows = Ws.Rows("1:3").Address \'打印行标题(在每一页的顶部重复出现) [此贴子已经被作者于2018/9/9 16:00:35编辑过]
|
-- 作者:aza520 -- 发布时间:2018/9/7 14:25:00 -- 按老师的意见修改,显示以下错误 .NET Framework 版本:2.0.50727.8833 Foxtable 版本:2017.12.18.1 错误所在事件:窗口,变更信息表,Button22,Click 详细错误信息: 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。 |
-- 作者:有点甜 -- 发布时间:2018/9/7 14:27:00 -- 1、
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54396&replyID=360697&skin=1
2、如果1无法修复,就重新安装一下wps。 |
-- 作者:aza520 -- 发布时间:2018/9/7 14:43:00 -- 但是我注释红色这段代码就正常了。应该是代码的问题吧 |
-- 作者:aza520 -- 发布时间:2018/9/7 14:46:00 -- 以管理员身份运行,出现以下错误 找不到“Reports\\变更统计表1.xlsx”。请检查文件名的拼写,并验证文件位置是否正确。 如果您正试图从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。 |
-- 作者:有点甜 -- 发布时间:2018/9/7 15:02:00 -- 以下是引用aza520在2018/9/7 14:46:00的发言:
以管理员身份运行,出现以下错误
找不到“Reports\\变更统计表1.xlsx”。请检查文件名的拼写,并验证文件位置是否正确。
如果您正试图从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。
如果1无法修复,就重新安装一下wps。 |
-- 作者:aza520 -- 发布时间:2018/9/7 16:01:00 -- 我用的是excel,不是WPS |