以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  报表组合设计的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97286)

--  作者:benwong2013
--  发布时间:2017/3/9 11:12:00
--  报表组合设计的问题



因公司内部的需要,我们出具给予客户的报告,是根据报告中的项目来出具的,但一份报告中对应多个项目,每一个项目报告格式不是统一的,如:

报告编号:1234
项目A -- 报告格式A
项目B -- 报告格式B
项目C -- 报告格式C

现在要求系统能将将属于报告编号1234下面的项目A、B、C出具在一份报告中,格式为不统一的;

如项目A对应报告A的格式:

此主题相关图片如下:a.png
按此在新窗口浏览图片
项目B对应报告B的格式:

此主题相关图片如下:b.png
按此在新窗口浏览图片
项目C对应报告C的格式(这个若项目C有多个的时候是横向展开的)

此主题相关图片如下:c.png
按此在新窗口浏览图片

请问以上有没有办法实现,如要实现应该如何去规划?

--  作者:有点蓝
--  发布时间:2017/3/9 11:42:00
--  
1、生成不同的Excel报表,在复制到一个文件中,参考


1、在同一个Excel中合并:
Dim App As New MSExcel.Application
Dim Wb As MSExcel.Workbook = App.WorkBooks.open("f:\\test.xls")
Dim ws As MSExcel.WorkSheet
ws = Wb.WorkSheets(1)
Dim rg As MSExcel.Range  = ws.Cells(ws .UsedRange.Rows.Count+1,1)
app.DisplayAlerts = False
For i As Integer = Wb.WorkSheets.Count To 2 Step -1
    Dim Ws2 As MSExcel.WorkSheet = Wb.WorkSheets(i)
    Dim Rg2 As MSExcel.Range = Ws2.UsedRange
    rg2.Copy
    rg.PasteSpecial()
    rg = ws.Cells(ws .UsedRange.Rows.Count+1,1)
    Ws2.Delete
Next
Wb.Save
App.Quit

2、用专业报表做

--  作者:有点色
--  发布时间:2017/3/9 13:17:00
--  

如果用excel报表来做。那你弄三个sheet,每一个设置好你的报表模板,最后生成不就有三份了,在一个excel文件里面。

 

如果你还需要合成到一个sheet里面去,你可以用拷贝的方式把内容拷贝过去。

[此贴子已经被作者于2017/3/9 13:17:52编辑过]