VS2005下水晶报表如何实现动态数据源绑定?

怎样动态指定水晶报表的数据源 解决了动态指定水晶报表数据源过程中遇到的所有问题,有实际价值。 立即下载
      之前在论坛中经常有人问起在 VS2005 中使用水晶报表( Crystal Report 10 )如何用 DataSet 实现动态的数据源绑定?关于这个问题我研究了一下,找到了新的解决方案。
    在以前 VS2003 中可以采用 PUSH 模式推报表,可以用如下的代码实现:        
   

         con = new SqlConnection(Session["SQLCONNECTION"].ToString());
         strSql 
= "SELECT * FROM htOrder";
         scm 
= new SqlCommand(strSql, con);
         sda 
= new SqlDataAdapter(scm);
         ds 
= new DataSet();
         sda.Fill(ds, 
" order ");
         rptOrder.SetDataSource(ds.Tables[
"order"]);
         crOrder.ReportSource 
= rptOrder;    

         

     // 绑定报表数据
             private   void  BindCrystalReports()
        
{
                
string path1 = Server.MapPath("~//Report//");
                
string path2 = path1 + "repOrder.rpt";
                ReportDocument repDoc 
= new ReportDocument();
                repDoc.Load(path2);
                SetDBLogonForReport(repDoc);          
//设置数据登录信息
                crOrder.ReportSource = repDoc; 
                
string selectionFormula = "{htOrder.htID} =" + txtHtID.Text.Trim();//设置报表数据筛选公式
                repDoc.DataDefinition.RecordSelectionFormula = selectFormula;
                crOrder. DataBind ();     
        }

        
// 设置登录信息
         private   void  SetDBLogonForReport(ReportDocument reportDocument)
    
{
        
try
        
{
                ConnectionInfo connectionInfo 
= new ConnectionInfo();
                connectionInfo.ServerName 
= ConfigurationManager.AppSettings["ServerName"];
                connectionInfo.DatabaseName 
= ConfigurationManager.AppSettings["DatabaseName"];
                connectionInfo.UserID 
= ConfigurationManager.AppSettings["UserID"];
                connectionInfo.Password 
= ConfigurationManager.AppSettings["Password"];
                Tables tables 
= reportDocument.Database.Tables;
               
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
           
{
                    TableLogOnInfo tableLogonInfo 
= table.LogOnInfo;
                    tableLogonInfo.ConnectionInfo 
= connectionInfo;
                    table.ApplyLogOnInfo(tableLogonInfo);
                }

        }

           
catch
      
{
                lblNote.Text 
= "<script>alert('数据库登录信息不正确!');</script>";
           }

}

                  

        1. 建立水晶报表,注意报表要用OLE DB ADO方式连接数据源,这样可以省去报表登录窗口的弹出。
        2. 在设计视图中拖拉报表控件CrystalReportViewer,点击右上角智能标签设置报表数据源,选择报表文件,自动生成CrystalReportSource,这时在设计视图中将显示出报表界面,水晶报表将自动用初始数据填充报表字段。注意这里有个小Bug,如果报表在子目录中,选择报表文件将自动用相对路径表示,这时报表显示会出错,应改成绝对路径才可以。
            <Report FileName="report/rptOrder.rpt">这里应改成:<Report FileName="../report/rptOrder.rpt">
        3.拖拉一个数据源控件SqlDataSource(也可以用ObjectDataSource),按向导生成数据源,这里可以筛选数据,根据情况选择各类数据源。            
        4.如何将CrystalReportSource与SqlDataSource两个控件连接在一起呢?可以这样:选择CrystalReportSource控件点击右侧属性中数据栏,再点击Report选择DataSource,在这个数据源集合编辑器选择数据源指定报表名称即可。(下面的Parameters是用来选择报表参数用的)

        经过这几个步骤,就可以运行程序显示报表啦,怎么样不用写一句代码吧?

具体代码可参考如下: 

< CR:CrystalReportViewer  ID ="crOrder"  runat ="server"  AutoDataBind ="True"   ReportSourceID ="ReportSourceOrder"   BestFitPage ="False"  DisplayToolbar ="False"  DisplayGroupTree ="False"  Height ="1042px"  Width ="775px"  EnableParameterPrompt ="False"   />         
        
< CR:CrystalReportSource  ID ="ReportSourceOrder"  runat ="server" >
            
< Report  FileName ="../report/rptOrder.rpt" >                            
                    
< DataSources >
                            
< CR:DataSourceRef  DataSourceID ="SqlDataSourceOrder"  TableName ="htOrder"   />
                    
</ DataSources >
              
</ Report >
        
</ CR:CrystalReportSource >
        
< asp:SqlDataSource  ID ="SqlDataSourceOrder"  runat ="server"  ConnectionString ="<%$ ConnectionStrings:cc_2005 %>"
            SelectCommand
="SELECT * FROM [htOrder] " ></ asp:SqlDataSource >

 

          在 VS2005 中不再支持“ embedded report ”嵌入式报表, 只能采用非嵌入式报表的方法拉数据,下面是典型的代码:
                 这种方式是不是太频繁琐了,在数据结构更改或者查询条件发生变化时必须要再次更改报表设置,那么在 VS2005 中水晶报表有没有更简洁的方法呢?最好不用写代码就能搞定呢?有,那就是新的数据绑定控件 CrystalReportSource ,这个控件与 SqlDataSource 数据源绑定控件一起连用就可以用 SQL 表达式作数据源推数据了。下面是实现的步骤:
