简体   繁体   中英

Crystal Reports parameters c#

I'm trying to send parameters to a Crystal Report document but it doesn't work, the document load the default parameters values. the values that I send are the type of the parameters that I've defined in the report document, and the parameter's names are ok. here is my code.

                 ReportDocument crypRpt = new ReportDocument();
                //crLibroDiario Libro = new crLibroDiario();
                crypRpt.Load(@"Path\crDiarioLibro.rpt");

                ParameterFieldDefinitions crParameterFieldDefinitions;
                ParameterFieldDefinition crParamenterFieldDefinition;
                ParameterValues crParameterValues = new ParameterValues();

                ParameterDiscreteValue EmpreSa = new ParameterDiscreteValue();
                ParameterDiscreteValue NoRegistro = new ParameterDiscreteValue();
                ParameterDiscreteValue Nit = new ParameterDiscreteValue();
                ParameterDiscreteValue cuentaS = new ParameterDiscreteValue();
                ParameterDiscreteValue SaldosT = new ParameterDiscreteValue();
                ParameterDiscreteValue AuxiliarT = new ParameterDiscreteValue();
                ParameterDiscreteValue crFperiodo = new ParameterDiscreteValue();
                ParameterDiscreteValue crLperiodo = new ParameterDiscreteValue();

                //Parametro de Nombre de Empresa
                EmpreSa.Value = txt_nomEmpresa.Text;
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["EmpresaEnc"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                //Parametro de No. Registro
                NoRegistro.Value = txt_NoRegistro.Text;
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["NoRegistro"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                //Parametro de Nit
                Nit.Value = txt_nitEmpre.Text;
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["Nit"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                //Parametro de Tabla Cuentas
                cuentaS.Value = "CUENTAS" + cbx_year.SelectedItem.ToString().Substring(2, 2) + cbx_numEmpresa.SelectedItem.ToString();
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["TablaCuentas"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                //Parametro de Tabla Saldos
                SaldosT.Value = "SALDOS" + cbx_year.SelectedItem.ToString().Substring(2, 2) + cbx_numEmpresa.SelectedItem.ToString();
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["TablaSaldos"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                //Parametro de Tabla Auxiliar
                AuxiliarT.Value = "AUXILIAR" + cbx_year.SelectedItem.ToString().Substring(2, 2) + cbx_numEmpresa.SelectedItem.ToString();
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["TableAuxiliar"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                //Parametro de Primer periodo
                Int16 fPeriod = 0;
                Int16 lperiod = 0;
                if (rtbn_MesPeriod.Checked == true)
                {
                    fPeriod = gMonthNumber(cbx_month.SelectedItem.ToString());
                    lperiod = gMonthNumber(cbx_month.SelectedItem.ToString());
                }
                else if(rbtn_rangoPeriod.Checked == true) {
                    fPeriod = gMonthNumber(cbx_firstMonth.SelectedItem.ToString());
                    lperiod = gMonthNumber(cbx_lastMonth.SelectedItem.ToString());

                }
                MessageBox.Show("Mes Primero: "+fPeriod.ToString());
                MessageBox.Show("Mes Segundo: " + lperiod.ToString());
                crFperiodo.Value = fPeriod;
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["firstPeriodo"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                crLperiodo.Value = lperiod;
                crParameterFieldDefinitions = crypRpt.DataDefinition.ParameterFields;
                crParamenterFieldDefinition = crParameterFieldDefinitions["LastPeriodo"];
                crParameterValues = crParamenterFieldDefinition.CurrentValues;

                crParameterValues.Clear();
                crParameterValues.Add(EmpreSa);
                crParameterValues.Add(NoRegistro);
                crParameterValues.Add(Nit);
                crParameterValues.Add(cuentaS);
                crParameterValues.Add(SaldosT);
                crParameterValues.Add(AuxiliarT);
                crParameterValues.Add(crFperiodo);
                crParameterValues.Add(crLperiodo);

                crParamenterFieldDefinition.ApplyCurrentValues(crParameterValues);

                crv_RepLibroDiario.ReportSource = crypRpt;

try this :

    ReportDocument DocumentObjReport = new ReportDocument();

    DocumentObjReport.SetParameterValue("ParameterName",YourParameterValue);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM