Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 38 additions & 23 deletions WebLab/Estadisticas/EstadisticaResultadoTexto.aspx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,8 @@ private void CargarListas()
protected void btnExcel_Click(object sender, EventArgs e)
{
string m_listaCodigo = ""; string m_listaNombres = "";
HashSet<string> listaNombres = new HashSet<string>(StringComparer.OrdinalIgnoreCase); //Para que no repitan los nombres de los analisis de las practicas, que da un error en PIVOT as Child.

for (int i = 0; i < lstItem.Items.Count; i++)
{
if (lstItem.Items[i].Selected)
Expand Down Expand Up @@ -234,10 +236,12 @@ protected void btnExcel_Click(object sender, EventArgs e)
m_listaCodigo = "'" + oDet2.Codigo + "'";
else
m_listaCodigo += ",'" + oDet2.Codigo + "'";
if (m_listaNombres == "")
m_listaNombres = "[" + oDet2.Nombre.Replace("[", "").Replace("]", "") + "]";
else
m_listaNombres += ",[" + oDet2.Nombre.Replace("[", "").Replace("]", "") + "]";
//if (m_listaNombres == "")
// m_listaNombres = "[" + oDet2.Nombre.Replace("[", "").Replace("]", "") + "]";
//else
// m_listaNombres += ",[" + oDet2.Nombre.Replace("[", "").Replace("]", "") + "]";
string nombres = "[" + oDet2.Nombre.Replace("[", "").Replace("]", "") + "]";
listaNombres.Add(nombres);
}
}
}
Expand All @@ -248,10 +252,12 @@ protected void btnExcel_Click(object sender, EventArgs e)
m_listaCodigo = "'" + oitemEfector.IdItem.Codigo + "'";
else
m_listaCodigo += ",'" + oitemEfector.IdItem.Codigo + "'";
if (m_listaNombres == "")
m_listaNombres = "[" + oitemEfector.IdItem.Nombre.Replace("[","").Replace("]", "") + "]";
else
m_listaNombres += ",[" + oitemEfector.IdItem.Nombre.Replace("[", "").Replace("]", "") + "]";
//if (m_listaNombres == "")
// m_listaNombres = "[" + oitemEfector.IdItem.Nombre.Replace("[","").Replace("]", "") + "]";
//else
// m_listaNombres += ",[" + oitemEfector.IdItem.Nombre.Replace("[", "").Replace("]", "") + "]";
string nombres = "[" + oitemEfector.IdItem.Nombre.Replace("[", "").Replace("]", "") + "]";
listaNombres.Add(nombres);
}

}
Expand All @@ -261,7 +267,8 @@ protected void btnExcel_Click(object sender, EventArgs e)
}
}

if (m_listaNombres != "")
//if (m_listaNombres != "")
if(listaNombres.Count > 0)
{
string m_strSQLCondicion = " 1=1 and b.baja=0 ";

Expand Down Expand Up @@ -290,22 +297,30 @@ protected void btnExcel_Click(object sender, EventArgs e)
m_strSQLCondicion += " AND b.fechaRegistro < '" + fecha2.ToString("yyyyMMdd") + "'";
}

foreach (string nombre in listaNombres)
{
if (m_listaNombres == "")
m_listaNombres = nombre;
else
m_listaNombres += "," + nombre ;
}

string m_strSQL = @"with vta_ResultadoPivot_car1 as (

SELECT b.numero AS numero, b.fecha,
case when I.idtiporesultado=1 then convert(varchar,DP.resultadoNum) else
DP.resultadoCar end as resultadoCar, DP.idProtocolo,replace( replace(I.nombre,'[',''),']','') AS item
FROM dbo.LAB_DetalleProtocolo AS DP with (nolock)
inner join LAB_Item I with (nolock) on I.iditem= DP.idsubitem
inner join lab_protocolo b with (nolock) on dp.idProtocolo = b.idProtocolo
WHERE " + m_strSQLCondicion + @" and codigo in (" + m_listaCodigo + @") and DP.idUsuarioValida>0
)
SELECT Child.numero as Protocolo, fecha," + m_listaNombres +
@"FROM (
SELECT a.* FROM vta_ResultadoPivot_car1 a " + @"
)
pvt PIVOT (max(resultadocar) FOR item IN (" + m_listaNombres + @")) AS Child
";
SELECT b.numero AS numero, b.fecha,
case when I.idtiporesultado=1 then convert(varchar,DP.resultadoNum) else
DP.resultadoCar end as resultadoCar, DP.idProtocolo,replace( replace(I.nombre,'[',''),']','') AS item
FROM dbo.LAB_DetalleProtocolo AS DP with (nolock)
inner join LAB_Item I with (nolock) on I.iditem= DP.idsubitem
inner join lab_protocolo b with (nolock) on dp.idProtocolo = b.idProtocolo
WHERE " + m_strSQLCondicion + @" and codigo in (" + m_listaCodigo + @") and DP.idUsuarioValida>0
)
SELECT Child.numero as Protocolo, fecha," + m_listaNombres +
@"FROM (
SELECT a.* FROM vta_ResultadoPivot_car1 a " + @"
)
pvt PIVOT (max(resultadocar) FOR item IN (" + m_listaNombres + @")) AS Child
";

DataSet Ds = new DataSet();

Expand Down