使用C#在运行时将值绑定到Crystal Report. [英] Bind values to crystal report at runtime in C#.

查看:69
本文介绍了使用C#在运行时将值绑定到Crystal Report.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用C#Windows应用程序.我想在运行时在Crystal报表中添加动态"列.因为我不了解设计时的列.这些列将基于sql存储过程.
因此,我想在运行时向Crystal报表添加一列.

I am using C# windows application. I want to add a Dynamic column in Crystal report at run time. Because I dont know about the columns in design time. The columns will come based on the sql stored procedure.
So i want to Add a column to Crystal report at run time.

推荐答案

受害人,
在这里,我为您的问题提供了解决方案,希望对您有所帮助.
您需要关心的是通过CrystalReport中的ParameterField将参数传递给报表.
看看下面的代码


//这是Crystal报表的名称
AgentLicenceCardCollectively1报告=新的AgentLicenceCardCollectively1();
ParameterFields myParams = new ParameterFields();
ParameterField paramOfficerName =新的ParameterField();
ParameterField paramOfficerPost =新的ParameterField();
ParameterField paramCompanyId = new ParameterField();
ParameterField paramALICO =新的ParameterField();

ParameterDiscreteValue myDiscreteValue1 =新的ParameterDiscreteValue();
ParameterDiscreteValue myDiscreteValue2 =新的ParameterDiscreteValue();
ParameterDiscreteValue myDiscreteValue3 =新的ParameterDiscreteValue();
ParameterDiscreteValue myDiscreteValue4 =新的ParameterDiscreteValue();

//将ParameterFieldName设置为参数的名称
//在Field Explore中创建
paramOfficerName.ParameterFieldName =军官名称";
paramOfficerPost.ParameterFieldName ="nzlau";
paramCompanyId.ParameterFieldName ="companyId";
paramALICO.ParameterFieldName ="ALICO";
myDiscreteValue1.Value = cboOfficerName.Text;
paramOfficerName.CurrentValues.Add(myDiscreteValue1);
myDiscreteValue2.Value = cboPost.Text;
paramOfficerPost.CurrentValues.Add(myDiscreteValue2);
myDiscreteValue3.Value = cboCompanyName.Text.Substring(0,2);
paramCompanyId.CurrentValues.Add(myDiscreteValue3);
myDiscreteValue4.Value =";

//将param对象添加到params集合
myParams.Add(paramOfficerName);
myParams.Add(paramOfficerPost);
myParams.Add(paramCompanyId);
myParams.Add(paramALICO);

crystalReportViewer1.ParameterFieldInfo = myParams;
report.SetDataSource(dataSet);

crystalReportViewer1.ReportSource =报告;

享受
-Satyam182
Hi victimized dude,
Here I''ve a solution for your problem hope it will be useful.
All you need to care about is passing the parameter to the report via the ParameterField in CrystalReport.
Have a look to the code below


//This is the name of the Crystal report
AgentLicenceCardCollectively1 report = new AgentLicenceCardCollectively1();
ParameterFields myParams = new ParameterFields();
ParameterField paramOfficerName = new ParameterField();
ParameterField paramOfficerPost = new ParameterField();
ParameterField paramCompanyId = new ParameterField();
ParameterField paramALICO = new ParameterField();

ParameterDiscreteValue myDiscreteValue1 = new ParameterDiscreteValue();
ParameterDiscreteValue myDiscreteValue2 = new ParameterDiscreteValue();
ParameterDiscreteValue myDiscreteValue3 = new ParameterDiscreteValue();
ParameterDiscreteValue myDiscreteValue4 = new ParameterDiscreteValue();

// Set the ParameterFieldName to the name of the parameter
// created in the Field Explore
paramOfficerName.ParameterFieldName = "officerName";
paramOfficerPost.ParameterFieldName = "officerPost";
paramCompanyId.ParameterFieldName = "companyId";
paramALICO.ParameterFieldName = "ALICO";
myDiscreteValue1.Value = cboOfficerName.Text;
paramOfficerName.CurrentValues.Add(myDiscreteValue1);
myDiscreteValue2.Value = cboPost.Text;
paramOfficerPost.CurrentValues.Add(myDiscreteValue2);
myDiscreteValue3.Value = cboCompanyName.Text.Substring(0, 2);
paramCompanyId.CurrentValues.Add(myDiscreteValue3);
myDiscreteValue4.Value = "";

// Add param object to params collection
myParams.Add(paramOfficerName);
myParams.Add(paramOfficerPost);
myParams.Add(paramCompanyId);
myParams.Add(paramALICO);

crystalReportViewer1.ParameterFieldInfo = myParams;
report.SetDataSource(dataSet);

crystalReportViewer1.ReportSource = report;

Enjoy
-Satyam182


根据您的其他详细信息,您似乎需要显示从DB读取的数据.

使用查询或数据集作为报表的数据提供者,然后在Crystal的设计视图中,可以将表"用作数据区域之一.绑定数据库中期望的值列.

现在,如果返回5个值,则将获得5行(在运行时,在UI的表中),如果3行,则将获得3行.

希望有帮助.
附注:您需要水晶设计师. (它不是免费的-已获得许可!)
based on you additional details, looks like you need to display data fetched from DB.

Use query or dataset as the dataprovider to your report and then in design view of crystal you can use ''Table'' as one of the dataregion. Bind the columns of values expected from DB.

Now if 5 values returned you will get 5 rows (in the table in UI at runtime) and if 3 then 3 rows.

Hope that helps.
P.S: you will need crystal designer for it. (its not free - its licensed!)


您不能这样做...
:-D HE HE HE
YOU CANNOT DO THIS ...
:-D HE HE HE
I am using C# windows application. I want to add a Dynamic column in Crystal report at run time. Because I dont know about the columns in design time. The columns will come based on the sql stored procedure.
So i want to Add a column to Crystal report at run time.


这篇关于使用C#在运行时将值绑定到Crystal Report.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