Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计表表头的显示


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

主题:[求助]交叉统计表表头的显示

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]交叉统计表表头的显示  发帖心情 Post By:2018/2/27 18:46:00 [只看该作者]

有一个交叉统计表,列数很多,行数也很多。如下图,一年有12个月,如果要打三年的,可能就得36列,行数也可能有100行以上
表头有两行。

在打印预览的时候,表名在第一页预览的时候看不到,可能要到第N页才会显示表名
第二行的分店号,在第一页预览可见,但其它的页就看不到了。

模板该如何设置,才能保证预览的时候,在每一页上都可以看到表名和分店号这两行呢?


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

[此贴子已经被作者于2018/2/27 18:46:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/2/27 20:08:00 [只看该作者]


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/2/27 22:39:00 [只看该作者]

输出报表本身没有问题。
问题是列很多以后,指定页首行(多行),列翻页以后,表头就看不到了。附件中的报表有两个问题 
1、5-8页,是列翻页以后的报表,表名和表头看不到;而且5-8页的列翻页之后,客户列并没有显示出来。
2、1-4页,表名显示的位置并未在打印预览页面上居中。

我是想翻页打印的时候,多行表头的信息都能看到。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交叉统计打印.zip


[此贴子已经被作者于2018/2/27 22:42:49编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/2/27 23:03:00 [只看该作者]

如果为了追求打印效果,只能这样设计模板
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交叉统计.xls



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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/2/27 23:06:00 [只看该作者]

能用代码的方式设计吗?
因为交叉统计表的列是不固定的。
例如随着年份的增加,有时候可能是13列(其中一列是客户列),有时候可能是25列(2年),有时候可能是37列(3年的数据)

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/2/27 23:12:00 [只看该作者]


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


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

以下是引用chnfo在2018/2/27 23:06:00的发言:
能用代码的方式设计吗?
因为交叉统计表的列是不固定的。
例如随着年份的增加,有时候可能是13列(其中一列是客户列),有时候可能是25列(2年),有时候可能是37列(3年的数据)

 

你问过啊 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=113837&authorid=0&page=0&star=2

 

动态修改模板文件。


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/2/28 14:53:00 [只看该作者]

动态列的问题解决了,现在模板中设置了标题行和标题列重复,但在输出报表的时候,这个设置不起作用。

Dim fl As String = ProjectPath & "attachments/kk.xls"
Dim f As String = ProjectPath & "attachments/test.xls"
FileSys.CopyFile(fl, f, True)
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(f)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
ws.Range("C1:D6").Copy
Dim t As Table = Tables("kk")
Dim idx As Integer = 5
For i As Integer = 1 To t.Cols.count-1 Step 2
    If i < t.Cols.count-3 Then
        ws.Range("C1:D6").Copy
        ws.cells(1,idx).Insert(MSExcel.XlDirection.xlToRight)  '将相应的单元格右移  -------这个为什么是1?从表面上看,它是在第一行的idx列插入列。看帮助里,似乎应当是

  • 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.Range("A10")  '以这个指定的单元格为基准
    Rg.EntireRow.Insert(MSExcel.XlInsertShiftDirection.xlShiftDown)'在基准单元格上面插入一行
    Rg.EntireColumn.Insert(MSExcel.XlInsertShiftDirection.xlShiftToRight)  '在基准单元格左边插入一列
    App.Visible = True


    End If

    ws.cells(3,idx-2).value = t.Cols(i).caption.split("_")(0)
    ws.cells(5,idx-2).value = "[" & t.Cols(i).name & "]"
    ws.cells(5,idx-1).value = "[" & t.Cols(i+1).name & "]"
    idx += 2
Next

app.visible = True

[此贴子已经被作者于2018/2/28 14:56:18编辑过]

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


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

以下是引用chnfo在2018/2/28 14:53:00的发言:
动态列的问题解决了,现在模板中设置了标题行和标题列重复,但在输出报表的时候,这个设置不起作用。

 

只能像4楼那样做。

 

你动态增加列的时候,每一年(12列),那就动态插入一列【客户】以及标题那些东西。

 

excel本来的打印,超出了纸张范围的情况下,重复标题行都是无效的。


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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/1 22:06:00 [只看该作者]

再请教一下。
可以用8楼的方法形成交叉表的动态列。然后把表头的标题行、左侧标题列插入到模板中。

问题是:
假如左侧标题列是2列,然后交叉表的动态列是15列,每页显示8列的话。
那么,总共会显示3页,前两页每页有8列,第三页只有5列了,那么页面的右边就会空3列的空间出来。用什么方法可以使余下的三列划边框线,但不填充数据?

 回到顶部
总数 17 1 2 下一页