如何从组合框传递参数以将devexpress XtraReport传递给 [英] How to pass parameters to devexpress XtraReport from combobox
问题描述
我有一个包含3个组合框和一个如下所示的按钮的表单
I have a form that contains 3 comboboxes and a button like shown below
和一个包含3个绑定到RTF的参数的报告
and a report that containes 3 parameters that are bounded to richtext
在单击打印"按钮时,我在此过程中使用了以下代码,但未传递参数,并且RTF文本字段为空
i used the following code for this process when clicking the button Print but parameters aren't passed and richtext fields are empty
private void btnPrint_Click(object sender, EventArgs e)
{
// Create a report instance.
var report = new XtraReport1();
// Obtain a parameter, and set its value.
report.ClassName.Value = cmbClass.SelectedText;
report.SubclassName.Value = cmbDivision.SelectedText;
report.StudentName.Value = cmbStudent.SelectedText;
report.RequestParameters = false; // Hide the Parameters UI from end-users.
report.ShowPreview();
}
推荐答案
使用XtraReport.Parameters
集合将组合框值传递给参数名称,如下例所示:
Use XtraReport.Parameters
collection to pass combobox values into parameter names as shown in below example:
private void btnPrint_Click(object sender, EventArgs e)
{
// Create a report instance.
var report = new XtraReport1();
// Obtain a parameter, and set its value.
report.Parameters["ClassName"].Value = cmbClass.SelectedText;
report.Parameters["SubclassName"].Value = cmbDivision.SelectedText;
report.Parameters["StudentName"].Value = cmbStudent.SelectedText;
report.RequestParameters = false; // Hide the Parameters UI from end-users.
report.ShowPreview();
}
或者您可以声明一个重载构造函数,该重载构造函数在其中分配参数值,然后使用重载构造函数参数创建XtraReport
实例:
Or you may declare an overload constructor which assigns parameter values inside it, then create XtraReport
instance using overloaded constructor arguments:
// XtraReport
public partial class ReportName : DevExpress.XtraReports.UI.XtraReport
{
// default parameterless constructor here
public ReportName(string ClassName, string SubclassName, string StudentName)
{
InitializeComponent();
this.Parameters["ClassName"].Value = ClassName;
this.Parameters["SubclassName"].Value = SubclassName;
this.Parameters["StudentName"].Value = StudentName;
}
}
// Form code
private void btnPrint_Click(object sender, EventArgs e)
{
// Create a report instance.
var report = new XtraReport1(cmbClass.SelectedText, cmbDivision.SelectedText, cmbStudent.SelectedText);
report.RequestParameters = false; // Hide the Parameters UI from end-users.
report.ShowPreview();
}
参考:在运行时传递参数值
更新:
如果每个文本框的SelectedText
属性始终为空值,则可以使用Text
或SelectedItem
属性获取组合框的实际值(类似问题
If SelectedText
property for each textbox always have null value, you can use Text
or SelectedItem
property to get actual combo box value (similar issue here).
private void btnPrint_Click(object sender, EventArgs e)
{
// Create a report instance.
var report = new XtraReport1();
// Obtain a parameter, and set its value.
report.Parameters["ClassName"].Value = cmbClass.Text;
report.Parameters["SubclassName"].Value = cmbDivision.Text;
report.Parameters["StudentName"].Value = cmbStudent.Text;
report.RequestParameters = false; // Hide the Parameters UI from end-users.
report.ShowPreview();
}
这篇关于如何从组合框传递参数以将devexpress XtraReport传递给的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!