www.gmcc-it.com/xw/xw0005.htm 
www.e-bluefield.com/dotnet8/article/list.asp?id=20 
www.socent.com/dotnet/message.asp?id=314
itbooks.web165.com/bbs/show.asp?id=1014&bd=5

解决方案 »

  1.   

    水晶报表的使用很简单,设计好*.rpt文件后,用相应的控件浏览它就OK了,它的发布在网上一下能搜索到很多的例子
      

  2.   

    详细资料间距  使用该框可以指定希望在详细资料间留出的空白区域(间距、装订线,等等)。水平 = 详细资料的横向间距,垂直 = 详细信息的纵向间距。
      
      确定希望允许的间距。在“水平”编辑框中输入数据水平间距,并在“垂直”编辑框中输入垂直间距。
      
      打印方向  “打印方向”框使您能够指定程序在报表页上打印详细资料时所遵循的路径。选项有:
      
      先行后列   从左到右打印各列中的详细资料,即先打印第一列中的第一则详细资料,然后打印下一列中的第一则详细资料,依此类推。然后,当所有列都包含详细资料后,程序沿着页面向下移动,打印第一列中的第二则详细资料,然后打印第二列中的第二则详细资料,依此类推。
      
      先列后行   沿着第一列向下打印详细资料,然后沿着第二列,依此类推。
      
      格式化带有多列的组  如果希望程序使用为选定节指定的“宽度”、“详细资料间距”和“打印方向”格式化带有多列的组,则选择该复选框。
      
      二、经典水晶报表设计三则之“单击表头排序表格”
      
      1. 新建一个字符串类型的参数字段,名称为 URL,用于传递 ASP.NET 程序的网址和网址的部分参数。比如:"http://www.nt.cn/cr.aspx?sort_field="。
      
      2. 右击作为表头的文本字段,选择"设置文本格式",进入"格式化编辑器"对话框。
      
      3. 选择"超级链接"选项卡,并设置超级链接类型为"Internet 上的网址"。
      
      4. 单击超级链接信息的网站地址后面的公式的钮,输入公式 {?URL} + "name"。
      
      5. 这样表头就变成了超级链接,而且指向 http://www.nt.cn/cr.aspx?sort_field=name。
      
      6. ASP.NET 程序在 Page_Load 事件里读取要排序的字段 sort_field,然后对水晶报表进行排序。
      

  3.   


     这里的书,都可以,大同小异:
     http://community.csdn.net/Expert/topic/3147/3147354.xml?temp=.9306299
      

  4.   

    7. 水晶报表排序编程实例  Dim crReportDocument As ReportDocument  Public Sub changeSortField(mySortFld As String, mySortDir As String)  Dim crSortField As SortField  Dim crSortDirection As SortDirection  Dim crDatabaseFieldDefinition As DatabaseFieldDefinition  For Each crSortField In crReportDocument.DataDefinition.SortFields  If crSortField.Field.Name.ToString = mySortFld Then  crDatabaseFieldDefinition = crReportDocument.Database.Tables(0).Fields(mySortFld.ToString)  crSortField = crReportDocument.DataDefinition.SortFields(0)  crSortField.Field = crDatabaseFieldDefinition  If mySortDir = "Ascending" Then  crSortField.SortDirection = SortDirection.AscendingOrder  Else  crSortField.SortDirection = SortDirection.DescendingOrder  End If  End If  Next  CrystalReportViewer1.ReportSource = crReportDocument  End Sub 
      

  5.   

    一、Crystal Reports 9 最新补丁下载
    二、原因1:文件夹 NTFS 权限的问题。
    三、原因2:PULL 模式,水晶报表中的数据库登录问题(非 Windows 集成身份验证)。
    四、原因3:PUSH 模式设置了 TableLogOnInfo,不需要!
    五、出错:部署到其它计算机,产生问题:连接失败。错误的登录参数。
    六、安全之道:crystalreport 的集成认证如何与NT(2K)SERVER集成?
    七、原因4:PULL 模式,水晶报表中的数据库登录问题(Windows 集成身份验证)。
    ---------------------------------------------------------------
    问题:
    CrystalReports 登录失败
    LogOnException
    --------------------------------------------------------------- 
    一、Crystal Reports 9 最新补丁下载
    (1)Crystal Reports 9 Database and Export Drivers Monthly Hot Fix
    http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90dbexwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90dbexwin_en.zip
    (2)Crystal Reports 9 Developer Files Monthly Hot Fix
    http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90devwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90devwin_en.zip
    (3)Crystal Reports 9.0 Main Program Files Monthly Hot Fix
    http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90mainwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90mainwin_en.zip 
    --------------------------------------------------------------- 
    二、原因1:文件夹 NTFS 权限的问题。
    1、水晶报表 Web 查看器文件夹 NTFS 权限的问题
    (1)错误提示:
    “/WebApplication1”应用程序中的服务器错误。
      登录失败。 
      说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
      异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败。
    (2)相关文件夹:
    VS.NET Crystal Reports: C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers
    Crystal Reports 9.2: C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers2、水晶报表文件所在的文件夹,或者导出时的目标文件夹 NTFS 权限的问题
    (1)错误提示:
    登录失败。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
    异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败。3、设置上述文件夹的“安全”,即 NTFS 权限:
    最简单的办法是给 Everyone 用户加“完全控制”权限!
    (1)为当前用户,如:Administrator,,添加“写入”权限;
    (2)为用户 ASPNET、SYSTEM、匿名用户(通常为 IUSR_MACHINENAME)、经过身份验证的请求用户添加“写入”权限。
    ---------------------------------------------------------------
    三、原因2:PULL 模式,水晶报表中的数据库登录问题。
    运行时登录数据库服务器的方法(PULL 模式)
    在报表的cs文件中,加上数据库连接。
    1、设置 ReportDocument 的 TableLogonInfo……
    Dim  ReportDoc  As  New  ReportDocument()  
    Dim  logonInfo  As  New  TableLogonInfo  
    Dim  table  As  table  
    ReportDoc.Load("C:\Rpts\publish.rpt")  
    For  Each  table  IN  ReportDoc.DataBase.Tables  
                   logonInfo=  table.LogonInfo  
                   with  logonInfo.connectioninfo  
                       .serverName=  "Localhost"  
                       .Databasename=  "pubs"  
                       .UserID=  "sa"  
                       .Password=""  
                   End  With  
                   table.applyLogonInfo(logonInfo)  
    next  table  
    Crviewer.reportsource = reportDoc  2、如果是多个相关的表作为报表的数据源,最好使用存储过程或者查询作为数据源。3、将“数据库连接信息”存放在 web.config 配置文件,易维护。
    using CrystalDecisions.Shared ; //负责解释TableLogOnInfo类
    using CrystalDecisions.CrystalReports.Engine ; //负责解释ReportDocument类private void Page_Load(object sender, System.EventArgs e)
    {
    TableLogOnInfo logOnInfo = new TableLogOnInfo ();
    //这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
    ReportDocument oRpt = new ReportDocument();
    //获取.rpt文件真实路径
    string path;
    path=Server.MapPath ("cr.rpt");
    oRpt.Load (path);//从web.config中获取logOnInfo参数信息
    string a,b,c,d;
    //获取ServerName
    a=System.Configuration.ConfigurationSettings.AppSettings ["servername"];
    //获取DatabaseName
    b=System.Configuration.ConfigurationSettings.AppSettings ["database"];
    //获取UserId
    c=System.Configuration.ConfigurationSettings.AppSettings ["userid"];
    //获取password
    d=System.Configuration.ConfigurationSettings.AppSettings ["pass"];
    //设置logOnInfo参数
    logOnInfo.ConnectionInfo.ServerName = a;
    logOnInfo.ConnectionInfo.DatabaseName = b;
    logOnInfo.ConnectionInfo.UserID = c;
    logOnInfo.ConnectionInfo.Password = d;oRpt.Database.Tables [0].ApplyLogOnInfo (logOnInfo);//建立.rpt文件与CryStalReportviewer文件之间的连接
    CrystalReportViewer1.ReportSource = oRpt;DataBind();
    }
    ---------------------------------------------------------------
    四、原因3:PUSH 模式设置了 TableLogOnInfo,不需要!
    因为数据源是 DataSet,不是数据库!
    ---------------------------------------------------------------
    五、出错:部署到其它计算机,产生问题:连接失败。错误的登录参数。
    在开发机(2000)上运行,一切正常;移植到生产机(2003),就报错。错误提示:连接失败。错误的登录参数。
    解决方案:
    部署包少了点东西:
    Crystal_Database_Access2003.msm
    Crystal_Database_Access2003_chs.msm
    这两个合并模块包含各种连接数据源的驱动。所以少了它,就老是提示登录失败(这种提示是不是很莫名其妙?)
    ---------------------------------------------------------------
    六、安全之道:crystalreport 的集成认证如何与NT(2K)SERVER集成??
    --------------------------------------
    安全三要素:
    模拟,验证,授权
    --------------------------------------
    如果运行 ASP.NET 程序,还需要为 ASPNET 账号——运行 ASP.NET 模拟的账号,做下述设置:
    1、通过 Web 访问服务器,访问者默认“模拟”的是——Internet 来宾帐号,账号名:IUSR_计算机名;
    2、“IUSR_计算机名”账号要访问 SQL SERVER,必须为该帐号建立“登录”(验证也!);
    3、并授予“服务器角色”和“数据库访问许可”、“数据库角色”(授权也)!
    --------------------------------------
    参考:
    1、匿名访问 Web 所模拟的账号
    账号名:IUSR_计算机名
    全名:Internet 来宾帐号
    描述:匿名访问 Internet 信息服务的内置帐号
    2、运行 ASP.NET 模拟的账号
    账号名:ASPNET
    全名:aspnet_wp account
    描述:运行 ASP.NET 工作进程的账号
    ---------------------------------------------------------------
    七、原因4:PULL 模式,水晶报表中的数据库登录问题(Windows 集成身份验证)。
    1、错误提示:
    “/MyWebApp”应用程序中的服务器错误。
    用户 'PYPC101\ASPNET' 登录失败。 
    2、问题分析:
    设计水晶报表时,在“数据库专家”的“连接信息”里使用了“集成安全”,即 Windows 集成身份验证。
    3、解决方案:
    要为 ASPNET 账号增加数据库登录和访问权限……
    但这样不太适用,设计时最好使用数据库服务器的身份验证,用服务器的账号登录,比如:sa!
    4、参考:三、原因2:水晶报表中的数据库登录问题。
      

  6.   

    经典水晶报表设计——单击表头排序表格 --------------------------------------------------------------------------------
    1. 新建一个字符串类型的参数字段,名称为 URL,用于传递 ASP.NET 程序的网址和网址的部分参数。比如:"http://www.nt.cn/cr.aspx?sort_field="。2. 右击作为表头的文本字段,选择"设置文本格式",进入"格式化编辑器"对话框。3. 选择"超级链接"选项卡,并设置超级链接类型为"Internet 上的网址"。4. 单击超级链接信息的网站地址后面的公式的钮,输入公式 {?URL} + "name"。5. 这样表头就变成了超级链接,而且指向 http://www.nt.cn/cr.aspx?sort_field=name。6. ASP.NET 程序在 Page_Load 事件里读取要排序的字段 sort_field,然后对水晶报表进行排序。7. 水晶报表排序编程实例    Dim crReportDocument As ReportDocument    Public Sub changeSortField(mySortFld As String, mySortDir As String)    Dim crSortField As SortField
        Dim crSortDirection As SortDirection
        Dim crDatabaseFieldDefinition As DatabaseFieldDefinition    For Each crSortField In crReportDocument.DataDefinition.SortFields
            If crSortField.Field.Name.ToString = mySortFld Then
                 crDatabaseFieldDefinition = crReportDocument.Database.Tables(0).Fields(mySortFld.ToString)
                crSortField = crReportDocument.DataDefinition.SortFields(0)
                crSortField.Field = crDatabaseFieldDefinition             If mySortDir = "Ascending" Then
                    crSortField.SortDirection = SortDirection.AscendingOrder
                 Else
                    crSortField.SortDirection = SortDirection.DescendingOrder
                End If
            End If
        Next    CrystalReportViewer1.ReportSource = crReportDocument
        End Sub
      

  7.   

    建议到官方的support网站去查资料,上面有很多很好的例子以及文章甚至补丁http://support.businessobjects.com/search/