private string cargarCriterios(int nDesde, int nHasta)
    {
        StringBuilder sb = new StringBuilder();
        int           i  = 0;

        try
        {
            /*
             * t -> tipo
             * c -> codigo
             * d -> denominacion
             * */
            SqlDataReader dr = ConsultasPGE.ObtenerProfesionalesCRCriterios((int)Session["UsuarioActual"], Constantes.nNumElementosMaxCriterios);
            while (dr.Read())
            {
                if ((int)dr["codigo"] == -1)
                {
                    sb.Append("\tjs_cri[" + i + "] = {\"t\":" + dr["tipo"].ToString() + ",\"excede\":1};\n");
                }
                else
                {
                    sb.Append("\tjs_cri[" + i + "] = {\"t\":" + dr["tipo"].ToString() + ",\"c\":" + dr["codigo"].ToString() + ",\"d\":\"" + Utilidades.escape(dr["denominacion"].ToString().Replace((char)34, (char)39)) + "\"};\n");
                }
                i++;
            }
            dr.Close();
            dr.Dispose();

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al cargar los criterios", ex));
        }
    }
    private string getDatos(int nNodo, int nAnno)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = ConsultasPGE.ObtenerDatosResumidosGraficosNodo(nNodo, nAnno);
            while (dr.Read())
            {
                sb.Append(dr["T325_ANOMES"].ToString() + "##");
                sb.Append(dr["Ingresos_Netos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Margen"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Obra_en_curso"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Saldo_de_Clientes"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Total_Cobros"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Total_Ingresos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Volumen_de_Negocio"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Total_consumos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Ratio"].ToString().Replace(",", ".") + "///");
            }
            dr.Close();
            dr.Dispose();

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos", ex));
        }
    }
    private string obtenerDatos(string sNivelEstructura,
                                string sSituacionGarantia, string sNDiasGarantia,
                                string sClientes, string sResponsables, string sNaturalezas, string sModeloContrato, string sContrato,
                                string sIDEstructura
                                )
    {
        StringBuilder sb = new StringBuilder();

        #region Cabecera tabla HTML
        sb.Append(@"<table id='tblDatos' class='MA' style='width: 960px;'>
                    <colgroup>
                        <col style='width:20px;' />
                        <col style='width:60px;' />
	                    <col style='width:200px;' />
	                    <col style='width:200px;' />
	                    <col style='width:200px;' />
	                    <col style='width:90px;' />
	                    <col style='width:90px;' />
                    </colgroup>");

        #endregion

        SqlDataReader dr = ConsultasPGE.ObtenerGarantias(
            (int)Session["UsuarioActual"],
            (sNivelEstructura == "0") ? null : (int?)int.Parse(sNivelEstructura),
            sSituacionGarantia,
            int.Parse(sNDiasGarantia),
            sClientes,
            sResponsables,
            sNaturalezas,
            sModeloContrato,
            sContrato,
            sIDEstructura
            );

        while (dr.Read())
        {
            sb.Append("<tr ");
            sb.Append("id='" + dr["t305_idproyectosubnodo"].ToString() + "' ");
            sb.Append("categoria='" + dr["t301_categoria"].ToString() + "' ");
            //string sTooltip = "<label style=width:70px;>Proyecto:</label>" + ((int)dr["t301_idproyecto"]).ToString("#,###") + " - " + dr["t301_denominacion"].ToString() + "<br><label style=width:70px;>Responsable:</label>" + dr["Responsable"].ToString() + "<br><label style=width:70px;>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString() + "<br><label style=width:70px;>Cliente:</label>" + dr["t302_denominacion"].ToString();
            //sb.Append("tooltip=\"" + Utilidades.escape(sTooltip) + "\" ");
            sb.Append(">");

            sb.Append("<td></td>");
            sb.Append("<td style='text-align:right; padding-right:5px;'>" + ((int)dr["t301_idproyecto"]).ToString("#,###") + "</td>");
            sb.Append("<td><nobr class='NBR W190'>" + dr["t301_denominacion"].ToString() + "</nobr></td>");
            sb.Append("<td><nobr class='NBR W190'>" + dr["responsable_proyecto"].ToString() + "</nobr></td>");
            sb.Append("<td><nobr class='NBR W190'>" + dr["t302_denominacion"].ToString() + "</nobr></td>");
            sb.Append("<td>" + ((dr["t301_iniciogar"] == DBNull.Value) ? "" : ((DateTime)dr["t301_iniciogar"]).ToShortDateString()) + "</td>");
            sb.Append("<td>" + ((dr["t301_fingar"] == DBNull.Value) ? "" : ((DateTime)dr["t301_fingar"]).ToShortDateString()) + "</td>");
            sb.Append("</tr>");
        }
        dr.Close();
        dr.Dispose();

        sb.Append("</table>");
        return("OK@#@" + sb.ToString());
    }
Пример #4
0
    private string cargarCriterios(string sDesde, string sHasta)
    {
        StringBuilder sb = new StringBuilder();
        int           nDesde = 0, nHasta = 0;
        int           i = 0;

        try
        {
            /*
             * t -> tipo
             * c -> codigo
             * d -> denominacion
             * ///datos auxiliares para el catálogo de proyecto (16)
             * a -> categoria
             * u -> cualidad
             * e -> estado
             * l -> cliente
             * n -> nodo
             * r -> responsable
             * */
            if (sDesde != "")
            {
                nDesde = int.Parse(sDesde);
            }
            if (sHasta != "")
            {
                nHasta = int.Parse(sDesde);
            }
            SqlDataReader dr = ConsultasPGE.ObtenerCombosDatosResumidosCriterios((int)Session["UsuarioActual"], nDesde, nHasta, Constantes.nNumElementosMaxCriterios);
            while (dr.Read())
            {
                if ((int)dr["codigo"] == -1)
                {
                    sb.Append("\tjs_cri[" + i + "] = {\"t\":" + dr["tipo"].ToString() + ",\"excede\":1};\n");
                }
                else
                {
                    if ((int)dr["tipo"] == 16)
                    {
                        sb.Append("\tjs_cri[" + i + "] = {\"t\":" + dr["tipo"].ToString() + ",\"c\":" + dr["codigo"].ToString() + ",\"d\":\"" + Utilidades.escape(dr["denominacion"].ToString().Replace((char)34, (char)39)) + "\",\"p\":\"" + dr["t301_idproyecto"].ToString() + "\",\"a\":\"" + dr["t301_categoria"].ToString() + "\",\"u\":\"" + dr["t305_cualidad"].ToString() + "\",\"e\":\"" + dr["t301_estado"].ToString() + "\",\"l\":\"" + dr["t302_denominacion"].ToString() + "\",\"n\":\"" + dr["t303_denominacion"].ToString() + "\",\"r\":\"" + dr["Responsable"].ToString() + "\"};\n");
                    }
                    else
                    {
                        sb.Append("\tjs_cri[" + i + "] = {\"t\":" + dr["tipo"].ToString() + ",\"c\":" + dr["codigo"].ToString() + ",\"d\":\"" + Utilidades.escape(dr["denominacion"].ToString().Replace((char)34, (char)39)) + "\"};\n");
                    }
                }
                i++;
            }
            dr.Close();
            dr.Dispose();

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al cargar los criterios", ex));
        }
    }
    private string obtenerDatos(string sEstado, string sDesde, string sHasta, string sNivelEstructura,
                                string sCategoria, string sCualidad, string sIDProyecto, string sClientes,
                                string sResponsables, string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica, string sNivelIndentacion,
                                string sCNP, string sCSN1P, string sCSN2P, string sCSN3P, string sCSN4P, string sPSN, string sOrgComercial)
    {
        //int nNivelIndentacion = int.Parse(sNivelIndentacion) + 1;
        int           nWidthTabla = 3020;// 2550;
        StringBuilder sb          = new StringBuilder();

        try
        {
            //Añado espacio para las columnas de la superestructura que está activa
            if (Utilidades.EstructuraActiva("SN4"))
            {
                nEstructuraMinima = 1;
            }
            else if (Utilidades.EstructuraActiva("SN3"))
            {
                nEstructuraMinima = 2;
            }
            else if (Utilidades.EstructuraActiva("SN2"))
            {
                nEstructuraMinima = 3;
            }
            else if (Utilidades.EstructuraActiva("SN1"))
            {
                nEstructuraMinima = 4;
            }
            nWidthTabla += 300 * (5 - nEstructuraMinima);

            //if (sNivelIndentacion == "1")
            //{
            sb.Append("<table id='tblDatos' class='texto' style='font-size:10px;width:" + nWidthTabla.ToString() + "px;'>");
            sb.Append("<colgroup>");
            if (Utilidades.EstructuraActiva("SN4"))
            {
                sb.Append("<col style='width:300px;' />");                                        //SNN4
            }
            if (Utilidades.EstructuraActiva("SN3"))
            {
                sb.Append("<col style='width:300px;' />");                                        //SNN3
            }
            if (Utilidades.EstructuraActiva("SN2"))
            {
                sb.Append("<col style='width:300px;' />");                                        //negocio
            }
            if (Utilidades.EstructuraActiva("SN1"))
            {
                sb.Append("<col style='width:300px;' />"); //linea
            }
            sb.Append("<col style='width:300px;' />");     //nodo
            //sb.Append("<col style='width:200px; text-align:right;' />");//area (subnodo)
            sb.Append("<col style='width:300px;' />");     //area (subnodo)
            sb.Append("<col style='width:400px;' />");     //cliente
            sb.Append("<col style='width:50px;' />");      //numero contrato
            sb.Append("<col style='width:300px;' />");     //contrato
            sb.Append("<col style='width:50px;' />");      //numero proyecto
            sb.Append("<col style='width:500px;' />");     //nombre proyecto
            sb.Append("<col style='width:100px;' />");     //tipo (producto / servicio)
            sb.Append("<col style='width:200px;' />");     //modelo de contratacion
            sb.Append("<col style='width:100px;' />");     //estado
            sb.Append("<col style='width:200px;' />");     //tipología
            sb.Append("<col style='width:300px;' />");     //naturaleza de producción
            sb.Append("<col style='width:400px;' />");     //responsable
            sb.Append("<col style='width:400px;' />");     //comercial
            sb.Append("<col style='width:200px;' />");     //cualificador
            sb.Append("<col style='width:400px;' />");     //motivo visión
            sb.Append("<col style='width:400px;' />");     //organización comercial
            sb.Append("<col style='width:70px;' />");      //Código NLO
            sb.Append("<col style='width:400px;' />");     //Denominación NLO
            sb.Append("</colgroup>");
            //}
            sb.Append("<TR style='background-color: #BCD4DF;'>");
            if (Utilidades.EstructuraActiva("SN4"))
            {
                sb.Append("<td style='padding-left:2px;'>" + Estructura.getDefLarga(Estructura.sTipoElem.SUPERNODO4) + "</TD>");
            }
            if (Utilidades.EstructuraActiva("SN3"))
            {
                sb.Append("<td style='padding-left:2px;'>" + Estructura.getDefLarga(Estructura.sTipoElem.SUPERNODO3) + "</TD>");
            }
            if (Utilidades.EstructuraActiva("SN2"))
            {
                sb.Append("<td style='padding-left:2px;'>" + Estructura.getDefLarga(Estructura.sTipoElem.SUPERNODO2) + "</TD>");
            }
            if (Utilidades.EstructuraActiva("SN1"))
            {
                sb.Append("<td style='padding-left:2px;'>" + Estructura.getDefLarga(Estructura.sTipoElem.SUPERNODO1) + "</TD>");
            }
            sb.Append("<td style='padding-left:2px;'>" + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + "</TD>");
            sb.Append("<td style='padding-left:2px;'>" + Estructura.getDefLarga(Estructura.sTipoElem.SUBNODO) + "</TD>");
            sb.Append("<td>Cliente</TD><td style='text-align:right;'>Nº</TD><td>Contrato</TD><td style='text-align:right;'>NºProy.</TD><td>Proyecto</TD><td>Tipo</TD><td>Modelo contratación</TD>");
            sb.Append("<td>Estado</TD><td>Tipología</TD><td>Naturaleza de producción</TD><td>Responsable</TD><td>Comercial</TD><td>Cualificador de ventas</td><td>Motivo visión del proyecto</TD><td>Organización comercial</TD>");
            sb.Append("<td>Código NLO</td><td>Nueva Línea de Oferta</td>");

            sb.Append("</TR>");

            SqlDataReader dr = ConsultasPGE.InformeProyectosAsignados(sEstado,
                                                                      (int)Session["UsuarioActual"],
                                                                      int.Parse(sDesde), int.Parse(sHasta),
                                                                      (sNivelEstructura == "0")? null:(int?)int.Parse(sNivelEstructura),
                                                                      sCategoria,
                                                                      sCualidad,
                                                                      (sIDProyecto == "")? null:(int?)int.Parse(sIDProyecto),
                                                                      sClientes,
                                                                      sResponsables,
                                                                      sNaturalezas,
                                                                      sHorizontal,
                                                                      sModeloContrato,
                                                                      sContrato,
                                                                      sIDEstructura,
                                                                      sSectores,
                                                                      sSegmentos,
                                                                      (sComparacionLogica == "1")? true:false,
                                                                      sCNP,
                                                                      sCSN1P,
                                                                      sCSN2P,
                                                                      sCSN3P,
                                                                      sCSN4P,
                                                                      sPSN,
                                                                      sOrgComercial);

            while (dr.Read())
            {
                sb.Append("<tr style='height:18px;'><td style='padding-left:2px;'>");
                if (Utilidades.EstructuraActiva("SN4"))
                {
                    sb.Append(dr["t394_denominacion"].ToString());
                    sb.Append("</td><td style='padding-left:2px;'>");
                }
                if (Utilidades.EstructuraActiva("SN3"))
                {
                    sb.Append(dr["t393_denominacion"].ToString());
                    sb.Append("</td><td style='padding-left:2px;'>");
                }
                if (Utilidades.EstructuraActiva("SN2"))
                {
                    sb.Append(dr["t392_denominacion"].ToString());//negocio
                    sb.Append("</td><td style='padding-left:2px;'>");
                }
                if (Utilidades.EstructuraActiva("SN1"))
                {
                    sb.Append(dr["t391_denominacion"].ToString());//linea
                    sb.Append("</td><td style='padding-left:2px;'>");
                }
                sb.Append(dr["t303_denominacion"].ToString());
                sb.Append("</td><td style='padding-left:2px;'>");
                sb.Append(dr["t304_denominacion"].ToString());
                sb.Append("</td><td style='padding-left:2px;'>");
                sb.Append(dr["t302_denominacion"].ToString());
                sb.Append("</td><td style='text-align:right;'>");
                if (dr["t306_idcontrato"] != DBNull.Value)
                {
                    sb.Append(int.Parse(dr["t306_idcontrato"].ToString()).ToString("#,###"));
                }
                sb.Append("</td><td>");
                sb.Append(dr["t377_denominacion"].ToString());//contrato
                sb.Append("</td><td style='text-align:right;'>");
                sb.Append(int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###"));
                sb.Append("</td><td>");
                sb.Append(dr["t301_denominacion"].ToString());
                sb.Append("</td><td>");
                sb.Append(dr["t301_categoria"].ToString());    //Tipo: producto o servicio
                sb.Append("</td><td>");
                sb.Append(dr["t316_denominacion"].ToString()); //modelo
                sb.Append("</td><td>");
                sb.Append(dr["t301_estado"].ToString());
                sb.Append("</td><td>");
                sb.Append(dr["t320_denominacion"].ToString()); //Tipologia
                sb.Append("</td><td>");
                sb.Append(dr["t323_denominacion"].ToString()); //naturaleza
                sb.Append("</td><td>");
                sb.Append(dr["responsable_proyecto"].ToString());
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(dr["comercial_hermes"].ToString());//Organización comercial
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(dr["t055_denominacion"].ToString());//Cualificador
                sb.Append("</td>");
                sb.Append("<td>");
                sb.Append(dr["motivo_vision"].ToString());
                sb.Append("</td><td>");
                sb.Append(dr["ta212_denominacion"].ToString());//Organización comercial
                //NLO
                sb.Append("</td><td style='text-align:right;'>");
                if (dr["t195_codigoexterno"] != DBNull.Value)
                {
                    sb.Append(int.Parse(dr["t195_codigoexterno"].ToString()).ToString("#,###"));
                }
                sb.Append("</td><td>");
                sb.Append(dr["t195_denominacion"].ToString());//nUEVA lÍNEA DE oFERTA
                sb.Append("<td>");

                sb.Append("</tr>");
            }
            dr.Close();
            dr.Dispose();

            sb.Append("</table>");
            string sIdCache = "EXCEL_CACHE_" + Session["IDFICEPI_ENTRADA"].ToString() + "_" + DateTime.Now.ToString();
            Session[sIdCache] = sb.ToString();;

            return("OK@#@cacheado@#@" + sIdCache + "@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos.", ex));
        }
    }
    private string obtenerDatos(string sDesde, string sHasta, string sNivelEstructura,
                                string sCategoria, string sCualidad, string sClientes,
                                string sResponsables, string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica,
                                string sCNP, string sCSN1P, string sCSN2P, string sCSN3P, string sCSN4P, string sPSN)
    {
        int           nWidthTabla     = 470; //370+100
        int           nColumnasACrear = 0;
        StringBuilder sb = new StringBuilder();
        StringBuilder sbColgroupTitulo = new StringBuilder();
        StringBuilder sbTitulo         = new StringBuilder();
        StringBuilder sbResultado      = new StringBuilder();
        string        sTablaTitulo     = "";
        string        sTablaContenido  = "";
        string        sTablaResultado  = "";
        decimal       nRatio           = 0;

        string sColor = "";

        try
        {
            sbColgroupTitulo.Append("<colgroup>");
            sbColgroupTitulo.Append("<col style='width:350px;' />");
            sbColgroupTitulo.Append("<col style='width:120px;' />");

            DataSet ds = ConsultasPGE.ObtenerDatosFichaEconomica((int)Session["UsuarioActual"],
                                                                 int.Parse(sDesde), int.Parse(sHasta),
                                                                 (sNivelEstructura == "0")? null:(int?)int.Parse(sNivelEstructura),
                                                                 sCategoria,
                                                                 sCualidad,
                                                                 sClientes,
                                                                 sResponsables,
                                                                 sNaturalezas,
                                                                 sHorizontal,
                                                                 sModeloContrato,
                                                                 sContrato,
                                                                 sIDEstructura,
                                                                 sSectores,
                                                                 sSegmentos,
                                                                 (sComparacionLogica == "1")? true:false,
                                                                 sCNP,
                                                                 sCSN1P,
                                                                 sCSN2P,
                                                                 sCSN3P,
                                                                 sCSN4P,
                                                                 sPSN,
                                                                 Session["MONEDA_VDC"].ToString()
                                                                 );

            bool bTitulos = false;
            int  i        = 0;
            foreach (DataRow oFila in ds.Tables[0].Rows)
            {
                if (!bTitulos)
                {
                    sbTitulo.Append("<tr class='TBLINI'>");
                    sbTitulo.Append("<td></td>");
                    for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                    {
                        if (x == 4)
                        {
                            string[] aNomMeses = Regex.Split(ds.Tables[0].Columns[x].ColumnName, "-");
                            sbTitulo.Append("<td>");
                            sbTitulo.Append(Fechas.AnnomesAFechaDescCorta(int.Parse(aNomMeses[0].ToString())));
                            sbTitulo.Append(" - ");
                            sbTitulo.Append(Fechas.AnnomesAFechaDescCorta(int.Parse(aNomMeses[1].ToString())));
                            sbTitulo.Append("</td>");
                        }
                        else
                        {
                            sbColgroupTitulo.Append("<col style='width:100px;' />");
                            sbTitulo.Append("<td>" + Fechas.AnnomesAFechaDescLarga(int.Parse(ds.Tables[0].Columns[x].ColumnName)) + "</td>");
                            nColumnasACrear++;
                        }
                    }
                    sbTitulo.Append("</tr>");
                    bTitulos = true;
                }

                if (oFila["t454_idformula"].ToString() != "3" &&
                    oFila["t454_idformula"].ToString() != "1" &&
                    oFila["t454_idformula"].ToString() != "2" &&
                    oFila["t454_idformula"].ToString() != "8"
                    )
                {
                    switch (oFila["nivel"].ToString())
                    {
                    case "1":
                        sb.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' ");
                        //sb.Append(" style='display:block; height: 20px' nivel='1' desplegado='1'>");
                        sb.Append(" style='display:table-row; height: 20px' nivel='1' desplegado='1'>");
                        if (oFila["t454_idformula"].ToString() != "5")
                        {
                            sb.Append("<td style='text-align:left;'><IMG class=NSEG1 onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;'>");
                        }
                        else
                        {
                            sb.Append("<td style='text-align:left;'><IMG class=NSEG1 src='../../../../images/imgSeparador.gif' style='width:9px;'>");
                        }

                        sb.Append("<nobr class='NBR' style='width:320px;'>" + oFila["t454_literal"].ToString() + "</nobr></td>");
                        break;

                    case "2":
                        sb.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' ");
                        sb.Append(" style='display:none; height: 20px' nivel='2' desplegado='1'>");
                        if (oFila["t454_idformula"].ToString() == "33" || oFila["t454_idformula"].ToString() == "34")
                        {
                            sb.Append("<td style='text-align:left;'><IMG class=NSEG2 onclick=mostrar(this) src='../../../../images/plus.gif' style='cursor:pointer;'>");
                        }
                        else
                        {
                            sb.Append("<td style='text-align:left;'><IMG class=NSEG2 src='../../../../images/imgSeparador.gif' style='width:9px;'>");
                        }

                        sb.Append("<nobr class='NBR' style='width:300px;'>" + oFila["t454_literal"].ToString() + "</nobr></td>");
                        break;

                    case "3":
                        sb.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' ");
                        sb.Append(" style='display:none; height:20px;' nivel='3'>");
                        sb.Append("<td style='text-align:left;'><IMG class=NSEG3 src='../../../../images/imgSeparador.gif'>");
                        sb.Append("<nobr class='NBR' style='width:280px;'>" + oFila["t454_literal"].ToString() + "</nobr></td>");
                        break;
                    }

                    for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                    {
                        if (decimal.Parse(oFila.ItemArray[x].ToString()) < 0)
                        {
                            sColor = "red";
                        }
                        else
                        {
                            sColor = "black";
                        }
                        sb.Append("<td style='color:" + sColor + "'>" + decimal.Parse(oFila.ItemArray[x].ToString()).ToString("N") + "</td>");
                    }
                    sb.Append("</tr>");
                }
                else
                {
                    if (oFila["t454_idformula"].ToString() == "8")
                    {
                        sbResultado.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' style='height:17px' class='TBLFIN'>");
                        sbResultado.Append("<td style='text-align:left;'><nobr class='NBR W320 NSEG1'>Ratio</nobr></td>");
                        for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                        {
                            if (decimal.Parse(oFila.ItemArray[x].ToString()) == 0)
                            {
                                nRatio = 0;
                            }
                            else
                            {
                                nRatio = decimal.Parse(ds.Tables[0].Rows[i - 1].ItemArray[x].ToString()) * 100 / decimal.Parse(oFila.ItemArray[x].ToString());
                            }
                            if (nRatio < 0)
                            {
                                sColor = "red";
                            }
                            else
                            {
                                sColor = "black";
                            }
                            sbResultado.Append("<td style='color:" + sColor + "'>" + nRatio.ToString("N") + " %</td>");
                        }
                        sbResultado.Append("</tr>");
                    }
                    else
                    {
                        sbResultado.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' style='HEIGHT: 17px' class='TBLFIN'>");
                        if (oFila["t454_idformula"].ToString() == "3")
                        {
                            sbResultado.Append("<td style='text-align:left;'><nobr class='NSEG1'>" + oFila["t454_literal"].ToString() + " / </nobr><span style='color:red'>Facturación anticipada</span></td>");
                        }
                        else
                        {
                            sbResultado.Append("<td style='text-align:left;'><nobr class='NBR W320 NSEG1'>" + oFila["t454_literal"].ToString() + "</nobr></td>");
                        }
                        for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                        {
                            if (decimal.Parse(oFila.ItemArray[x].ToString()) < 0)
                            {
                                sColor = "red";
                            }
                            else
                            {
                                sColor = "black";
                            }
                            sbResultado.Append("<td style='color:" + sColor + "'>" + decimal.Parse(oFila.ItemArray[x].ToString()).ToString("N") + "</td>");
                        }
                        sbResultado.Append("</tr>");
                    }
                }

                i++;
            }
            ds.Dispose();

            nWidthTabla      = nWidthTabla + nColumnasACrear * 100;
            sTablaContenido  = "<table id='tblDatos' class='texto' style='width:" + nWidthTabla.ToString() + "px; ' cellpadding='0'>";
            sTablaContenido += sbColgroupTitulo.ToString();
            sTablaContenido += "</colgroup>";
            sTablaContenido += sb.ToString();
            //sTablaContenido += "</tbody>";
            sTablaContenido += "</table>";

            sTablaTitulo  = "<table id='tblTitulo' class='texto' style='width:" + nWidthTabla.ToString() + "px;' cellpadding='0'>";
            sTablaTitulo += sbColgroupTitulo.ToString();
            sTablaTitulo += "</colgroup>";
            sTablaTitulo += sbTitulo.ToString();
            sTablaTitulo += "</table>";

            sTablaResultado  = "<table id='tblResultado' class='texto' style='width:" + nWidthTabla.ToString() + "px;' cellpadding='0'>";
            sTablaResultado += sbColgroupTitulo.ToString();
            sTablaResultado += "</colgroup>";
            sTablaResultado += sbResultado.ToString();
            sTablaResultado += "</table>";

            return("OK@#@" + sTablaTitulo + "@#@" + sTablaContenido + "@#@" + sTablaResultado);
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos económicos.", ex));
        }
    }
Пример #7
0
    private string obtenerDatos(string sAnno, string sEstado,
                                string sCategoria, string sCualidad, string sClientes, string sResponsables,
                                string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica, string sCNP, string sCSN1P, string sCSN2P,
                                string sCSN3P, string sCSN4P, string sPSN)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = ConsultasPGE.ObtenerConsumosProfesionalesGrafico((int)Session["UsuarioActual"],
                                                                                int.Parse(sAnno),
                                                                                sEstado,
                                                                                sCategoria,
                                                                                sCualidad,
                                                                                sClientes,
                                                                                sResponsables,
                                                                                sNaturalezas,
                                                                                sHorizontal,
                                                                                sModeloContrato,
                                                                                sContrato,
                                                                                sIDEstructura,
                                                                                sSectores,
                                                                                sSegmentos,
                                                                                (sComparacionLogica == "1") ? true : false,
                                                                                sCNP,
                                                                                sCSN1P,
                                                                                sCSN2P,
                                                                                sCSN3P,
                                                                                sCSN4P,
                                                                                sPSN);

            while (dr.Read())
            {
                sb.Append(dr["t325_anomes"].ToString() + "##");

                sb.Append(dr["Total Usuarios Propios"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Usuarios Propios"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Horas Propios"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Coste Horas Propios"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Jornadas Propios"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Coste Jornadas Propios"].ToString().Replace(",", ".") + "##");

                sb.Append(dr["Total Usuarios Otros nodos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Usuarios Otros nodos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Horas Otros nodos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Coste Horas Otros nodos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Jornadas Otros nodos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Coste Jornadas Otros nodos"].ToString().Replace(",", ".") + "##");

                sb.Append(dr["Total Usuarios Externos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Usuarios Externos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Horas Externos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Coste Horas Externos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Jornadas Externos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Coste Jornadas Externos"].ToString().Replace(",", ".") + "##");
                sb.Append(dr["Total Consumo"].ToString().Replace(",", ".") + "///");
            }
            dr.Close();
            dr.Dispose();

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos económicos.", ex));
        }
    }
Пример #8
0
    private string generarExcel(string sConceptoEje,
                                string sDesde, string sHasta, string sNivelEstructura,
                                string sCategoria, string sCualidad, string sPSN, string sClientes,
                                string sResponsables, string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica,
                                string sCNP, string sCSN1P, string sCSN2P, string sCSN3P, string sCSN4P,
                                string sProveedores, string sClaseEco, string sCabecera, string sURL)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = ConsultasPGE.ObtenerConsuConta
                               (
                int.Parse(sConceptoEje),
                (SUPER.Capa_Negocio.Utilidades.EsAdminProduccion()) ? 0 : (int)Session["UsuarioActual"],
                int.Parse(sDesde),
                int.Parse(sHasta),
                (sNivelEstructura == "0")? null:(int?)int.Parse(sNivelEstructura),
                sCategoria,
                sCualidad,
                sClientes,
                sResponsables,
                sNaturalezas,
                sHorizontal,
                sModeloContrato,
                sContrato,
                sIDEstructura,
                sSectores,
                sSegmentos,
                (sComparacionLogica == "1")? true:false,
                sCNP,
                sCSN1P,
                sCSN2P,
                sCSN3P,
                sCSN4P,
                sPSN,
                (sClaseEco == "")? null:(int?)int.Parse(sClaseEco),
                sProveedores,
                Session["MONEDA_VDC"].ToString()
                               );

            sb.Append("<table id='tblDatos' style='font-family:Arial;font-size:8pt;' cellspacing='0' cellpadding='0' border='1'>");
            sb.Append("<tr style='height:18px;'>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Proveedor</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>" + sCabecera + "</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Nº Proy</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Proyecto</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Cualidad</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>" + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + "</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Concepto contable</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Nº documento</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Fecha contable</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Descripción</td>");
            sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>Importe</td>");
            sb.Append("</tr>" + (char)10);

            while (dr.Read())
            {
                sb.Append("<tr style='height:18px;'>");
                sb.Append("<td>" + dr["t315_denominacion"].ToString() + "</td>");
                sb.Append("<td>" + dr["denominacion"].ToString() + "</td>");
                sb.Append("<td>" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + "</td>");
                sb.Append("<td>" + dr["t301_denominacion"].ToString() + "</td>");
                sb.Append("<td>");
                switch (dr["t305_cualidad"].ToString())
                {
                case "C":
                    sb.Append("Contratante");
                    break;

                case "J":
                    sb.Append("Replicado sin gestión");
                    break;

                case "P":
                    sb.Append("Replicado con gestión");
                    break;
                }
                sb.Append("</td><td>" + dr["t303_denominacion"].ToString() + "</td>");
                sb.Append("<td>" + dr["t328_denominacion"].ToString() + "</td>");
                sb.Append("<td>" + dr["t478_ndocumento"].ToString() + "</td>");
                sb.Append("<td>&nbsp;" + dr["fecha_contable"].ToString() + "</td>");
                sb.Append("<td>" + dr["t478_descripcion"].ToString() + "</td>");
                sb.Append("<td>" + decimal.Parse(dr["t478_importe"].ToString()).ToString("N") + "</td>");
                sb.Append("</tr>" + (char)10);
            }
            dr.Close();
            dr.Dispose();

            //sb.Append("<tr><td colspan='11' rowspan='3' style='font-weight:bold;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Importes en " + Session["DENOMINACION_VDC"].ToString() + "</td></tr>");

            sb.Append("<tr style='vertical-align:top;'>");
            sb.Append("<td style='font-weight:bold;width:auto;'>* Importes en " + Session["DENOMINACION_VDC"].ToString() + "</td>");

            for (var j = 2; j <= 11; j++)
            {
                sb.Append("<td></td>");
            }
            sb.Append("</tr>" + (char)13);

            sb.Append("</table>");
            //return "OK@#@" + sb.ToString();
            string sIdCache = "EXCEL_CACHE_" + Session["IDFICEPI_ENTRADA"].ToString() + "_" + DateTime.Now.ToString();
            Session[sIdCache] = sb.ToString();;

            return("OK@#@cacheado@#@" + sIdCache + "@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al generar el Excel.", ex));
        }
    }
