去掉VS2005中水晶报表的登录界面

      在CSDN中经常有朋友问在ASP.NET下用水晶报表的网站会出现水晶报表的登录界面,我来用实例说明如何去掉这个界面(PULL模式)
      首先,为了登录方便,将数据库的用户名和密码先写到Web.config中:
<appSettings>
    <add key="DBServerName" value="你的数据库服务器" />
    <add key="DBUserID" value="sa" />
    <add key="DBPassWord" value="UU1Tc3lzdGVt" />
</appSettings>

     然后写个类来统一验证登录
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;

namespace BLL
{
    
public class LoginCrystalReport
    
{        
        
public void Login( CrystalDecisions.CrystalReports.Engine.ReportDocument report)
        
{
            
string serverName=ConfigurationManager.AppSettings["DBServerName"];
            
string userId = ConfigurationManager.AppSettings["DBUserID"];

            
string passWord=ConfigurationManager.AppSettings["DBPassWord"];
           
            
//Set Database Logon to main report
            foreach (CrystalDecisions.Shared.IConnectionInfo connection in report.DataSourceConnections)
            
{
                
if (connection.ServerName == serverName)
                
{
                    connection.SetLogon(userId, passWord);
                }

            }


            
//Set Database Logon to subreport
            foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument subreport in report.Subreports)
            
{
                
foreach (CrystalDecisions.Shared.IConnectionInfo connection in subreport.DataSourceConnections)
                
{
                    
if (connection.ServerName == serverName)
                    
{
                        connection.SetLogon(userId, passWord);
                    }

                }

            }

        }


       
    }

}


       现在准备工作已经做好了,下面开始制作水晶报表.对于如何设计水晶报表我在这里就不讲了.
报表做好后,新建一个WEB页,先拖一个水晶报表查看器,再拖一个水晶报表数据源,这些在VS2005的工具箱中都有,然后将查看器的数据源设置成刚才拖进来的水晶报表数据源,再将水晶报表数据源的数据源设置成刚才完成好的报表,这时候切换到代码,开始编写代码:
protected override void OnInit(EventArgs e)
    
{
        
base.OnInit(e);
        BLL.LoginCrystalReport logCR 
= new BLL.LoginCrystalReport();
        logCR.Login(
this.CrystalReportSource1.ReportDocument);
        
    }

      OK,运行一下,发现登录界面没有了,水晶报表出来了.
      还想说明一点,Web.config文件中敏感信息的加密要由你自己完成.
      我打算写一些关于VS2005下水晶报表的系列文章,毕竟园子里关于水晶报表的不多,请弟兄们多多支持!

posted on 2006-04-21 09:42 菌哥 阅读(3097) 评论(11)  编辑 收藏 网摘 所属分类: 水晶报表

评论

#1楼  2006-04-21 10:59 韦恩卑鄙      

我一向用dataset而不是用后台数据库 因为我不知道实际执行的语句是什么 对后台影响到底有多大

这方面的东西也没有时间深究下去 仁兄有没有心得和我们分享下呢   回复  引用  查看    

#2楼  2006-04-21 11:45 网上购物 [未注册用户]

得好好研究研究   回复  引用    

#3楼  2006-04-24 09:15 Jim Jiang [未注册用户]

水晶报表现在完全支持对象作为数据源绑定, 一般也不应该把这些东西写死在里面的好.
  回复  引用    

#4楼  2006-05-19 22:53 李锡远      

有关水晶报表的文章是少了点,如果有人写,本人还是非常支持的。不过我总觉得水晶报表的限制问题还是挺麻烦的,要买正式版,还是有点不舒服。

我是建议大家多研究一些有关自定义控件的文章吧,每个人要学会用自己的控件。   回复  引用  查看    

#5楼  2006-06-29 09:52 lllwei [未注册用户]

您上面的类中,如果connection.ServerName != serverName,如何处理?在Servername 与报表中不一致时,我试了会出现如下问题:
文件 C:\DOCUME~1\LIANGWEI\ASPNET\LOCALS~1\Temp\crpt_wsphkh_xszsfx1 {2ECA1001-A9F5-408A-BA47-FB1DCC57C6BD}.rpt内出错:找不到行集列。

请研究一下有没有什么解决办法?   回复  引用    

#6楼  2006-09-07 10:23 DONGJIN [未注册用户]

你说的方法好象搞不定!我完全照做还是要我输入登录名和密码

我用的是ORACLE 10G的数据库,会不会是这个限制   回复  引用    

#7楼  2006-11-06 18:25 wspider [未注册用户]

奇怪,我找你的方法,前几天做了几个页面都没有问题, 但今天再做,却老是不灵了 ,是不是我忽略了什么地方?

请指教一下,急!1
谢!   回复  引用    

#8楼  2006-12-27 08:42 daisylh      

出現登錄界面時可檢查網站目錄->匿名存取-->勾選"允許IIS控制存取密碼"   回复  引用  查看    

#9楼  2007-11-21 08:28 悟道2007      

还没有做过专门的报表网站,呵呵!能发个类似的有代表性的网站给看一下吗?   回复  引用  查看    

#10楼  2008-05-08 15:18 dain598 [未注册用户]

您好,您能给我一个完整的例子嘛,就是取去掉VS2005中水晶报表的登录界面 的,发到我邮箱里头,万分感谢   回复  引用    

#11楼  2008-05-08 15:21 dain598 [未注册用户]

您好,您能给我一个完整的例子嘛,就是取去掉VS2005中水晶报表的登录界面 的,发到我邮箱里头,万分感谢dian598@yahoo.cn非常急需   回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接:
 

导航

<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

与我联系

搜索

 

常用链接

留言簿(7)

我参加的小组

我参与的团队

随笔分类

随笔档案

本站镜像

最新评论

阅读排行榜

评论排行榜