public void sp_reporte_porc_closer_liner(bool closer, DateTime fini, DateTime ffin) { conectar(); string sp = closer ? "_SP_volumen_closer" : "_SP_volumen_liner"; SqlCommand cmd = new SqlCommand(sp, con); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandTimeout = 10000; cmd.Parameters.Add("@fechadesde", SqlDbType.DateTime2); cmd.Parameters.Add("@fechahasta", SqlDbType.DateTime2); cmd.Parameters["@fechadesde"].Value = Globales.yyyy_mm_dd_hhmmss_otra(fini, " 00:00"); cmd.Parameters["@fechahasta"].Value = Globales.yyyy_mm_dd_hhmmss_otra(ffin, " 23:59"); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { //------ Creación manual de las columnas del datatable para el reporte -------// dtt = new DataTable(); dtt.Columns.Add("codigo", typeof(String)); dtt.Columns.Add("nombre", typeof(String)); dtt.Columns.Add("q", typeof(Int32)); dtt.Columns.Add("nq", typeof(Int32)); dtt.Columns.Add("nt", typeof(Int32)); dtt.Columns.Add("total", typeof(Int32)); dtt.Columns.Add("procs", typeof(Int32)); dtt.Columns.Add("pend", typeof(Int32)); DataColumn colDecimal = new DataColumn("volumen"); colDecimal.DataType = System.Type.GetType("System.Double"); dtt.Columns.Add(colDecimal); //------ Creación manual de las columnas del datatable de totales para el reporte -------// dtt_aux = new DataTable(); dtt_aux.Columns.Add("q", typeof(Int32)); dtt_aux.Columns.Add("nq", typeof(Int32)); dtt_aux.Columns.Add("nt", typeof(Int32)); dtt_aux.Columns.Add("total", typeof(Int32)); DataColumn colDecimal2 = new DataColumn("volumen"); colDecimal2.DataType = System.Type.GetType("System.Double"); dtt_aux.Columns.Add(colDecimal2); int q, nq, nt, total; decimal volumen; q = nq = nt = total = 0; volumen = 0; while (dr.Read()) { DataRow rw = dtt.NewRow(); rw["codigo"] = dr.GetString(0).Trim(new char[] { ' ' }); rw["nombre"] = dr.GetString(1).Trim(new char[] { ' ' }); rw["q"] = dr.GetInt32(2); rw["nq"] = dr.GetInt32(3); rw["nt"] = dr.GetInt32(4); rw["total"] = dr.GetInt32(5); rw["procs"] = dr.GetInt32(8); rw["pend"] = dr.GetInt32(9); rw["volumen"] = dr.GetDecimal(10); q += dr.GetInt32(2); nq += dr.GetInt32(3); nt += dr.GetInt32(4); total += dr.GetInt32(4) + dr.GetInt32(5); volumen += dr.GetDecimal(10); dtt.Rows.Add(rw); } DataRow sum = dtt_aux.NewRow(); sum["q"] = q; sum["nq"] = nq; sum["nt"] = nt; sum["total"] = total; sum["volumen"] = volumen; dtt_aux.Rows.Add(sum); } cerrar(); }
private void btnConsultar_Click(object sender, EventArgs e) { if (dtpFechaDesde.Value > dtpFechaHasta.Value) { MessageBox.Show("La fecha inicial no puede ser mayor que la fecha final", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int prog = -1; string cadprog = ""; int loc = -1; if (cmbPrograma.SelectedIndex >= 0) { prog = Convert.ToInt32(cmbPrograma.SelectedValue); cadprog = cmbPrograma.Text; } if (cmbLocacion.SelectedIndex >= 0) { loc = Convert.ToInt32(cmbLocacion.SelectedValue); } List <Clases.Parameters> Parametros = new List <Clases.Parameters>(); Parametros.Add(new Clases.Parameters { nameValue = "@fechadesde", Valor = Globales.yyyy_mm_dd_hhmmss_otra(dtpFechaDesde.Value, " 00:00") }); Parametros.Add(new Clases.Parameters { nameValue = "@fechahasta", Valor = Globales.yyyy_mm_dd_hhmmss_otra(dtpFechaHasta.Value, " 23:59") }); Parametros.Add(new Clases.Parameters { nameValue = "@codprogd", Valor = prog }); Parametros.Add(new Clases.Parameters { nameValue = "@codprogh", Valor = prog }); Parametros.Add(new Clases.Parameters { nameValue = "@progd", Valor = cadprog }); Parametros.Add(new Clases.Parameters { nameValue = "@progh", Valor = cadprog }); Parametros.Add(new Clases.Parameters { nameValue = "@locd", Valor = loc }); Parametros.Add(new Clases.Parameters { nameValue = "@loch", Valor = loc }); DataTable resultado = Globales.BD.generar_datatable("_SP_volumen_opc_detallada", CommandType.StoredProcedure, Parametros); if (resultado.Rows.Count == 0) { MessageBox.Show("No hubo coincidencias con los parámetros establecidos", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { string lc = loc == -1 ? "SIN ESPECIFICAR" : cmbLocacion.Text; string dir = Application.StartupPath.Replace("\\bin\\Debug", ""); rpvwVolOPC.LocalReport.ReportPath = dir + "\\Reportes\\rptVolOPCDet.rdlc"; rpvwVolOPC.LocalReport.DataSources.Clear(); rpvwVolOPC.LocalReport.DataSources.Add(new ReportDataSource("dsVOPCDet", resultado));//Conjunto de Datos (Ver Datos de Informe en el archivo .rdlc) ReportParameter[] parVolOPC = new ReportParameter[5]; parVolOPC[0] = new ReportParameter("FechaInicio", dtpFechaDesde.Value.ToShortDateString()); parVolOPC[1] = new ReportParameter("FechaFin", dtpFechaHasta.Value.ToShortDateString()); parVolOPC[2] = new ReportParameter("Programa", cmbPrograma.Text == "" ? "SIN ESPECIFICAR" : cmbPrograma.Text); parVolOPC[3] = new ReportParameter("Locacion", lc); parVolOPC[4] = new ReportParameter("Fecha", DateTime.Now.ToShortDateString()); rpvwVolOPC.LocalReport.SetParameters(parVolOPC); rpvwVolOPC.RefreshReport(); } }