Пример #9
0
    private string obtenerDatos(string sAnno, string sEstado,
                                string sCategoria, string sCualidad, string sClientes, string sResponsables,
                                string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica, string sCNP, string sCSN1P, string sCSN2P,
                                string sCSN3P, string sCSN4P, string sPSN)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = ConsultasPGE.ObtenerDatosResumidosGrafico((int)Session["UsuarioActual"],
                                                                         int.Parse(sAnno),
                                                                         sEstado,
                                                                         sCategoria,
                                                                         sCualidad,
                                                                         sClientes,
                                                                         sResponsables,
                                                                         sNaturalezas,
                                                                         sHorizontal,
                                                                         sModeloContrato,
                                                                         sContrato,
                                                                         sIDEstructura,
                                                                         sSectores,
                                                                         sSegmentos,
                                                                         (sComparacionLogica == "1") ? true : false,
                                                                         sCNP,
                                                                         sCSN1P,
                                                                         sCSN2P,
                                                                         sCSN3P,
                                                                         sCSN4P,
                                                                         sPSN);
            //while (dr.Read())
            //{
            //    sb.Append(dr["t325_anomes"].ToString() + "##");
            //    sb.Append(dr["Ingresos_Netos"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Margen"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Obra_en_curso"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Saldo_de_Clientes"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Total_Cobros"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Total_Ingresos"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Volumen_de_Negocio"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Total_consumos"].ToString().Replace(",", ".") + "##");
            //    sb.Append(dr["Ratio"].ToString().Replace(",", ".") + "///");
            //}

            DataTable table = new DataTable();
            table.Load(dr);
            DataView dv = table.DefaultView;
            dr.Close();
            dr.Dispose();

            #region grafico 1
            Chart1.ChartAreas["ChartArea1"].AxisX.MinorGrid.Enabled   = true;
            Chart1.ChartAreas["ChartArea1"].AxisX.MinorGrid.Interval  = 1;
            Chart1.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineWidth = 1;
            Chart1.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineColor = Color.LightGray;
            //Creo las series para el gráfico con cada uno de los conceptos
            //Creo una serie para el volumen de negocio
            Series serieVolNeg = new Series("Vol. negocio");
            //serieVolNeg.Points.DataBind(dv, "t325_anomes", "Volumen_de_Negocio", "");
            serieVolNeg.Points.DataBind(dv, "t325_anomes", "Volumen_de_Negocio", "");
            Chart1.Series.Add(serieVolNeg);

            //Creo una serie para el total de consumos
            Series serieConsumo = new Series("Total consumos");
            serieConsumo.Points.DataBind(dv, "t325_anomes", "Total_consumos", "");
            Chart1.Series.Add(serieConsumo);


            //Creo una serie para el total de ingresos
            Series serieIngreso = new Series("Ing. netos");
            serieIngreso.Points.DataBind(dv, "t325_anomes", "Ingresos_Netos", "");
            Chart1.Series.Add(serieIngreso);

            //Creo una serie para el margen
            Series serieMargen = new Series("Margen");
            serieMargen.Points.DataBind(dv, "t325_anomes", "Margen", "");
            Chart1.Series.Add(serieMargen);

            for (int i = 0; i < Chart1.Series.Count; i++)
            {
                if (dv.Count == 1)
                {
                    Chart1.Series[i].ChartType       = SeriesChartType.Column;
                    Chart1.Series[i]["PointWidth"]   = "0.2";
                    Chart1.Series[i]["DrawingStyle"] = "Default";
                }
                else
                {
                    Chart1.Series[i].ChartType    = SeriesChartType.Spline;
                    Chart1.Series[i].BorderWidth  = 2;
                    Chart1.Series[i].ShadowOffset = 1;
                }
                Chart1.Series[i].MarkerStyle = MarkerStyle.Circle;
                Chart1.Series[i].MarkerColor = Color.Navy;
                Chart1.Series[i].MarkerSize  = 6;
                Chart1.Series[i].ToolTip     = "#VALY{C0}";
            }

            Chart1.Visible = true;

            #endregion
            #region gráfico 2
            Chart2.ChartAreas["ChartArea1"].AxisX.MinorGrid.Enabled   = true;
            Chart2.ChartAreas["ChartArea1"].AxisX.MinorGrid.Interval  = 1;
            Chart2.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineWidth = 1;
            Chart2.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineColor = Color.LightGray;
            //Creo las series para el gráfico con cada uno de los conceptos
            //Creo una serie para el total de ingresos
            Series serieTotIng = new Series("Total Ingresos");
            serieTotIng.Points.DataBind(dv, "t325_anomes", "Total_Ingresos", "");
            Chart2.Series.Add(serieTotIng);
            //Creo una serie para el total de cobros
            Series serieCobro = new Series("Total cobros");
            serieCobro.Points.DataBind(dv, "t325_anomes", "Total_Cobros", "");
            Chart2.Series.Add(serieCobro);

            for (int i = 0; i < Chart2.Series.Count; i++)
            {
                if (dv.Count == 1)
                {
                    Chart2.Series[i].ChartType       = SeriesChartType.Column;
                    Chart2.Series[i]["PointWidth"]   = "0.2";
                    Chart2.Series[i]["DrawingStyle"] = "Default";
                }
                else
                {
                    Chart2.Series[i].ChartType    = SeriesChartType.Spline;
                    Chart2.Series[i].BorderWidth  = 2;
                    Chart2.Series[i].ShadowOffset = 1;
                }
                Chart2.Series[i].MarkerStyle = MarkerStyle.Circle;
                Chart2.Series[i].MarkerColor = Color.Navy;
                Chart2.Series[i].MarkerSize  = 6;
                Chart2.Series[i].ToolTip     = "#VALY{C0}";
            }

            Chart2.Visible = true;

            #endregion
            #region gráfico 3
            Chart3.ChartAreas["ChartArea1"].AxisX.MinorGrid.Enabled   = true;
            Chart3.ChartAreas["ChartArea1"].AxisX.MinorGrid.Interval  = 1;
            Chart3.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineWidth = 1;
            Chart3.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineColor = Color.LightGray;
            //Creo la serie para el Ratio
            Series serieRatio = new Series("Ratio");
            serieRatio.Points.DataBind(dv, "t325_anomes", "Ratio", "");
            Chart3.Series.Add(serieRatio);

            for (int i = 0; i < Chart3.Series.Count; i++)
            {
                if (dv.Count == 1)
                {
                    Chart3.Series[i].ChartType       = SeriesChartType.Column;
                    Chart3.Series[i]["PointWidth"]   = "0.2";
                    Chart3.Series[i]["DrawingStyle"] = "Default";
                }
                else
                {
                    //Chart3.Series[i].ChartType = SeriesChartType.Spline;
                    Chart3.Series[i].ChartType    = SeriesChartType.Area;
                    Chart3.Series[i].BorderWidth  = 2;
                    Chart3.Series[i].ShadowOffset = 1;
                }
                //Chart3.Series[i].MarkerStyle = MarkerStyle.None;
                //Chart3.Series[i].MarkerColor = Color.Navy;
                //Chart3.Series[i].MarkerSize = 6;
                Chart3.Series[i].ToolTip = "#VALY{C0}";
            }

            Chart3.Visible = true;
            #endregion
            #region gráfico 4
            Chart4.ChartAreas["ChartArea1"].AxisX.MinorGrid.Enabled   = true;
            Chart4.ChartAreas["ChartArea1"].AxisX.MinorGrid.Interval  = 1;
            Chart4.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineWidth = 1;
            Chart4.ChartAreas["ChartArea1"].AxisX.MinorGrid.LineColor = Color.LightGray;
            //Chart4.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "D";


            //Creo la serie para la obra en curso
            Series serieObra = new Series("Variación obra en curso");
            //serieObra.Points.DataBind(dv, "Mes", "Obra_en_curso", "");
            serieObra.Points.DataBind(dv, "t325_anomes", "Obra_en_curso", "");
            Chart4.Series.Add(serieObra);

            for (int i = 0; i < Chart4.Series.Count; i++)
            {
                if (dv.Count == 1)
                {
                    Chart4.Series[i].ChartType       = SeriesChartType.Column;
                    Chart4.Series[i]["PointWidth"]   = "0.2";
                    Chart4.Series[i]["DrawingStyle"] = "Default";
                }
                else
                {
                    //Chart4.Series[i].ChartType = SeriesChartType.Spline;
                    Chart4.Series[i].ChartType    = SeriesChartType.Area;
                    Chart4.Series[i].BorderWidth  = 2;
                    Chart4.Series[i].ShadowOffset = 1;
                }
                //Chart4.Series[i].MarkerStyle = MarkerStyle.Circle;
                //Chart4.Series[i].MarkerStyle = MarkerStyle.None;
                //Chart4.Series[i].MarkerColor = Color.Navy;
                //Chart4.Series[i].MarkerSize = 6;
                Chart4.Series[i].ToolTip = "#VALY{C0}";
            }

            Chart4.Visible = true;
            #endregion

            table.Dispose();
            dv.Dispose();

            return("OK@#@");// +sb.ToString();
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos económicos.", ex));
        }
    }
