private VistaPrevia _GenerarReporte() { if (txtAnio.Text.Trim() == "" || txtAnio.Text.Trim().Length < 4) { throw new Exception("No se ha cargado un Año válido de consulta."); } if (txtCurso.Text.Trim() != "") { DataRow WCurso = (new Curso())._BuscarCurso(txtCurso.Text, "Codigo"); if (WCurso == null) { throw new Exception("No se ha cargado un Curso válido de consulta."); } } if (txtLegajo.Text.Trim() != "") { DataTable WLegajo = (new Legajo())._BuscarLegajo(txtLegajo.Text, "Codigo"); if (WLegajo.Rows.Count == 0) { throw new Exception("No se ha cargado un Legajo válido de consulta."); } } /* * Recalculamos los datos a imprimir. */ Helper.ActualizarCantidadPersonasHoras("01/06/" + txtAnio.Text, "31/05/" + (int.Parse(txtAnio.Text) + 1)); Helper.ActualizarHorasRealizadas(txtAnio.Text); string WFormula = "{Cronograma.Ano}=" + txtAnio.Text + " AND {Legajo.Renglon} = 1 "; if (txtCurso.Text.Trim() != "" && rbPorCurso.Checked) { WFormula += " AND {Cronograma.Curso} = " + txtCurso.Text + ""; } if (txtLegajo.Text.Trim() != "") { WFormula += " AND {Legajo.Codigo} = " + txtLegajo.Text + ""; } if (cmbTipo.SelectedIndex == 1 && rbPorCurso.Checked) { WFormula += " AND {Cronograma.Realizado} >= {Tema.Horas}"; } if (cmbTipo.SelectedIndex == 2 && rbPorCurso.Checked) { WFormula += " AND {Cronograma.Realizado} < {Tema.Horas}"; } if (cmbSector.SelectedIndex > 0 && txtLegajo.Text.Trim() == "") { DataRowView r = (DataRowView)cmbSector.SelectedItem; if (r != null) { WFormula += " And {Legajo.Sector} = " + r["Codigo"]; } } VistaPrevia frm = new VistaPrevia(); ReportDocument rpt = rbPorCurso.Checked ? (ReportDocument) new ReporteInformeHorasRealizadasyProgramadasPorCurso() : new ReporteInformeHorasRealizadasyProgramadasPorLegajo(); if (rbPorLegajo.Checked) { double[] Totales = _TraerTotalPersonas(); rpt.SetParameterValue("TotalPersonas", Totales[0]); rpt.SetParameterValue("HorasTotales", Totales[1]); rpt.SetParameterValue("RealizadosTotales", Totales[2]); rpt.SetParameterValue("Todos", cmbTipo.SelectedIndex == 0); rpt.SetParameterValue("SoloCumplidos", cmbTipo.SelectedIndex == 1); rpt.SetParameterValue("SoloPendientes", cmbTipo.SelectedIndex == 2); } frm.CargarReporte(rpt, WFormula); return(frm); }