There is a For that runs line by line a list. This list returns me input and output of a process. The problem is that it does not return on the same line because it is either input or output.
I would like to show in the middle column the process and in the columns of the corners the entries and exits.
As it is inside a for, it always breaks a line to the next record. Would it be possible to upload only one record from that column above?
See the image:
HTML:
<tableid="EntradaProcessoSaida" class="table">
<thead>
<tr>
<th>Entrada </th>
<th width="50%" colspan="2"><center>Processo</center></th>
<th>Saída</th>
</tr>
</thead>
<tbody>
@{
string acaoInicial = "";
string acaoFinal = "";
string tituloInicial = "";
string tituloFinal = "";
/* p.Acao = reader["ACAO"].ToString();
p.TituloAcao = reader["TituloAcao"].ToString();
p.IdAcao = (int)reader["Acao"];
p.TipoES = reader["TIPO"].ToString();
p.TituloES = reader["Titulo"].ToString();
p.CodigosES = reader["Codigo"].ToString();*/
for (int i = 0; i < ViewBag.listaTudo.Count; i++)
{
acaoInicial = ViewBag.listaTudo[i].Acao;
tituloInicial = ViewBag.listaTudo[i].TituloAcao;
string concatenaEntrada = ViewBag.listaTudo[i].TituloES + " - " + ViewBag.listaTudo[i].CodigosES;
concatenaEntrada = concatenaEntrada.Remove(concatenaEntrada.Length - 1);
if (acaoInicial != acaoFinal)
{
<tr><td colspan="4"><hr /></td></tr>
}
@*/*ENTRADA*/*@
<tr>
@if (ViewBag.listaTudo[i].TipoES == "entrada")
{
<td>@concatenaEntrada</td>
}
else
{
<td></td>
}
@*/*Processo*/*@
@if (acaoInicial != acaoFinal)
{
<td><font size="14"><b>@ViewBag.listaTudo[i].Acao</b></font></td>
<td>@ViewBag.listaTudo[i].TituloAcao</td>
}
else
{
if (tituloInicial != tituloFinal)
{
<td></td>
<td>@ViewBag.listaTudo[i].TituloAcao</td>
}
else
{
<td></td><td></td>
}
}
@*/*Saída*/*@
@if (ViewBag.listaTudo[i].TipoES == "saida")
{
<td>@concatenaEntrada</td>
}
else
{
<td></td>
}
@{
acaoFinal = ViewBag.listaTudo[i].Acao;
tituloFinal = ViewBag.listaTudo[i].TituloAcao;
cont++;
}
</tr>
}
}
</tbody>
</table>
css:
.relativeDireita {
position: relative;
/* left: 600px; */
width: 200px;
height: auto;
/*border: solid #000000 1px;*/
}
Return from list:
SQL:
declare @processo int = 9
-- Lista ações do processo
SELECT
distinct
CASE
when ga.Descricao ='ACTION' THEN 'A'
when ga.Descricao ='PLAN' THEN 'P'
when ga.Descricao ='CHECK' THEN 'C'
when ga.Descricao ='DO' THEN 'D'
END ACAO
,
pg.Titulo TituloAcao,
pg.Id as Acao,
case
when pga.Id_Acao = 1 then
'entrada'
when pga.Id_Acao = 2 then
'saida'
end TIPO,
pga.Titulo,
UPPER
(
SUBSTRING
(
ISNULL
(
STUFF
(
(
SELECT
convert(varchar(10),c.Codigo) + ',' codigo
FROM
Qualidade_Diagrama_Processo_Grupo_Acao a
join Qualidade_Diagrama_Acao_Entidade b on (b.Id_Proc_Grupo_Acao = a.Id)
join Qualidade_Diagrama_Entidade c on (c.Id = b.Id_Entidade)
WHERE
b.Id_Proc_Grupo_Acao = ae.Id_Proc_Grupo_Acao
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)') ,1,0,''
),' '
),1,254
)
) as Codigo,
ga.Codigo_Posicao
FROM
Qualidade_Diagrama_Processo_Grupo pg
JOIN Qualidade_Diagrama_Processo p on (p.Id = pg.Id_Processo)
JOIN Qualidade_Diagrama_Grupo_Acoes ga on (ga.Id = pg.Id_Grupo_Acoes)
join setor s on (s.id = p.Setor)
join Usuario_Interno u on (u.id = p.Usuario_Criacao)
left Join Qualidade_Diagrama_Processo_Grupo_Acao pga on (pga.Id_Processo_Grupo = pg.Id)
left join Qualidade_Diagrama_Acao_Entidade ae on (ae.Id_Proc_Grupo_Acao = pga.Id)
WHERE
1=1
AND pga.Data_Exclusao is null
and p.Id = @processo
order by ga.Codigo_Posicao