改造了一下以前自己用Delphi开的web报表控件(针对主表、子表、孙表的扩展)...

     因为最近的项目里面涉及到一张三层关系的报表,原来用的控件达不到这个需求,这时有想到用grid++ 但对这个不是很熟,我们公司有在用是CS的,后来想想还是自己花点功夫把原来Delphi开发的插件在扩展一下就可以了,距离上次开发这个控件当中已经近4年半载没去碰dephi了,这下又得从新去下了哥开发环境安装了,和安装了fastreport插件重新把原来的代码打开进行烦心新添加了参数和函数。虽然有点生疏但查了下资料还是能马上应手的,折腾几个小时终于搞定并测试了中间也有点小插曲,但还是比较顺利的。

    delphi开发界面如图

 

   模版设计

  

  

   调用后打印如图

 

    打印预览页面代码

 

ExpandedBlockStart.gif View Code
  1  // ------------------------------------------------------------
  2  //  All Rights Reserved , Copyright (C) 2008 , Jamsoft , Ltd. 
  3  // ------------------------------------------------------------
  4 
  5  using System;
  6  using System.Configuration;
  7  using System.Data;
  8  using System.Data.OleDb;
  9  using System.Linq;
 10  using System.Web;
 11  using System.Web.Security;
 12  using System.Web.UI;
 13  using System.Web.UI.HtmlControls;
 14  using System.Web.UI.WebControls;
 15  using System.Web.UI.WebControls.WebParts;
 16  using System.Xml.Linq;
 17  using System.IO;
 18 
 19  ///   <remarks>
 20  ///  报表
 21  ///  PrintView
 22  ///  
 23  ///  修改纪录
 24  ///  
 25  ///  版本:1.0 2009.07.22   LiangMingMing   创建代码
 26  ///     
 27  ///  版本:1.0
 28  ///   <author>
 29  ///          <name> LiangMingMing </name>
 30  ///          <date> 2009.07.22 </date>
 31  ///   </author>  
 32  ///   </remarks>
 33  public  partial  class PrintView : System.Web.UI.Page
 34 {
 35      // ****************************************************************************************************
 36       // *                                                                                                  * 
 37       // *                                      定义公共变量                                                * 
 38       // *                                                                                                  *
 39       // ****************************************************************************************************
 40 
 41       // ****************************************************************************************************
 42       // *                                                                                                  * 
 43       // *                                      初始化                                                      * 
 44       // *                                                                                                  *
 45       // ****************************************************************************************************
 46 
 47      #region private void PageOnLoad() 页面初次加载时的动作
 48      ///   <summary>
 49       ///  页面初次加载时的动作
 50       ///   </summary>
 51       private  void PageOnLoad()
 52     {
 53          this.txtFilePath.Value =  " 1.fr3 ";
 54          // 获取参数
 55           this.GetParamter();
 56         String scriptString =  " \n TestAX.XML_DataSet = document.all('txtDataSet').value; ";
 57         scriptString +=  " \n TestAX.XML_SubDataSet = document.all('txtSubDataSet').value; ";
 58         scriptString +=  " \n TestAX.XML_SubSubDataSet = document.all('txtSubSubDataSet').value; ";
 59         scriptString +=  " \n TestAX.SubRelation = document.all('txtSubRelation').value; ";
 60         scriptString +=  " \n TestAX.SubSubRelation = document.all('txtSubSubRelation').value; ";
 61         scriptString +=  " \n TestAX.SubMasterFields = document.all('txtSubMasterFields').value; ";
 62         scriptString +=  " \n TestAX.SubSubMasterFields = document.all('txtSubSubMasterFields').value; ";
 63         scriptString +=  " \n TestAX.UserName = document.all('txtUserName').value; ";
 64         scriptString +=  " \n TestAX.SubUserName = document.all('txtSubUserName').value; ";
 65         scriptString +=  " \n TestAX.SubSubUserName = document.all('txtSubSubUserName').value; ";
 66         scriptString +=  " \n TestAX.PathString = document.all('txtFilePath').value; ";
 67          // ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "PassSucceed", "alert('提示信息: 审核通过.');",
 68          Page.ClientScript.RegisterStartupScript( this.GetType(),  " OnInitControl "" <script language='JavaScript'type='text/javascript'> " + scriptString +  " \n</script> ");
 69     }
 70      #endregion
 71 
 72      // ****************************************************************************************************
 73       // *                                                                                                  * 
 74       // *                                      操作方法                                                    * 
 75       // *                                                                                                  *
 76       // ****************************************************************************************************       
 77 
 78      #region private void GetParamter() 读取参数
 79      ///   <summary>
 80       ///  读取参数
 81       ///  Session["_DSReport"]:数据集 主表(不可缺少)、【子表】可省略、【孙表】可省略
 82       ///  SubRelation            子表对应主表的关系 值:"12"(代表第一个为主表),"23"(代表第三个为主表)
 83       ///  SuSubRelation          孙表对应主表的关系 值:"13"(代表第一个为主表),"23"(代表第二个为主表)
 84       ///  SubMasterFields        子表对应主表的字段 
 85       ///  SubSubMasterFields     孙表对应主表的字段 
 86       ///  UserName               主表数据集在FastReport设计Data显示的名称
 87       ///  SubUserName            子表数据集在FastReport设计Data显示的名称
 88       ///  SubSubUserName         孙表数据集在FastReport设计Data显示的名称 
 89       ///   </summary>
 90       private  void GetParamter()
 91     {
 92          if (Request.QueryString[ " SubRelation "] !=  null)
 93         {
 94              this.txtSubRelation.Value = Request.QueryString[ " SubRelation "].ToString();
 95         }
 96          if (Request.QueryString[ " SubSubRelation "] !=  null)
 97         {
 98              this.txtSubSubRelation.Value = Request.QueryString[ " SubSubRelation "].ToString();
 99         }
100          if (Request.QueryString[ " SubMasterFields "] !=  null)
101         {
102              this.txtSubMasterFields.Value = Request.QueryString[ " SubMasterFields "].ToString();
103         }
104          if (Request.QueryString[ " SubSubMasterFields "] !=  null)
105         {
106              this.txtSubSubMasterFields.Value = Request.QueryString[ " SubSubMasterFields "].ToString();
107         }
108          if (Request.QueryString[ " UserName "] !=  null)
109         {
110              this.txtUserName.Value = Request.QueryString[ " UserName "].ToString();
111         }
112          if (Request.QueryString[ " SubUserName "] !=  null)
113         {
114              this.txtSubUserName.Value = Request.QueryString[ " SubUserName "].ToString();
115         }
116          if (Request.QueryString[ " SubSubUserName "] !=  null)
117         {
118              this.txtSubSubUserName.Value = Request.QueryString[ " SubSubUserName "].ToString();
119         }
120         DataSet dataSet =  this.Session[ " _DSReport "as DataSet;
121          if (dataSet !=  null)
122         {          
123              if (dataSet.Tables.Count >  0)
124             {
125                  this.txtDataSet.Value = Common.DataSetToString(dataSet.Tables[ 0]);
126             }
127              if (dataSet.Tables.Count >  1)
128             {
129                  this.txtSubDataSet.Value = Common.DataSetToString(dataSet.Tables[ 1]);
130             }
131              if (dataSet.Tables.Count >  2)
132             {
133                  this.txtSubSubDataSet.Value = Common.DataSetToString(dataSet.Tables[ 2]);
134             }
135         }       
136     }
137      #endregion
138 
139      // ****************************************************************************************************
140       // *                                                                                                  * 
141       // *                                      事件方法                                                    * 
142       // *                                                                                                  *
143       // ****************************************************************************************************
144 
145      #region protected void Page_Load(object sender, EventArgs e)加载
146      ///   <summary>
147       ///  加载
148       ///   </summary>
149       ///   <param name="sender"></param>
150       ///   <param name="e"></param>
151       protected  void Page_Load( object sender, EventArgs e)
152     {
153          if (!Page.IsPostBack)
154         {
155              //  页面初次加载时的动作
156               this.PageOnLoad();
157         }
158     }
159      #endregion
160 }

 

 

转载于:https://www.cnblogs.com/lmm1508561/archive/2012/02/03/2337188.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【好消息】 客户端为DHTML浏览方式的例已经可以推出,敬请访问:http://www.soft2web.biz/WebReport/basicreport.asp,同时推出繁体中文版与英文版,届时欢迎本公司网站下载试用!http://www.soft2web.biz/WebReport/reportdownload.asp 【重要提示】 如果您是第一次试用该软件,请您在下载安装后先运行在线注册。如果由于其他原因,您无法注册成功,请先注册网站会员,并用安装组中的客户号工具生成客户号并发给我们,信中附带上您的会员账号,我们会尽快发给您license,谢谢您的合作与支持! Ming-WebReport是深圳明宇科技有限公司研发的,功能强大且简单易用的专业Web报表发工具。很好地解决了B/S架构软件中报表制作及预览、打印等难题,用它能轻松地完成复杂而美观的Web报表的制作、打印(包括套打),并能存取、分析、分享数据,以及转换、分发、管理报表,与国外同类报表工具相比,具有极高的性价比,而且更好地解决了中国式报表问题,是真正适合中国软件发者的Web报表工具! ??Ming-WebReport可以将报表紧密集成到ASP、.NET、J2EE等应用中,很好地做到了报表设计与应用程序发的分离;支持多种类型数据源,包括:、SQL、存储过程、XML,并支持ACCESS、SQL Server、Oracle、DB2、Sybase等多种数据库;可以运行于多种操作系统Windows、Unix、Linux以及多种Web平台,提供简繁体中文、英文等多个语种的版本,是一套完整的Web报表解决方案。 Ming-WebReport包括三个部分,Report Designer(报表设计器),用于设计制作报表;Report Engine(报表引擎),用于服务器端处理报表;Report Browser(报表浏览器),用于客户端浏览报表。 在这里有大量精美的典型报表和行业应用报表示例供您观赏,敬请访问:http://www.soft2web.com/webreport/index.htm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值