Html and Css back a row in the table

-1

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
    
asked by anonymous 05.07.2018 / 12:52

1 answer

1

You can group the data using Linq without having to change the query, for example:

var agrupado = from m in movimentos
                           group m by m.IdAcaoProcesso into g
                           select new
                           {
                               Id = g.Key,
                               Processo = g.FirstOrDefault().Processo,
                               Entrada = g.Any(x => x.TipoES == "Entrada") ? g.FirstOrDefault(x => x.TipoES == "Entrada").CodigoES : "",
                               Saida = g.Any(x => x.TipoES == "Saida") ? g.FirstOrDefault(x => x.TipoES == "Saida").CodigoES : ""
                           };

In this example, I've grouped the query result that is in a List into the Movements variable, bringing input and output into single object.

See a working example dotnetfiddle: link

    
05.07.2018 / 13:59