2012-04-27 263 views
0

我收到錯誤「缺少參數值」。我瀏覽了很多帖子,並嘗試了所有。缺少參數值

protected void Page_Load(object sender, EventArgs e) 
    { 
     PaystubParms pparms = new PaystubParms(); 

     pparms.periodstart = 20120316; 
     pparms.periodend = 20120331; 
     pparms.empno = "91065"; 
     pparms.checknbr = 2306; 

     PaystubCrystalReportSource.ReportDocument.SetDatabaseLogon("Abra_Reports","123456","Tsysmas","AbraHrms_Live"); 


     ParameterField pfield0 = PaystubCrystalReportViewer.ParameterFieldInfo[0]; 
     ParameterDiscreteValue pfield0val = new ParameterDiscreteValue(); 

     pfield0val.Value = pparms.periodstart; 
     pfield0.CurrentValues.Add(pfield0val); 
     //------------------------------------------------------------------------- 
     ParameterField pfield1 = PaystubCrystalReportViewer.ParameterFieldInfo[1]; 
     ParameterDiscreteValue pfield1val = new ParameterDiscreteValue(); 

     pfield1val.Value = pparms.periodend; 
     pfield1.CurrentValues.Add(pfield1val); 

     //------------------------------------------------------------------------- 
     ParameterField pfield2 = PaystubCrystalReportViewer.ParameterFieldInfo[2]; 
     ParameterDiscreteValue pfield2val = new ParameterDiscreteValue(); 

     pfield2val.Value = pparms.empno; 
     pfield2.CurrentValues.Add(pfield1val); 
     //------------------------------------------------------------------------- 
     ParameterField pfield3 = PaystubCrystalReportViewer.ParameterFieldInfo[3]; 
     ParameterDiscreteValue pfield3val = new ParameterDiscreteValue(); 

     pfield3val.Value = pparms.periodstart; 
     pfield3.CurrentValues.Add(pfield1val); 



     PaystubCrystalReportSource.ReportDocument.SetParameterValue(0, pfield0.CurrentValues.Add(pfield0val)); 

     ******************************************************************* 
     I have also tried 
     PaystubCrystalReportSource.ReportDocument.SetParameterValue(0, pparms.periodstart); 
     ******************************************************************************* 

     PaystubCrystalReportSource.ReportDocument.SetParameterValue(1, pfield1.CurrentValues.Add(pfield1val)); 
     PaystubCrystalReportSource.ReportDocument.SetParameterValue(2, pfield2.CurrentValues.Add(pfield2val)); 
     PaystubCrystalReportSource.ReportDocument.SetParameterValue(3, pfield3.CurrentValues.Add(pfield3val)); 

     PaystubCrystalReportViewer.ReportSource = PaystubCrystalReportSource; 

    } 

回答

0

確保所有參數都在Crystal預期的類型中。

有時傳遞錯誤類型的參數會導致「缺少參數」錯誤。例如,爲整數參數傳遞一個十進制值。

+0

是的,我在日期參數中犯了一個錯誤。我從那以後把它卡到pparms.periodstart = DateTime.ParseExact(「20120316」,「yyyymmdd」,System.Globalization.CultureInfo.CurrentCulture); pparms.periodend = DateTime.ParseExact(「20120331」,「yyyymmdd」,System.Globalization.CultureInfo.CurrentCulture); – stackuser 2012-04-30 01:46:58

+0

但它沒有解決問題。仍然得到相同的錯誤。 – stackuser 2012-04-30 01:55:15

+0

我的意思是在你的水晶報告中,確保報告期望的參數類型與你在代碼中傳遞給它的類型相同。 – sinelaw 2012-04-30 13:05:00