Пример #10
0
    private string obtenerDatos(string sTipo, string sDesde, string sHasta, string sDesdeAct, string sHastaAct, string sNivelEstructura,
                                string sCategoria, string sCualidad, string sClientes,
                                string sResponsables, string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica,
                                string sCNP, string sCSN1P, string sCSN2P, string sCSN3P, string sCSN4P, string sPSN)
    {
        StringBuilder sb = new StringBuilder();
        int?          iDesde = null;
        int?          iHasta = null;
        string        sAux = "", sPrimer = "";

        try
        {
            sb.Append("<table id='tblDatos' style='font-family:Arial;font-size:8pt;' cellSpacing='0' cellPadding='0' border='1'>");
            sb.Append("<tbody>");
            //sb.Append("<tr><td>Tabla</td><td>Fila</td><td>t499_id1</td><td>t499_id2</td><td>t499_id3</td>");
            //sb.Append("<td>Línea de Negocio</td><td>Unidad de Negocio</td><td>Centro de responsabilidad</td>");
            //sb.Append("<td>Nº proyecto</td><td>Denominación proyecto</td><td>Responsable del proyecto</td><td>Cualidad</td>");
            //sb.Append("<td>Modalidad</td><td>Naturaleza</td><td>Oportunidad</td><td>Cliente</td>");
            //sb.Append("<td>Grupo económico</td><td>Subgrupo económico</td><td>Concepto económico</td>");
            //sb.Append("<td>Clase económica</td><td>Usuario</td><td>Qué</td><td>Acción</td><td>Autor acción</td>");
            //sb.Append("<td>Cuando</td><td>Fecha cierre</td>");
            //sb.Append("<td>Importe antiguo</td><td>Unidades antiguas</td><td>Coste contratante antiguo</td><td>Perfil antiguo</td>");
            //sb.Append("<td>Importe nuevo</td><td>Unidades nuevas</td><td>Coste contratante nuevo</td><td>Perfil nuevo</td>");
            //sb.Append("</tr>");
            bool bTitulos = false;
            if (sDesde != "" && sDesde != "0")
            {
                iDesde = int.Parse(sDesde);
            }
            if (sHasta != "" && sHasta != "0")
            {
                iHasta = int.Parse(sHasta);
            }
            DataSet ds = ConsultasPGE.getDatosAuditoria((int)Session["IDFICEPI_ENTRADA"],
                                                        (int)Session["UsuarioActual"], sTipo,
                                                        iDesde, iHasta, DateTime.Parse(sDesdeAct), DateTime.Parse(sHastaAct),
                                                        (sNivelEstructura == "0") ? null : (int?)int.Parse(sNivelEstructura), "",//ESTADO
                                                        sCategoria.Trim(), sCualidad.Trim(), (sComparacionLogica == "1") ? true : false,
                                                        sClientes, sResponsables, sNaturalezas, sHorizontal, sModeloContrato, sContrato, sIDEstructura,
                                                        sSectores, sSegmentos, sCNP, sCSN1P, sCSN2P, sCSN3P, sCSN4P, sPSN
                                                        );
            foreach (DataRow oFila in ds.Tables[0].Rows)
            {
                #region Old
                //sb.Append("<td>" + oFila["t300_tabla"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["idfila"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["t499_id1"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["t499_id2"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["t499_id3"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Línea de Negocio"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Unidad de Negocio"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["C. Resp."].ToString() + "</td>");
                //sb.Append("<td>" + int.Parse(oFila["Pyto"].ToString()).ToString("#,###") + "</td>");
                //sb.Append("<td>" + oFila["Proyecto"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Responsable del Pyto"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Cual"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Modalidad"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Naturaleza"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Oport"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Cliente"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Grupo eco"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Subgrupo eco"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Concepto eco"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Clase eco"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Usuario"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Qué"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Accion"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Autor acción"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Cuando"].ToString() + "</td>");
                //sb.Append("<td>" + oFila["Fec.cierre"].ToString() + "</td>");

                //sb.Append("<td>" + double.Parse(oFila["Importe antiguo"].ToString()).ToString("#,###.##") + "</td>");
                //sb.Append("<td>" + double.Parse(oFila["Unidades antiguas"].ToString()).ToString("#,###.##") + "</td>");
                //sb.Append("<td>" + double.Parse(oFila["Cte.contrat.antiguo"].ToString()).ToString("#,###.##") + "</td>");
                //sb.Append("<td>" + oFila["Perfil antiguo"].ToString() + "</td>");

                //sb.Append("<td>" + double.Parse(oFila["Importe nuevo"].ToString()).ToString("#,###.##") + "</td>");
                //sb.Append("<td>" + double.Parse(oFila["Unidades nuevas"].ToString()).ToString("#,###.##") + "</td>");
                //sb.Append("<td>" + double.Parse(oFila["Cte.contrat.nuevo"].ToString()).ToString("#,###.##") + "</td>");
                //sb.Append("<td>" + oFila["Perfil nuevo"].ToString() + "</td>");

                //sb.Append("</tr>");
                #endregion
                if (!bTitulos)
                {
                    sb.Append("<tr align='center'>");
                    for (int x = 0; x < ds.Tables[0].Columns.Count; x++)
                    {
                        sb.Append("<td style='background-color: #BCD4DF;font-weight:bold;'>" + ds.Tables[0].Columns[x].ColumnName + "</td>");
                    }
                    sb.Append("</tr>");
                    bTitulos = true;
                }
                sb.Append("<tr>");
                for (int x = 0; x < ds.Tables[0].Columns.Count; x++)
                {
                    sAux = oFila[x].ToString();
                    if (ds.Tables[0].Columns[x].DataType.Name == "String" && sAux.Trim() != "")
                    {//Para el contenido de campos de tipo Text hacemos transformaciones para que no falle la exportación a Excel
                        sAux    = sAux.Replace("<", " < ");
                        sAux    = sAux.Replace(">", " > ");
                        sAux    = sAux.Trim();
                        sPrimer = sAux.Substring(0, 1);
                        switch (sPrimer)
                        {
                        case "-":
                        case "+":
                        case "=":
                            sAux = "(" + sPrimer + ")" + sAux.Substring(1);
                            break;
                        }
                    }
                    sb.Append("<td>" + sAux + "</td>");
                }
                sb.Append("</tr>");
            }
            ds.Dispose();

            sb.Append("</tbody></table>");

            //return "OK@#@" + sb.ToString();
            string sIdCache = "EXCEL_CACHE_" + Session["IDFICEPI_ENTRADA"].ToString() + "_" + DateTime.Now.ToString();
            Session[sIdCache] = sb.ToString();;

            return("OK@#@cacheado@#@" + sIdCache + "@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos económicos.", ex));
        }
    }
    private string obtenerDatos(string sDesde, string sHasta, string sNivelEstructura,
                                string sCategoria, string sCualidad, string sClientes,
                                string sResponsables, string sNaturalezas, string sHorizontal, string sModeloContrato,
                                string sContrato, string sIDEstructura, string sSectores, string sSegmentos,
                                string sComparacionLogica,
                                string sCNP, string sCSN1P, string sCSN2P, string sCSN3P, string sCSN4P, string sPSN)
    {
        int           nWidthTabla     = 470; //370+100
        int           nColumnasACrear = 0;
        StringBuilder sb = new StringBuilder();
        StringBuilder sbColgroupTitulo = new StringBuilder();
        StringBuilder sbTitulo         = new StringBuilder();
        StringBuilder sbResultado      = new StringBuilder();
        string        sTablaTitulo     = "";
        string        sTablaContenido  = "";
        string        sTablaResultado  = "";
        decimal       nRatio           = 0;

        string sColor = "";

        try
        {
            sbColgroupTitulo.Append("<colgroup>");
            sbColgroupTitulo.Append("<col style='width:350px;' />");
            sbColgroupTitulo.Append("<col style='width:120px;' />");

            DataSet ds = ConsultasPGE.ObtenerDatosSegRenta((int)Session["UsuarioActual"],
                                                           int.Parse(sDesde), int.Parse(sHasta),
                                                           (sNivelEstructura == "0")? null:(int?)int.Parse(sNivelEstructura),
                                                           sCategoria,
                                                           sCualidad,
                                                           sClientes,
                                                           sResponsables,
                                                           sNaturalezas,
                                                           sHorizontal,
                                                           sModeloContrato,
                                                           sContrato,
                                                           sIDEstructura,
                                                           sSectores,
                                                           sSegmentos,
                                                           (sComparacionLogica == "1")? true:false,
                                                           sCNP,
                                                           sCSN1P,
                                                           sCSN2P,
                                                           sCSN3P,
                                                           sCSN4P,
                                                           sPSN,
                                                           Session["MONEDA_VDC"].ToString()
                                                           );

            bool bTitulos = false;
            foreach (DataRow oFila in ds.Tables[0].Rows)
            {
                if (!bTitulos)
                {
                    sbTitulo.Append("<tr class='TBLINI'>");
                    sbTitulo.Append("<td></td>");
                    for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                    {
                        if (x == 4)
                        {
                            string[] aNomMeses = Regex.Split(ds.Tables[0].Columns[x].ColumnName, "-");
                            sbTitulo.Append("<td>");
                            sbTitulo.Append(Fechas.AnnomesAFechaDescCorta(int.Parse(aNomMeses[0].ToString())));
                            sbTitulo.Append(" - ");
                            sbTitulo.Append(Fechas.AnnomesAFechaDescCorta(int.Parse(aNomMeses[1].ToString())));
                            sbTitulo.Append("</td>");
                        }
                        else
                        {
                            sbColgroupTitulo.Append("<col style='width:100px;' />");
                            sbTitulo.Append("<td>" + Fechas.AnnomesAFechaDescLarga(int.Parse(ds.Tables[0].Columns[x].ColumnName)) + "</td>");
                            nColumnasACrear++;
                        }
                    }
                    sbTitulo.Append("</tr>");
                    bTitulos = true;
                }

                if (oFila["t454_idformula"].ToString() != "2")
                {
                    switch (oFila["nivel"].ToString())
                    {
                    case "1":
                        sb.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' style='height: 20px' nivel='1'>");
                        sb.Append("<td style='text-align:left;'><IMG class=NSEG1 src='../../../../images/imgSeparador.gif'>");
                        sb.Append("<nobr class='NBR W320'>" + oFila["t454_literal"].ToString() + "</nobr></td>");
                        break;

                    case "2":
                        sb.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' style='height: 20px' nivel='2'>");
                        sb.Append("<td style='text-align:left;'><IMG class=NSEG2 src='../../../../images/imgSeparador.gif'>");
                        sb.Append("<nobr class='NBR W280'>- " + oFila["t454_literal"].ToString() + "</nobr></td>");
                        break;
                    }

                    for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                    {
                        if (decimal.Parse(oFila.ItemArray[x].ToString()) < 0)
                        {
                            sColor = "red";
                        }
                        else
                        {
                            sColor = "black";
                        }
                        sb.Append("<td style='color:" + sColor + "'>" + decimal.Parse(oFila.ItemArray[x].ToString()).ToString("N") + "</td>");
                    }
                    sb.Append("</tr>");
                }
                else
                {
                    //if (oFila["t454_idformula"].ToString() == "8")
                    //{
                    //    sbResultado.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' style='HEIGHT: 17px' class='TBLFIN'>");
                    //    sbResultado.Append("<td><nobr class='NBR W320 NSEG1'>Ratio</nobr></td>");
                    //    for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                    //    {
                    //        if ((decimal)oFila.ItemArray[x] == 0) nRatio = 0;
                    //        else
                    //        {
                    //            nRatio = (decimal)ds.Tables[0].Rows[0].ItemArray[x] * 100 / (decimal)oFila.ItemArray[x];
                    //        }
                    //        if (nRatio < 0) sColor = "red";
                    //        else sColor = "black";
                    //        sbResultado.Append("<td style='color:" + sColor + "'>" + nRatio.ToString("N") + " %</td>");
                    //    }
                    //    sbResultado.Append("</tr>");
                    //}
                    //else
                    //{
                    sbResultado.Append("<tr id='" + oFila["t454_idformula"].ToString() + "' style='HEIGHT: 17px' class='TBLFIN'>");
                    sbResultado.Append("<td style='text-align:left;'><nobr class='NBR W320 NSEG1'>" + oFila["t454_literal"].ToString() + "</nobr></td>");
                    for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
                    {
                        if (decimal.Parse(oFila.ItemArray[x].ToString()) < 0)
                        {
                            sColor = "red";
                        }
                        else
                        {
                            sColor = "black";
                        }
                        sbResultado.Append("<td style='color:" + sColor + "'>" + decimal.Parse(oFila.ItemArray[x].ToString()).ToString("N") + "</td>");
                    }
                    sbResultado.Append("</tr>");
                    //}
                }
            }

            sbResultado.Append("<tr id='0' style='HEIGHT: 17px' class='TBLFIN'>");
            sbResultado.Append("<td style='text-align:left;'><nobr class='NBR W320 NSEG1'>Ratio</nobr></td>");
            for (int x = 4; x < ds.Tables[0].Columns.Count; x++)
            {
                if (decimal.Parse(ds.Tables[0].Rows[0].ItemArray[x].ToString()) == 0)
                {
                    nRatio = 0;
                }
                else
                {
                    nRatio = decimal.Parse(ds.Tables[0].Rows[12].ItemArray[x].ToString()) * 100 / decimal.Parse(ds.Tables[0].Rows[0].ItemArray[x].ToString());
                }
                if (nRatio < 0)
                {
                    sColor = "red";
                }
                else
                {
                    sColor = "black";
                }
                sbResultado.Append("<td style='color:" + sColor + "'>" + nRatio.ToString("N") + " %</td>");
            }
            sbResultado.Append("</tr>");

            ds.Dispose();

            nWidthTabla      = nWidthTabla + nColumnasACrear * 100;
            sTablaContenido  = "<table id='tblDatos' class='texto' style='WIDTH:" + nWidthTabla.ToString() + "px; table-layout:fixed;  BORDER-COLLAPSE: collapse;' cellpadding='0' cellspacing='0' border='0'>";
            sTablaContenido += sbColgroupTitulo.ToString();
            sTablaContenido += "</colgroup>";
            sTablaContenido += sb.ToString();
            //sTablaContenido += "</tbody>";
            sTablaContenido += "</table>";

            sTablaTitulo  = "<table id='tblTitulo' class='texto' style='WIDTH:" + nWidthTabla.ToString() + "px; table-layout:fixed;  BORDER-COLLAPSE: collapse;' cellpadding='0' cellspacing='0' border='0'>";
            sTablaTitulo += sbColgroupTitulo.ToString();
            sTablaTitulo += "</colgroup>";
            sTablaTitulo += sbTitulo.ToString();
            sTablaTitulo += "</table>";

            sTablaResultado  = "<table id='tblResultado' class='texto' style='WIDTH:" + nWidthTabla.ToString() + "px; table-layout:fixed;  BORDER-COLLAPSE: collapse;' cellpadding='0' cellspacing='0' border='0'>";
            sTablaResultado += sbColgroupTitulo.ToString();
            sTablaResultado += "</colgroup>";
            sTablaResultado += sbResultado.ToString();
            sTablaResultado += "</table>";



            return("OK@#@" + sTablaTitulo + "@#@" + sTablaContenido + "@#@" + sTablaResultado);
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos económicos.", ex));
        }
    }