水晶报表连接数据库和部分属性方法 英文版本 介绍水晶报表怎么连接邦定活动数据源 和一些组件的属性和方法 对开发人员绝对是好东西 反正我是信了 立即下载

相关推荐

使用自定义数据源创建水晶报表

使用自定义数据源创建水晶报表

C#中为水晶报表动态动态设置数据源 收藏

小禾斗专栏 2408

VB.net 水晶报表 动态数据源

Vb.net 水晶报表 动态数据源 分组 动态参数

Java实现动态数据源切换,Oracle存储过程调用

实现页面动态数据源的切换,调用不同的存储过程。

n_AloneT的博客 1692

C# 动态绑定水晶报表CrystalReport实例

C# 动态绑定CrystalReport水晶报表实例源代码,先加载数据库数据,显示所有学生信息,按学生编号查询学生信息,按回车键查询学生信息,绑定水晶报表,测试本程序,请先安装好所需的水晶报表控件CrystalReport。 运行环境:Visual Studio2010

CANoe VLAN配置的艺术:如何通过脚本自动化实现高效车载网络测试

本文深入探讨了CANoe VLAN配置的自动化实现,通过CAPL脚本与Python工具链的结合,提升车载网络测试效率。重点解析了硬件侧VLAN配置与软件侧VLAN配置的交互机制,并提供了实用的脚本开发示例和调试技巧,帮助工程师快速构建高效的自动化测试方案。

qqq44的博客 617

VS2005下水晶报表如何实现动态数据源绑定

 之前在论坛中经常有人问起在VS2005中使用水晶报表(Crystal Report 10)如何用DataSet实现动态的数据源绑定?关于这个问题我研究了一下,找到了新的解决方案。在以前VS2003中可以采用PUSH模式推报表,可以用如下的代码实现: con = new SqlConnection(Session["SQLCONNECTION"].ToString());strSql = "SEL

445

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

[转]VS2005下水晶报表实现动态数据源绑定

本文转自:http://www.cnblogs.com/VS2008/archive/2006/05/21/405488.html 原作者:一代风华本文是所有此类文章中写的最好的,推荐相关开发者阅读参考  之前在论坛中经常有人问起在VS2005中使用水晶报表(Crystal Report 10)如何用DataSet实现动态的数据源绑定?  关于这个问题我研究了一下,找到

阿泰的软件实用主义 1195

智能车竞赛走马观碑组:如何高效识别目标板并优化绕行策略(附实战代码)

本文深入探讨了智能车竞赛走马观碑组中,如何构建从图像识别到路径决策的全栈优化方案。针对目标板识别与绕行策略的核心难点,文章详细解析了基于MobileNetV2的高效识别流水线、结合预瞄点与纯追踪算法的平滑路径规划,以及横向与纵向协同控制策略,并提供了实战代码与调试指南,旨在全面提升小车的比赛表现。

o5p6q的博客 884

StarRocks FE启动异常

服务器断电,StarRocks FE 启动失败。

qq_15138049的博客 1113

VS2005下水晶报表实现动态数据源绑定

本文转自:http://www.cnblogs.com/VS2008/archive/2006/05/21/405488.html 原作者:一代风华 本文是所有此类文章中写的最好的,推荐相关开发者阅读参考 之前在论坛中经常有人问起在VS2005中使用水晶报表(Crystal Report 10)如何用DataSet实现动态的数据源绑定? 关于这个问题我研究了一下,找...

weixin_30950237的博客 102

HMC5883L磁力计在STM32F4上的I2C驱动与数据校准实战

本文详细介绍了HMC5883L磁力计在STM32F4平台上的I2C驱动开发与数据校准实战。通过解析寄存器配置、数据读取处理和椭圆拟合校准算法,帮助开发者实现精准的地磁测量,特别适用于无人机导航和机器人系统中的航向确定与陀螺仪漂移修正。

2y3u4i5o6p的博客 1037

水晶报表数据的绑定

设计水晶报表    在.Net中,微软提供了一种优秀的报表工具,水晶报表。水晶报表提供一种可视化的报表设计工具,将设计和运行有效地分离开,使数据报表的输出更加容易。先看看报表设计,vs2005提供了向导式的水晶报表开发工具,首先设计时需要指定报告数据来源,水晶报表允许使用.Net强类型数据集或者是实体对象作为数据源     (按1:令我十分懊恼得是,作为设计时需要使用的

showlin的专栏 3960

模型实战(31)之 yolo26 实现对手部关键点数据集 的训练与关键点检测

模型实战(31)之 yolo26 实现对手部关键点数据集 的训练与关键点检测

yohnyang的博客 210

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

vs2005中水晶报表实现

<br />vs2005中水晶报表实现<br /><br />【说明】<br />水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像。也就是说,推模式是用dataset组装水晶报表。<br />水晶报表组件介绍。水晶报表在VS2005中有两种组件

W60000564的专栏 446

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2599

VS2005 开发水晶报表(初级)

在网上看到很多用VS开发水晶报表的文章,但都是基于VS2003的,找到的这篇才是真正基于VS2005,而且原博主 讲解的很详细,Web项目、 WindowsForm项目 都讲到了。同时 ,根据我的理解,进行了一些修改和调整) 水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。水晶报表在V

baohaiqi的专栏 926

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: .Net 电子邮件被 McAfee 拦截的解决方案
下一篇: 国际巨头联姻国内IDC服务商推广SAAS
bat800
博客等级 码龄24年 30粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值