会用水晶报表crystal reports的请进
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会用水晶报表crystal reports的请进相关的知识,希望对你有一定的参考价值。
两个问题第一个 水晶报表已经关联了数据库 但是如何取字段中的某个值
第二个 如何添加图片 不是固定添加的那种 算是动态添加
= =好吧 各位大牛 我可能表述的不是很清楚 哪里不清楚的我可以慢慢说 只是求能解决问题
1、将crystalReportViewer控件拖至界面2、选择报表源->新建报表源3、指定crystal报表->新建报表->输入名称并点击确定4、点击确定,在弹出的界面中,均采用默认值,点击确定5、如果用的是sql数据库,选择OLE DB(ADO)6、在弹出窗口中选择SQLserver,下一步7、输入服务器的相关信息,选择数据库,点击下一步8、点击完成9、在可用数据源里就能看到刚才添加的那个,选中数据库的要显示的表名,点击>按钮,下一步10、点击表名前面的+,可以看到表中的所有字段,选中某个后,点击>按钮,直到需展示的字段选择完,下一步11、根据提示选择分组、汇总、排序的方式,,点完成。如果不需设置,步骤10 完成之后直接点完成12、运行,就可以看到结果了。
二,水晶报表动态添加图片:要连接远程数据库,最起码要有个远程数据服务才行啊,比如SQL数据库服务,据俺所知ACCESS没那功能。如果是要连接远程数据服务,也不在RPT里,应该是在RS里,让RS打开远程数据,RPT引用RS里的数据
Dim x As PictureSet x = LoadPicture("图片路径")
Set rptProduce.Sections("Section2").Controls("报表控件名").Picture = x将动态图片转换成JPG格式就可以啦。</p>格式转换器下载地址: http://bbs.meiyatt.com/
添加新项---rdlc报表----然后为报表配置数据源----然后设计报表:点报表里的工具箱添加柱状图即可。//声明报表的数据对象
CrystalDecisions.CrystalReports.Engine.Database crDatabase;
CrystalDecisions.CrystalReports.Engine.Table crTable;
TableLogOnInfo dbConn = new TableLogOnInfo();
// 创建报表对象
CrystalReportSource oRpt = new CrystalReportSource(); //CrystalReportSource
// 加载已经做好的报表
oRpt.Load();
//连接数据库,获得相关的登陆信息
crDatabase = oRpt.Database;
//定义一个arrtables对象数组
object[] arrTables = new object[1];
crDatabase.Tables.CopyTo(arrTables, 0);
crTable = (CrystalDecisions.CrystalReports.Engine.Table)arrTables[0];
dbConn = crTable.LogOnInfo;
//设置相关的登陆数据库的信息
dbConn.ConnectionInfo.DatabaseName = "pubs";//pubs
dbConn.ConnectionInfo.ServerName = ".";
dbConn.ConnectionInfo.UserID = "sa"; //sa
dbConn.ConnectionInfo.Password = "";
//将登陆的信息应用于crtable表对象
crTable.ApplyLogOnInfo(dbConn);
//将报表和报表浏览控件绑定
crViewer.ReportSource = oRpt;
//传递参数
setReportParameters(DropDownList1.SelectedItem.Text);private void setReportParameters(string para)
// all the parameter fields will be added to this collection
ParameterFields paramFields = new ParameterFields();
// the parameter fields to be sent to the report
ParameterField pfType = new ParameterField();
// 设置在报表中,将要接受的参数字段的名称
pfType.ParameterFieldName = "BookType";
ParameterDiscreteValue dcType = new ParameterDiscreteValue();
dcType.Value = para;
pfType.CurrentValues.Add(dcType);
paramFields.Add(pfType);
// 将参数集合绑定到报表浏览控件
crViewer.ParameterFieldInfo = paramFields;
检举 参考技术A 如果是用FineReport,关联了数据库之后,新建一个数据集,将字段直接拖拽进报表设计器即可;你说的动态添加图片是什么意思?是不是在填报中用一个上传附件的控件上传图片?这个FineReport报表也是可以实现的,设置一个文件上传控件即可实现。楼主可以看一下水晶报表是否也是类似实现的,当然也可以试一下FineReport看一下具体怎样实现,有问题还可以去“FineReport爱好者论坛”求助,很多热心的报表高手在。
ASP.Net 中的 Crystal Report 传递参数值并且没有有效的报表源
【中文标题】ASP.Net 中的 Crystal Report 传递参数值并且没有有效的报表源【英文标题】:Crystal Report in ASP.Net passing parameter values and no valid report source 【发布时间】:2012-09-05 04:56:37 【问题描述】:在 ASP.Net 网页上显示 Crystal 报表时遇到问题。该网站只是一个内部网站,因此您会看到我已将文件路径编码到该网站中。我想我已经很接近让这个工作了,但我显然错过了一些东西。有人可以帮忙吗?
他是我的密码:
void BindReport()
ReportDocument rd = new ReportDocument();
//Report is saved on an external server which I have full access too
rd.Load(@"\\MyServer\Reports\MyReport.rpt");
rd.SetDatabaseLogon("UserName", "Password", "MyServer", "MyDatabase", true);
//The Report has 2 parameter and links directly to a stored procedure on a SQL Server
rd.SetParameterValue("@uspDateFrom", new DateTime(2012, 05, 01));
rd.SetParameterValue("@uspDateTo", new DateTime(2012, 05, 31));
CrystalReportViewer1.ReportSource = rd;
CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
CrystalReportViewer1.RefreshReport();
//I call my report on a button click
protected void buttonPreviewReport_Click(object sender, EventArgs e)
BindReport();
当报告尝试运行时,我会弹出一个对话框,询问我的参数值,即使我已经传递了它们!?即使我在对话框提示中输入它们,我也会收到一条消息,指出没有可用的有效报告源。
有人有什么想法吗?
我正在使用 ASP.Net 4.0
提前致谢
【问题讨论】:
【参考方案1】:我在使用 Crystal Report 时遇到过同样的问题。
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
paramField.ParameterFieldName = "@examid";// This is how you can send Parameter Value to the Crystal Report
// Set the first discrete value and pass it to the parameter.
discreteVal.Value = ddlAllExam.SelectedValue;//Value from DropDown
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo = paramFields;
string datasource = System.Configuration.ConfigurationManager.AppSettings["Data Source"].ToString();
string Database = System.Configuration.ConfigurationManager.AppSettings["Database"].ToString();
string Userid = System.Configuration.ConfigurationManager.AppSettings["Userid"].ToString();
string Password = System.Configuration.ConfigurationManager.AppSettings["Password"].ToString();
ReportDocument report = new ReportDocument();
report.Load(Server.MapPath("~/Reports/AllExamReport.rpt"));//Here you can give the Path of external Server
report.SetDatabaseLogon(Userid, Password, datasource, Database);
CrystalReportViewer1.ReportSource = report;
希望对你有帮助。!!!
【讨论】:
以上是关于会用水晶报表crystal reports的请进的主要内容,如果未能解决你的问题,请参考以下文章
C# winform 用水晶报表 如何做能显示出图中上面那2行数据?
水晶报表 如何设置水晶报表 crystal reports 的字段自动换行