Foxtable(狐表)用户栏目专家坐堂 → 报表模板生成报表时的表头问题


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

主题:报表模板生成报表时的表头问题

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
报表模板生成报表时的表头问题  发帖心情 Post By: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()

图一:

图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看

图二:

图片点击可在新窗口打开查看此主题相关图片如下:2222.png
图片点击可在新窗口打开查看



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


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

需要用vba处理,参考

 

http://www.foxtable.com/webhelp/scr/2121.htm

 


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By: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()


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


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

改成

 

.PrintTitleRows = Ws.Rows("1:3").Address '打印行标题(在每一页的顶部重复出现)

[此贴子已经被作者于2018/9/9 16:00:35编辑过]

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By: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))。


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


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/9/7 14:43:00 [只看该作者]

但是我注释红色这段代码就正常了。应该是代码的问题吧

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/9/7 14:46:00 [只看该作者]

以管理员身份运行,出现以下错误
找不到“Reports\变更统计表1.xlsx”。请检查文件名的拼写,并验证文件位置是否正确。

如果您正试图从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。

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


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

以下是引用aza520在2018/9/7 14:46:00的发言:
以管理员身份运行,出现以下错误
找不到“Reports\变更统计表1.xlsx”。请检查文件名的拼写,并验证文件位置是否正确。

如果您正试图从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。

 

如果1无法修复,就重新安装一下wps。


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/9/7 16:01:00 [只看该作者]

我用的是excel,不是WPS

 回到顶部
总数 27 1 2 3 下一页