All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
用ASP.NET,2.0实现AJAX风格的Web开发_[Asp.Net教程]
操作数据:SQL基础_mssql学习_编程技术
使用ASP.NET,AJAX框架扩展HTML,Map控件_[Asp.Net教程]
如何用vbscript实现计算机的关闭或重启_JavaScript技术_编程技术
使用html表格和CSS进行混合网页设计_[Html教程]
动态网页制作PHP之看实例学正则表达式_php资料_编程技术
ASP.NET生成n位不同的验证码_[Asp.Net教程]
使用MD5加密注册用户密码的简单示例_.net资料_编程技术
如何在十天学内会php之第四天_[PHP教程]
ASP.NET中“找不到指定模块”的解决办法_[Asp.Net教程]
Reading number is top 10 pictures
So beauty, will let you spray blood10
The little woman's bright wire3
The real super beauty2
The money of more than 100 countries and regions15
这两天,中国人民到处都可以“看海”了
七步解决性冷淡
做运动的校花2
Female model behind the bitterness, often being overcharged3
非笑不可:最强爆笑图片精选
日本小萝莉2
Download software ranking
JSP+Ajax Web development typical examples
Sora aoi‘s film--Lust fan wall
Desire a peach blossom
Wild things 2
Unix video tutorial1
传奇私服架设教程
SQL2000 For 4IN1
C#COM编程指南
Sora aoi 120 minutes
C#高级编程(第4版)
归海一刀 published in(发表于) 2014/1/30 1:05:32 Edit(编辑)
VS2005下水晶报表如何实现动态数据源绑定-_[Asp.Net教程]

VS2005下水晶报表如何实现动态数据源绑定-_[Asp.Net教程]

VS2005下水晶报表如何实现动态数据源绑定?_[Asp.Net教程]























之前在论坛中经常有人问起在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;






在VS2005中不再支持“embedded report”嵌入式报表,只能采用非嵌入式报表的方法拉数据,下面是典型的代码:




//绑定报表数据
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 = "";
}
}





这种方式是不是太频繁琐了,在数据结构更改或者查询条件发生变化时必须要再次更改报表设置,那么在VS2005中水晶报表有没有更简洁的方法呢?最好不用写代码就能搞定呢?有,那就是新的数据绑定控件CrystalReportSource,这个控件与SqlDataSource数据源绑定控件一起连用就可以用SQL表达式作数据源推数据了。下面是实现的步骤:




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




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




具体代码可参考如下:












SelectCommand="SELECT * FROM [htOrder] ">




来源:http://www.cnblogs.com/VS2008













































添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.