Missing Parameter values in Crystal reports

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • chamarajanaka
    New Member
    • Jul 2010
    • 9

    Missing Parameter values in Crystal reports

    When i run the page i'm getting a message showing."Missin g Parameter values" and want display the report. i've used following formula
    Code:
    Year ({tbl_DisasterRegistration.Date})  =  Year (CurrentDate)  - {?@YearCount}
    By right click on the report...Report->Selection Formula->Record

    my code is used in DropDownList1_S electedIndexCha nged

    Code:
    ReportDocument crystalReport = new ReportDocument();
                crystalReport.Load(Server.MapPath(@"/Presentation Layer/Reports/YearlyStatistics.rpt"));
                crystalReport.SetDatabaseLogon("", "", "XPWINDOWS7\\SQLEXPRESS", "PODRAS_MS");
                ParameterFieldDefinitions crParameterFieldDefinitions;
                ParameterFieldDefinition crParameterFieldDefinition;
    
                ParameterValues crParameterValues = new ParameterValues();
                ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
    
                
                crParameterDiscreteValue.Value = Convert.ToInt32(DropDownList1.SelectedItem.Value);
                crParameterFieldDefinitions = crystalReport.DataDefinition.ParameterFields;
                crParameterFieldDefinition = crParameterFieldDefinitions["@YearCount"];
                crParameterValues = crParameterFieldDefinition.CurrentValues;
    
                crParameterValues.Clear();
                crParameterValues.Add(crParameterDiscreteValue);
                crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
    
                CrystalReportViewer1.ReportSource = crystalReport;
                CrystalReportViewer1.RefreshReport();
    i also tried this on page load event by giving
    Code:
    crParameterDiscreteValue.Value =1
    same error occurs???

    can anyone help???
  • Jyoti Ballabh
    Banned
    New Member
    • Jul 2010
    • 115

    #2
    maybe, you need to reset the parameter as follows-

    Code:
    ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
    ParameterRangeValue rangeVal = new ParameterRangeValue();
    ParameterValues curvalues = new ParameterValues();
    foreach (ParameterFieldDefinition parafld in 
                 crReport.DataDefinition.ParameterFields)
    {
      if (parafld.DiscreteOrRangeKind.ToString() == "DiscreteValue")
      {
        discreteVal.Value =
    
               Request.QueryString[parafld.ParameterFieldName];
        if (discreteVal.Value != null)
        {
          curvalues.Add(discreteVal);
          parafld.ApplyCurrentValues(curvalues);
        }
      }
    
    }
    Last edited by Niheel; Jul 26 '10, 05:28 AM. Reason: Jyoti, quick reminder, code tags for displaying code [code] . . . [/code]

    Comment

    • cr4sh
      Banned
      New Member
      • Jul 2010
      • 20

      #3
      your approach to the whole problem is great. have a look at the parameter sequencing in the code below.....

      Code:
      Dim objReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument
      Dim ConInfo As New CrystalDecisions.Shared.TableLogOnInfo
      Dim paraValue As New CrystalDecisions.Shared.ParameterDiscreteValue
      Dim currValue As CrystalDecisions.Shared.ParameterValues
      Dim sParValPair() As String
      Dim sValue() As String
      Dim iIndex As Integer
      Dim crFieldDef As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions
      Dim crFieldLoc As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition
      ConInfo.ConnectionInfo.ServerName = modLibrary.m_sDATASOURCE
      ConInfo.ConnectionInfo.DatabaseName = modLibrary.m_sDATABASE
      ConInfo.ConnectionInfo.IntegratedSecurity = True
      objReport.Database.Tables(intCounter).ApplyLogOnInfo(ConInfo)
      crFieldDef = objReport.DataDefinition.ParameterFields
      sParValPair = sParam.Split(";")
      For iIndex = 0 To UBound(sParValPair)
         If InStr(sParValPair(iIndex), "=") > 0 Then
            sValue = sParValPair(iIndex).Split("=")
            crFieldLoc = crFieldDef.Item(sValue(0))
            currValue = crFieldLoc.CurrentValues
            paraValue.Value = sValue(1)
            currValue.Add(paraValue)
            crFieldLoc.ApplyCurrentValues(currValue)
         End If
      Next iIndex
      Last edited by Niheel; Jul 26 '10, 05:29 AM. Reason: code tags for displaying code [code] . . . [/code] thanks, :)

      Comment

      • chamarajanaka
        New Member
        • Jul 2010
        • 9

        #4
        Thanks for the replies problem was resolved by removing
        Code:
        CrystalReportViewer1.RefreshReport();

        Comment

        Working...