Foxtable(狐表)用户栏目专家坐堂 → 加载报表


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

主题:加载报表

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


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

  我做一个报表,报表名字比如叫A,然后在窗口中做一个文本框和一个按钮.我想在文本框中输入报表的名字A,按按钮可以自动加载报表,而且打开报表.这个代码怎么写?因为有很多报表是新加的,一个个做入代码比较烦.

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


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

以下是引用狐狸爸爸在2009-8-11 7:29:00的发言:
是Excel报表?

  对!


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


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

以下是引用yangming在2009-8-11 10:36:00的发言:

我知道我错在何处了
要用这段代码要注意二点
1  在管理器中要绑定好报表
2  管理器中的报表名最好和链接的报表名称一致,如不同,那在代码中输入的报表名就一定在是管理器中的报表名,比如,我管理器中原输入的:报表2,而链接的是:1123.xls,而代码中输入XLS.Reports("1123").Build(),所以就报错了
而正确的应该是:XLS.Reports("报表2").Build()

  我要的效果是,我新做了一个报表,希望在文本框中输入这个报表的名字,用按钮加载进去并打开.并不要什么先要在管理器中设置好什么的,那还不如我在代码中进入报表的名字直接打开就行了.


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


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

  用代码将EXECL模板动态加载进去并打开.

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


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

我有个代码,有高手写的,不知能不能修改着用.

用ComboBox更简单:
Dim T,T1,T2 As String
T =  e.Form.Controls("ComboBox1").value
T1 = ProjectPath & "Attachments\" & T & ".xls"
T2 = ProjectPath & "Reports\ "& T & ".xls"

if T isnot Nothing then
   If "顺丰标签,申通标签".Indexof(T) > -1 then
       Dim Book As New XLS.Book(T1)
       Book.Build()
       Book.Save(T2)
       Dim Proc As New Process
       Proc.File = T2
       Proc.Verb= "Print"
       Proc.Start()
   End if
End if


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


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

我明白了,If "顺丰标签,申通标签".Indexof(T) > -1 then这句代码改成:If  T.Indexof(T) > -1 then 就可以了


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


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

以下是引用yangming在2009-8-11 13:22:00的发言:
Dim T,T1,T2 As String
T =  e.Form.Controls("ComboBox1").value
T1 = ProjectPath & "Attachments\" & T & ".xls"
T2 = ProjectPath & "Reports\ "& T & ".xls"
if T ="" then
MessageBox.Show("请输入表名!")
Else
      Dim Book As New XLS.Book(T1)
      Book.Build() '生成细节区
       Book.Save(T2)
       Dim Proc As New Process
       Proc.File = T2
       Proc.Start()
 End if

  你的测试也行,谢谢!


 回到顶部