1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

005 - Mostrando vários registros

Discussão em 'Ambiente Web - Webspeed e/ou StarWeb FrameWork' iniciado por Agnaldo, Janeiro 2, 2014.

  1. Agnaldo

    Agnaldo Membro Ativo

    Tempo estimado de leitura: menos de 5 minutos

    O mesmo raciocínio que usamos para mostrar um registro (find) podemos usar para mostrar vários registros (for each).
    Podemos fazer uso do {&display} do WebSpeed, como no exemplo abaixo
    PHP:
    /* Include com as funcionalidades web */
    src/web/method/wrap-cgi.}

    /* Gera o header html */
    output-content-type("text/html").

    /* Abre a página html */
    {&out'<html>' SKIP
           
    '<head>' SKIP
           
    '<title>Exemplo</title>' SKIP
           
    '</head>' SKIP
           
    '<body>' SKIP(1).

    /* Conteúdo da página html */
    FIND FIRST Customer NO-LOCK NO-ERROR.
    IF 
    NOT AVAILABLE Customer
       THEN
           
    {&out'Tabela esta vázia' SKIP.
       ELSE
           FOR 
    EACH Customer NO-LOCK:
               {&
    DISPLAYCustomer.Cust-Num
                          Customer
    .Name
                          Customer
    .Country
                          Customer
    .City
               WITH TITLE 
    "Exemplo de Consulta".
           
    END.

    /* Fecha a página html */
    {&out'</body>' SKIP
           
    '</html>' SKIP(1).

    /* Fim do arquivo */
    Que nos dará uma saída semelhante a essa:

    [​IMG]

    Como o StarWeb FrameWork trata ligeiramente diferente o uso do {&display}, conforme código abaixo
    PHP:
    /* Include com as funcionalidades web */
    src/web/method/wrap-cgi.}

    /* Gera o header html */
    output-content-type("text/html").

    /* Abre a página html */
    {&out'<html>' SKIP
           
    '<head>' SKIP
           
    '<title>Exemplo</title>' SKIP
           
    '</head>' SKIP
           
    '<body>' SKIP(1).

    /* Conteúdo da página html */
    FIND FIRST Customer NO-LOCK NO-ERROR.
    IF 
    NOT AVAILABLE Customer
       THEN
           
    {&out'Tabela esta vázia' SKIP.
       ELSE
           DO:
              {&
    out'<pre>' SKIP.
              FOR 
    EACH Customer NO-LOCK:
                  {&
    DISPLAYCustomer.Cust-Num
                             Customer
    .Name
                             Customer
    .Country
                             Customer
    .City
                  WITH TITLE 
    "Exemplo de Consulta".
              
    END.
              {&
    out'</pre>' SKIP.
           
    END.

    /* Fecha a página html */
    {&out'</body>' SKIP
           
    '</html>' SKIP(1).

    /* Fim do arquivo */
    Podemos ter uma saída um pouco mais limpa.

    [​IMG]

    Mas como comentamos antes, o uso de {&display} é mais indicado para prototipagem ou para aquelas situações de "apagar incendio". Aquelas situações em que precisamos fazer algo a "toque de caixa".

    Usar os recursos do HTML, como no código abaixo
    PHP:
    DEFINE VARIABLE corDeFundo AS CHARACTER.

    /* Include com as funcionalidades web */
    src/web/method/wrap-cgi.}

    /* Gera o header html */
    output-content-type("text/html").

    /* Abre a página html */
    {&out'<html>' SKIP
           
    '<head>' SKIP
           
    '<title>Exemplo</title>' SKIP
           
    '</head>' SKIP
           
    '<body>' SKIP(1).

    /* Conteúdo da página html */
    FIND FIRST Customer NO-LOCK NO-ERROR.
    IF 
    NOT AVAILABLE Customer
       THEN
           
    {&out'Tabela esta vázia' SKIP.
       ELSE
           DO:
              {&
    out'<div align="center">' SKIP
                     
    '   <table border="1" cellspacing="1" cellpadding="1">' SKIP
                     
    '      <tr align="center">' SKIP
                     
    '         <td colspan="5"><b>Relação de Clientes</b></td>' SKIP
                     
    '      </tr>' SKIP
                     
    '      <tr bgcolor="#FFFFCC" align="center">' SKIP
                     
    '         <td><b>Código</b></td>' SKIP
                     
    '         <td><b>Nome do cliente</b></td>' SKIP
                     
    '         <td><b>Pais</b></td>' SKIP
                     
    '         <td><b>Estado</b></td>' SKIP
                     
    '         <td><b>Cidade</b></td>' SKIP
                     
    '      </tr>' SKIP.
              FOR 
    EACH Customer NO-LOCK:
                  IF 
    corDeFundo "#EAEAEA"
                     
    THEN
                         ASSIGN corDeFundo 
    "#DCDCDC".
                     ELSE
                         
    ASSIGN corDeFundo "#EAEAEA".
                  {&
    out'      <tr bgcolor="' corDeFundo '">' SKIP
                         
    '         <td align="center">' Customer.Cust-Num FORMAT "9999" '</td>' SKIP
                         
    '         <td>' Customer.Name '</td>' SKIP
                         
    '         <td>' Customer.Country '</td>' SKIP
                         
    '         <td>' Customer.State '</td>' SKIP
                         
    '         <td>' Customer.City '</td>' SKIP
                         
    '      </tr>' SKIP.
              
    END.
             {&
    out'   </table>' SKIP
                    
    '</div>' SKIP.
           
    END.

    /* Fecha a página html */
    {&out'</body>' SKIP
           
    '</html>' SKIP(1).

    /* Fim do arquivo */
    Nos permite ter uma saída de tela bem mais elegante.

    [​IMG]


    Curtiu?
    Até o próximo post​
    Última edição: Janeiro 21, 2014
    liliane e brazjuniorgyn curtiram isso.
  2. Agnaldo

    Agnaldo Membro Ativo

    .

Compartilhe esta Página