2014-12-05 59 views
1

我將combox值作爲參數傳遞給水晶報表,但是當我運行我的應用程序時,它向我詢問下面給出的值。如何避免/跳過此提示對話框,並直接將組合框中的值傳遞給水晶報表?如何將組合框值作爲參數傳遞給C#中的水晶報表#

enter image description here

這是我的代碼:

private void button2_Click(object sender, EventArgs e) 
     { 
      DataSet ds = new DataSet(); 
      DataTable dt = new DataTable(); 
      dt.Columns.Add("id", typeof(Int16)); 
      dt.Columns.Add("month", typeof(string)); 

      foreach (DataGridViewRow row in dataGridView1.Rows) 
      { 
       dt.Rows.Add(row.Cells[0].Value, row.Cells[1].Value); 
      } 
      ds.Tables.Add(dt); 
      ds.WriteXmlSchema("sample.xml"); 

      CrystalReport2 rpt = new CrystalReport2(); 
      rpt.SetParameterValue("name",comboBox1.Text); 
      rpt.SetDataSource(ds); 
      crystalReportViewer1.ReportSource = rpt; 
     } 
+0

可能重複[我怎樣才能在水晶報表XI運行時禁用參數提示?(http://stackoverflow.com/questions/1221370/how-can-i-disable-parameter-prompt-at-run-time-in-crystal-report-xi) – Reniuz 2014-12-05 15:44:06

回答

2

嘗試

rpt.ParameterFields.Item["name"].CurrentValues = comboBox1.Text; 
rpt.ParameterFields.Item["name"].HasCurrentValue = true; 

更換

rpt.SetParameterValue("name",comboBox1.Text); 

,如果它不工作,試試這個

var param= new CrystalDecisions.Shared.ParameterValues(); 
var paramVal = new CrystalDecisions.Shared.ParameterDiscreteValue(); 
paramVal.Value = comboBox1.Text; 
param.Add(paramVal); 
rpt.SetParameterValue("name", param) 

我已經適應從here代碼爲您

+0

我正在windows窗體中工作。 rpt.ParameterFields沒有Item字段。 – Loyal 2014-12-05 16:20:18

+0

嘗試'rpt.SetParameterValue(0,comboBox1.Text)' – faby 2014-12-05 16:22:50

+0

給出相同的提示。 – Loyal 2014-12-05 16:24:32

相關問題