I have one crystal report where I am using
parameter values to dynamically generate the report on demand and as per the values passed to the parameter.
I am able to see the report in CRV
I am trying to export it to PDF but getting error "Missing parameter values"
Here's my code:
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
Member
84 Points
591 Posts
Missing parameter values
Mar 05, 2012 04:07 AM|sheen_buhay|LINK
I have one crystal report where I am using parameter values to dynamically generate the report on demand and as per the values passed to the parameter.
I am able to see the report in CRV
I am trying to export it to PDF but getting error "Missing parameter values"
Here's my code:
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
ReportDocument reportDoc = getReportDoc();
crvPay.Visible = true;
paramField.Name = "IDNumber";
paramDiscreteValue.Value = tbsearch.Text;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
crvPay.ParameterFieldInfo = paramFields;
crvPay.ReportSource = reportDoc;
crvPay.RefreshReport();
gvPay.Visible = true;
SqlCommand cmd = new SqlCommand("Select * from Payment_Master where IDNumber='" + tbsearch.Text + "'", objConn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
gvPay.DataSource = ds;
gvPay.DataSourceID = String.Empty;
gvPay.DataBind();
try
{
visible();
objConn.Open();
SqlCommand objCmd = new SqlCommand("Select * from Payment_Master where IDNumber='" + tbsearch.Text + "'", objConn);
SqlDataReader dr = objCmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
lbidno.Text = dr["IDNumber"].ToString();
lbprogcode.Text = dr["ProgCode"].ToString();
lbbatchno.Text = dr["BatchNum"].ToString();
}
objConn.Close();
}
else
{
MsBx("No record found for" + " " + tbsearch.Text + "." + "Please try again.");
invisible();
crvPay.Visible = false;
}
objConn.Open();
SqlCommand objStud = new SqlCommand("Select * from StudentMasterFile where IDNumber='" + lbidno.Text + "'", objConn);
SqlDataReader dr2 = objStud.ExecuteReader();
if (dr2.HasRows)
{
while (dr2.Read())
{
lblastname.Text = dr2["Lastname"].ToString();
lbfirstname.Text = dr2["Firstname"].ToString();
lbmname.Text = dr2["Middlename"].ToString();
lbaddr.Text = dr2["ProvincialAddr"].ToString();
}
objConn.Close();
}
TableLogOnInfo tblLogInfo = new TableLogOnInfo();
TableLogOnInfos tblLogInfos = new TableLogOnInfos();
Tables tbles;
ConnectionInfo crConnInfo = new ConnectionInfo()
{
ServerName = "192.168.0.246",
DatabaseName = "DB_CRITH",
UserID = "sa",
Password = "123456",
};
tblLogInfo.ConnectionInfo.ServerName = "192.168.0.246";
tblLogInfo.ConnectionInfo.DatabaseName = "DB_CRITH";
tblLogInfo.ConnectionInfo.UserID = "sa";
tblLogInfo.ConnectionInfo.Password = "123456";
foreach (CrystalDecisions.CrystalReports.Engine.Table tbl in reportDoc.Database.Tables)
{
tbl.ApplyLogOnInfo(tblLogInfo);
var crTblLogOnInfo = new TableLogOnInfo(tbl.LogOnInfo);
crTblLogOnInfo.ConnectionInfo = tblLogInfo.ConnectionInfo;
if (crTblLogOnInfo != tbl.LogOnInfo)
{
tbl.ApplyLogOnInfo(crTblLogOnInfo);
}
}
tbles = reportDoc.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table tbl in tbles)
{
tblLogInfo = tbl.LogOnInfo;
tblLogInfo.ConnectionInfo = crConnInfo;
tbl.ApplyLogOnInfo(tblLogInfo);
}
foreach (CrystalDecisions.CrystalReports.Engine.Section section in reportDoc.ReportDefinition.Sections)
{
foreach (CrystalDecisions.CrystalReports.Engine.ReportObject reportObject in section.ReportObjects)
{
if (reportObject.Kind == ReportObjectKind.SubreportObject)
{
SubreportObject subReport = (SubreportObject)reportObject;
ReportDocument subDocument = subReport.OpenSubreport(subReport.SubreportName);
foreach (CrystalDecisions.CrystalReports.Engine.Table table in subDocument.Database.Tables)
{
tblLogInfo = table.LogOnInfo;
tblLogInfo.ConnectionInfo = crConnInfo;
if (tblLogInfo != table.LogOnInfo)
{
table.ApplyLogOnInfo(tblLogInfo);
}
}
}
}
}
//..............................
//rptDoc.Refresh();
}
catch (Exception ex)
{
MsBx("Error:" + " " + ex.Message);
}
sheenb
Contributor
6711 Points
2334 Posts
Re: Missing parameter values
Mar 06, 2012 12:55 AM|cnranasinghe|LINK
Clicking export button will post back the page again. make sure parameter fields are not empty or bind the report on page load.