public FrmImprime(ReporteParam ReporteActivo)
 {
     InitializeComponent();
     //this.Reporte = Rpt;
     //this.Pref = V_Variable;
     Reporte  = ReporteActivo;
     Pordonde = 1;
     CargaRpt();
 }
 public FrmImprime(ReporteParam ReporteActivo, IWin32Window Form)
 {
     InitializeComponent();
     //this.Reporte = Rpt;
     //this.Pref = V_Variable;
     Reporte    = ReporteActivo;
     Formulario = Form;
     Pordonde   = 2;
     CargaRpt();
 }
        public FrmImprime(ReporteParam ReporteActivo, string NombreImpresora, IWin32Window Form)
        {
            InitializeComponent();
            //this.Reporte = Rpt;
            //this.Pref = V_Variable;
            Reporte = ReporteActivo;
            if (NombreImpresora != null)
            {
                Impresora             = new PrinterSettings();
                Impresora.PrinterName = NombreImpresora;
                // Opciones = new PrintOptions();
                // Opciones.PrinterName = NombreImpresora;

                Pagina = new PageSettings();
                Pagina.PrinterSettings = Impresora;
                Formulario             = Form;
                Pordonde = 2;
            }
            CargaRpt();
        }
        private void CargaRpt()
        {
            reporte = new ReportDocument();
            try
            {
                // ReportDocument reporte = new ReportDocument();
                //reporte.Close();
                //reporte.
                string RutaRpt = Reporte.Ruta_Reporte;// "C:/Reportes/" + Reporte;
                reporte.Load(RutaRpt);

                ConnectionInfo CnnReport = new ConnectionInfo();
                Tables         MyTablas  = reporte.Database.Tables;

                CnnReport.ServerName = Reporte.Base_de_Datos;
                CnnReport.UserID     = Reporte.User_de_Datos;
                CnnReport.Password   = Reporte.Pass_de_Datos;


                foreach (CrystalDecisions.CrystalReports.Engine.Table MyTabla in MyTablas)
                {
                    TableLogOnInfo Tbl_LoginInfo = MyTabla.LogOnInfo;
                    Tbl_LoginInfo.ConnectionInfo = CnnReport;
                    MyTabla.ApplyLogOnInfo(Tbl_LoginInfo);
                }

                ParameterDiscreteValue NewParamVal = new CrystalDecisions.Shared.ParameterDiscreteValue();
                ParameterValues        CurrParamVal;

                //Busca automaticamente tdos los parametros de entrada includo los parametros de los subreportes
                for (int intI = 0; (intI <= reporte.DataDefinition.ParameterFields.Count - 1); intI++)
                {
                    if (reporte.ParameterFields[intI].ReportParameterType != ParameterType.ReportParameter)
                    {
                        string nombre = reporte.DataDefinition.ParameterFields[intI].Name;
                        string X      = reporte.DataDefinition.ParameterFields[intI].ValueType.ToString();
                        NewParamVal.Value       = Reporte.Rpt_RetornaValorParam(nombre);
                        NewParamVal.Description = nombre;
                        CurrParamVal            = reporte.DataDefinition.ParameterFields[intI].CurrentValues;
                        CurrParamVal.Clear();
                        CurrParamVal.Add(NewParamVal);
                        reporte.DataDefinition.ParameterFields[intI].ApplyCurrentValues(CurrParamVal);
                    }
                }

                if (Pordonde == 1)
                {
                    CRV.ReportSource = reporte;  // Asigno los resultados del reporte al Visor de Crystal Report
                }
                else
                {
                    if (Formulario == null)
                    {
                        if (Impresora == null)
                        {
                            reporte.PrintToPrinter(1, false, 0, 0); //copies, collated, startpage, endpage
                        }
                        else
                        {
                            reporte.PrintToPrinter(Impresora, Pagina, false);
                        }
                        return;
                    }
                    else
                    {
                        CRV.ReportSource = reporte;
                        this.Show(Formulario);
                    }
                }
                //reporte.Close();
            }
            catch (Exception er)
            {
                reporte = null;
                Reporte = null;
                MessageBox.Show("Error: " + er.Message);
                return;
            }
        }