2
我正在開發一個水晶報告,它是動態添加正確的滲透物 即使我使用了crystalreportviewer上的Paramfieldinfo屬性進行檢查,它顯示了 5個參數,它的名字很完美。爲什麼水晶報告總是告訴參數不正確?在c#中動態生成報告時?
但它仍然顯示「參數不正確」當創建參數我有 選擇ListOfValues選項是動態的。 我從4小時左右的時間裏苦苦掙扎,我不知道它在哪裏可以告訴我 ,謝謝。
我的代碼是:
string query = "SELECT ";
int columnNo = 0;
if (chbCode.Checked)
{
columnNo++;
query = query.Insert(query.Length, "Customer_Code as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Customer Code";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbFirstName.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "FirstName as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "First Name";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbLastName.Checked)
{
columnNo++; //To determine Column number
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "LastName as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Last Name";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbAddress.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "Address as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Address";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbPhone.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "Phone as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Phone";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
//if there is any remaining parameter, assign empty value for that
//parameter.
for (int i = columnNo; i < 5; i++)
{
columnNo++;
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
crystalReportViewer1.ParameterFieldInfo = paramFields;
query += " FROM Customer";
return query;
請解決我的問題。由於
CrystalReportSource1不會在目前情況下錯誤信息存在,則顯示插孔。還有什麼是「parameterValue」我會傳遞什麼參數值,因爲我將從數據庫中檢索存儲在數據集中的數據,所以現在我想根據用戶選擇將這些值分配給水晶報表。所以在我的情況下,我的參數值是什麼。我提供了用於用戶選擇的複選框。謝謝。 – Nag
加入後我解決了crystaldecision.web dll。但是它顯示crystalReportSource1從不分配,並且總是默認值爲null。 NullReference異常引發了我將在這裏提供的值。我是新來的水晶報告可以告訴我傑克? – Nag
我也解決了上述問題,但它引發了一個「報告文件是空的」它告訴了什麼?我創建了報告文檔對象並指定了水晶報告的路徑,同時它也告訴我這樣的感謝。 – Nag