问题
I am using Devexpress XtraReport in Windows application for reporting purpose. I have set a parameter param1 having string as type in my XtraReport1 and using following code to pass parameter.
private void button1_Click(object sender, EventArgs e)
{
XtraReport1 report = new XtraReport1();
report.Parameters["param1"].Value = "kashif";
report.Print();
}
when I press button1 the following windows apperas and ask me for param1 values having already displayed "kashif" in it with button "Submit" and "Reset" My Problem is: I don't want this window to get opened when i Press button1 rather I want to pass directly "kashif" in it without prompting me for param1 value.
回答1:
From their documentation here How To: Silently Pass a Parameter Value
Add a parameter to a report, set the parameter's Modifiers property to Public, and disable the parameter's Parameter.Visible property. When there are no visible parameters in a report, their values are passed "silently" (without exposing the Parameters UI to end-users).
private void button1_Click(object sender, EventArgs e)
{
// Create a report instance.
XtraReport1 report = new XtraReport1();
// Obtain a parameter, and set its value.
report.parameter1.Value = 30;
// Hide the Parameters UI from end-users.
report.parameter1.Visible = false;
// Show the report's print preview.
report.ShowPreview();
}
回答2:
You can like this ** (Asp.net Mvc Razor)
Invoice report = new Invoice();
public ActionResult InvoiceViewerPartial() {
using (CrmDbContext db = new CrmDbContext()) {
report.DataSource = db.InvoiceItem.ToList();
}
report.Parameters["InvoiceId"].Value = "Inv0003";
return PartialView("_InvoiceViewerPartial", report);
}
来源:https://stackoverflow.com/questions/12705080/how-to-pass-parameter-in-devexpress-report