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;
            }
        }