如何以PULL方式装载另一服务器上的水晶报表

问题描述:

近日涉及水晶报表开发,原系统已存在一些水晶报表,放置在Server A中,这些水晶报表要从Server B中提取数据,现新建一网站,位于服务器Server C上,需要把Server  A中的水晶报表在网站Web页面中装载显示出来。结构如图:

 

 

开发环境: VS2008, Crystal Report 2008, Windows2003 域环境

解决步骤:

1、 分析Server A中水晶报表数据提取需要的ODBC设置,因为Server A中的水晶报表是从Server B中提取数据,所以在Server A中需要建立ODBC数据源指向Server B中的数据库,此工作已由当初创建水晶报表时完成,此处 我们需要分析它的数据源,并做为我们在Server C中创建ODBC数据源时的参考(二者设置要求一致) 

      先在Server A 水晶报表中查看它所使用的数据源

            

再到Server A  ODBC设置中分析此数据源设置          

                   

2、 Server C上的网站IIS中建立虚拟目录,此目录直接 引用 Server A中水晶报表的文件夹位置。         

           

3、 设置Server CODBC数据源,此处的设置应与Server A中水晶报表所用到的ODBC对应设置一样。即指向Server C中的数据库数据源。

     

           

4、 ASP.NET代码中实现并发布、运行。代码如下:

 

 

  protected   void  btnSD1CTX_Click( object  sender, EventArgs e)
        {
            
            
string  repFilePathRemoteParamsCtx2  =  System.Web.HttpContext.Current.Server.MapPath( " ../Crystal/水晶报表Test.rpt " );
            DateTime dtime 
=   new  DateTime(); // 此处dtime是水晶报表Test所需要传入的参数
             try
            {
                dtime 
=  Convert.ToDateTime(txtBxParam.Text.ToString().Trim());
            }
            
catch  (Exception ex)
            {
                
string  ke  =  ex.ToString();
            }

            
this .CrystalReportSource1.ReportDocument.Load(repFilePathRemoteParamsCtx2);
            
// 注意:此处NexusSQL即为我们在上面的ODBC设置中设置的ODBC连接名,
             this .CrystalReportSource1.ReportDocument.SetDatabaseLogon( " UserID " " PassWord " " NexusSQL " " 数据库名 " );
            
this .CrystalReportSource1.ReportDocument.SetParameterValue( " DateRaised " , dtime);   // 传入参数

            
this .CrystalReportSource1.DataBind();
            
this .CrystalReportViewer1.ReportSource  =   this .CrystalReportSource1;

            CrystalReportViewer1.AutoDataBind 
=   false ;
            
this .CrystalReportViewer1.DataBind();
            CrystalReportViewer1.BestFitPage 
=   true ;
        }

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值