コード例 #1
0
        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();
        }
コード例 #2
0
        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();
            }
        }