作者针对VS2003报表的一些注意事项进行简述

由于VS2003 报表种类太多了,所以此处无法上传,所以大家有communitysever的可以从里面获得然后反编译为自己所用,没有的就到网络上搜下吧,有许多资源呢!论坛上也有的。

对于VS2003 报表的表格,特别是国内的一些应用,都是一个个的格子组成的,这样要是用线来一根根画就比较麻烦,但是这类工具还都不提供表格化的报表布局定义方式。苦闷啊!#t#

一个很好的选择是VS2005的客户端报表(RDLC),但是在某几个方面还是不够灵活,例如,灵活性有限制,要想自己编码实现一些复杂逻辑还是有困难;要VS2005,对于一些还在使用VS2003的项目就只有眼馋的份了。用Excel来实现,优点在于页面布局设计灵活,同时使用代码来操作数据要更灵活,更精确。

下面是一个简单的例子,打开一个定义好的Excel文件,这个文件是作为报表的模板,然后向模板的指定格子里填充数据,形成一个报表,在web方式下可以按照指定的命名方式在服务器上生成一个excel文件,之后传送到客户端,由客户端启动excel进行打印。

 
 
 
  1. finally
  2. {
  3.  m_objBook.Close(m_objOpt, m_objOpt, m_objOpt);
  4.  m_objExcel.Workbooks.Close();
  5.  m_objExcel.Quit();
  6.  System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objBook);
  7.  System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcel);
  8.  m_objBook = null;
  9.  m_objExcel = null;
  10.  GC.Collect();
  11. }

可以看到,使用Excel要进行一部分的编码,好在这部分还不太复杂,但是***的问题就在于当报表需求变更时,要重新编译部署,而且当格子特别多的时候,要这样硬编码还是挺痛苦的一件事。不过使用Excel毕竟给我们提供了一种选择,可以在开发时对多种方案权衡利弊,使用最适合项目的。下面的代码使用一个现有的统计图Excel文件,加载这个文件,设置某一项的值和统计图的表示方式,然后保存到另一个Excel文件里。如果是VS2003Office2003,也可以选择VS2003 报表。

 
在用Excel作报表的时候,可能会碰到分页的情况,这样就要分成多个Sheet显示,如果要在每页都保留表头,就需要将***页作为模板设计的表头部分拷贝到其他的Sheet上,这时就要用用到Excel中的单元格拷贝。
下面的代码说明如何一个Sheet上的选定内容拷贝到另一个Sheet

  
 
 
  1. ThisApplication.DisplayAlerts = false;
  2. xlSheet = (Excel.Worksheet)ThisWorkbook.Worksheets.get_Item(1);
  3. //Excel.Range range = xlSheet.get_Range("G4",Type.Missing);
  4. Excel.Range range = (Excel.Range)xlSheet.Rows.get_Item(18, Type.Missing);
  5. Excel.Range range1 = (Excel.Range)xlSheet.Rows.get_Item(19, Type.Missing);
  6. range.Value = "123";
  7. range.Copy(range1);
  8. range1.Rows.Insert(XlInsertShiftDirection.xlShiftDown);

分享标题:作者针对VS2003报表的一些注意事项进行简述
文章路径:http://www.shufengxianlan.com/qtweb/news30/337130.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联