以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何自适应报表行高  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=57617)

--  作者:tuyage
--  发布时间:2014/9/27 21:42:00
--  [求助]如何自适应报表行高
问题有2个:
1、如何设置只打印今天的报表
使用下面这段代码也无法打印当天报表

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
(3,9).Value = "<日期 = # " & Date.Today & "#>" \'写入打印条件
Book.Build()
\'生成报表
Book.Save(fl)

Dim
Proc As New Process
Proc.File = fl
Proc.Start()



2、如何自适应报表的高度,我的设置好像无效

下面是实例,还请高人指点

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试理疗项目.zip



--  作者:tuyage
--  发布时间:2014/9/27 21:44:00
--  
论坛找了好多帖子,都没找到答案

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


--  作者:tuyage
--  发布时间:2014/9/27 21:55:00
--  
各位版主有在线的吗,帮忙看下咯
--  作者:有点甜
--  发布时间:2014/9/28 9:38:00
--  

 生成报表以后,用vba设置自动行高。

 

如果要调整工作表全部单元格的大小,可以使用Cells属性。如:

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Cells
Rg.EntireColumn.AutoFit   \'自动调整列宽
Rg.EntireRow.AutoFit  \'自动调整行高
App.Visible = True

 

http://www.foxtable.com/help/topics/2121.htm

 


--  作者:tommywen01
--  发布时间:2014/11/16 9:12:00
--  
 回楼上的,您所说的代码应该是填在什么事件中?
--  作者:有点甜
--  发布时间:2014/11/16 10:04:00
--  
以下是引用tommywen01在2014-11-16 9:12:00的发言:
 回楼上的,您所说的代码应该是填在什么事件中?

 

生成报表以后,也就是 book.Build 之后,加上上面的代码


--  作者:tommywen01
--  发布时间:2014/11/17 9:59:00
--  
不是很看得懂。
1. 报表事件是针对整个foxtable项目的所有报表,而不是针对单一报表的。这个代码放在AfterBuild事件中,怎么动态分辨哪些报表要调整哪些不用调整?
2. 我是通过XLS.Reports("报表2").Build()这样的代码来生成报表的,如果加入上述代码,那么报表就被重复打开了。
    而且上述代码只能是Report.xls已经建立的情况下才能起作用;否则如果报表是第一次建立,会提示文件不存在。

--  作者:有点甜
--  发布时间:2014/11/17 10:03: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)
Book.Build() \'生成报表
Book.Save(fl)
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Cells
\'Rg.EntireColumn.AutoFit   \'自动调整列宽
Rg.EntireRow.AutoFit  \'自动调整行高
App.Visible = True


--  作者:tommywen01
--  发布时间:2014/11/22 0:53:00
--  
 谢谢,不过你的方法只能对没有合并过单元格的行才起作用,对于同一行有合并单元格的该如何自动调整行高?

Excel的方法可以参考这里:http://club.excelhome.net/thread-381916-1-1.html

我不知道SUB这样的代码应该怎么写在foxtable中。

--  作者:Bin
--  发布时间:2014/11/22 9:32:00
--  
写在全局代码里