template CGI Wrapper

Discussão em 'WebSpeed' iniciado por TeD, Junho 26, 2009.

  1. TeD

    TeD Membro Participativo

    Bom dia, pessoal

    alguem sabe mexer com o template CGI Wrapper

    Gostaria de saber como faço para trabalhar no progress com as dados dos campos que criei no HTML.

    Valeu
  2. Agnaldo

    Agnaldo Membro Ativo

    Aqui um exemplo simples, usando HTML.

    Obs.: Seria muito mais legal usar Flex na camada de interface.

    Código:
    /* 
     *
     * StarWeb FrameWork (starweb@starweb-software.com.br)
     *
     *    Pede o código de um cliente na tela e faz um FIND pelo mesmo,
     *    mostrando o registro, caso localize (tabela Customer)
     *    Necessita de um banco baseado no sports conectado.
     *    Centraliza as telas
     *    Usa uma tabela html (table) para mostrar o regitro
     * 
     */ 
    
    
    DEFINE VARIABLE codigo AS CHARACTER.
    
    { src/web/method/wrap-cgi.i }
    
    /* *** Lê o valor da interface *** */
    ASSIGN codigo = GET-VALUE("codigo").
    
    /* *** Gera o header html *** */
    output-content-type("text/html").
    
    /* *** Desenha a página html *** */
    {&out} '<html>' SKIP
           '<head>' SKIP
           '<title>StarWeb FrameWork - Exemplo062</title>' SKIP
           '</head>' SKIP.
    
    {&out} '<body>' SKIP
           'Exemplo062' SKIP
           '<hr>' SKIP.
    
    /* *** Desenha um form html para solicitar o código do cliente *** */
    
    {&out} '<div align="center">' SKIP.
    
    {&out} '<form method="post" name="form" action="exemplo062.p">' SKIP
           '   <table border="0">' SKIP
           '      <tr>' SKIP
           '         <td align="right">Cliente a pequisar:</td>' SKIP
           '         <td>' SKIP
           '            <input type="text" name="codigo" value="' codigo '" size="10">' SKIP
           '            <input type="submit" name="btnEnviar" value="Pesquisar">' SKIP
           '         </td>' SKIP
           '      </tr>' SKIP
           '      <tr>' SKIP
           '         <td colspan="2" align="center"></td>' SKIP
           '      </tr>' SKIP
           '   </table>' SKIP
           '</form>' SKIP.
    
    
    IF REQUEST_METHOD = "POST" 
       THEN
           DO: 
              /* *** Busca o registro do cliente o mostra na interface *** */
              FIND FIRST Customer WHERE Customer.Cust-Num = INTEGER(codigo) NO-LOCK NO-ERROR.
              IF NOT AVAILABLE Customer
                 THEN
                     {&out} '<strong>Este código de cliente não existe.</strong>' SKIP.
                 ELSE
                     DO:
                        {&out} '<table border="0" cellspacing="1" cellpadding="1" width="100%">' SKIP
                               '   <tr>' SKIP
                               '      <td colspan="4" align="center" bgcolor="#FFFFCC"><strong>Registro do cliente ' Customer.Cust-Num '</strong></td>' SKIP
                               '   <tr>' SKIP 
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Nome:</strong></td>' SKIP
                               '      <td colspan="3">' Customer.Name '</td>' SKIP
                               '   </tr>' SKIP
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Endereço:</strong></td>' SKIP
                               '      <td colspan="3">' Customer.Address (IF Customer.Address2 <> '' THEN (', ' + Customer.Address2) ELSE '') '</td>' SKIP
                               '   </tr>' SKIP
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Cidade:</strong></td>' SKIP
                               '      <td>' Customer.City '</td>' SKIP
                               '      <td align="right"><strong>Estado:</strong></td>' SKIP
                               '      <td>' Customer.State '</td>' SKIP
                               '   </tr>' SKIP
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Código postal:</strong></td>' SKIP
                               '      <td>' Customer.Postal-Code '</td>' SKIP
                               '      <td align="right"><strong>Telefone:</strong></td>' SKIP
                               '      <td>' Customer.Phone '</td>' SKIP
                               '   </tr>' SKIP
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Contato:</strong></td>' SKIP
                               '      <td colspan="3">' Customer.Contact '</td>' SKIP
                               '   </tr>' SKIP.
    
                        FIND FIRST SalesRep OF Customer NO-LOCK NO-ERROR.
                        IF AVAILABLE SalesRep
                           THEN
                               {&out} '   <tr>' SKIP
                                      '      <td align="right"><strong>Representante:</strong></td>' SKIP
                                      '      <td colspan="3">' Customer.Sales-Rep ' - ' SalesRep.Rep-Name '</td>' SKIP
                                      '   </tr>' SKIP.
                           ELSE
                               {&out} '   <tr>' SKIP
                                      '      <td align="right"><strong>Representante:</strong></td>' SKIP
                                      '      <td colspan="3">' Customer.Sales-Rep '</td>' SKIP
                                      '   </tr>' SKIP.
    
                        {&out} '   <tr>' SKIP
                               '      <td align="right"><strong>Crédito:</strong></td>' SKIP
                               '      <td>' Customer.Credit-Limit FORMAT "->>>,>>>,>>9.99" '</td>' SKIP
                               '      <td align="right"><strong>Balanço:</strong></td>' SKIP
                               '      <td>' Customer.Balance FORMAT "->>>,>>>,>>9.99" '</td>' SKIP
                               '   </tr>' SKIP
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Termos:</strong></td>' SKIP
                               '      <td>' Customer.terms '</td>' SKIP
                               '      <td align="right"><strong>Disconto:</strong></td>' SKIP
                               '      <td>' Customer.Discount FORMAT "->>9.99" '%</td>' SKIP
                               '   </tr>' SKIP
                               '   <tr>' SKIP
                               '      <td align="right"><strong>Observações:</strong></td>' SKIP
                               '      <td colspan="3">' Customer.Comments '</td>' SKIP
                               '   </tr>' SKIP
                               '</table>' SKIP.
                     END.
           END.
    
    {&out} '</div>' SKIP.
    
    
    /* *** Fecha a página html *** */
    {&out} '</body>' SKIP
           '</html>' SKIP.
    
  3. Agnaldo

    Agnaldo Membro Ativo

    Completando.

    HTML Mapeado você faz um HTML (pode usar Word, DreamWeaver, etc).
    Via Provision Plus (aquele que tem o Workshop junto) voce mapeia o html para um .w.

    SpeedScript é igual a PHP, ASP, JSP, etc.
    Você faz uma página html e coloca código 4GL nela.

    CGI-Wrapper é 100% 4GL puro.
    Ou seja, voce usa APENAS 4GL para fazer tudo que precisa, gerando na mão o código 4GL da saida.
    É uma forma mais trabalhosa pois exige conhecimento não só de 4GL mas também de HTML. Por outro lado, o programador pode pintar e bordar à vontade.
  4. TeD

    TeD Membro Participativo

    Valeu Agnaldo.. show de bola.. consegui fazer o que precisava..
    Muito Obrigado..

    Aproveitando o tópico, alguem saberia como fazer para colocar um botao onde ao clicar ele efetua o download de um arquivo..

    Valeu..
    Att,
  5. Agnaldo

    Agnaldo Membro Ativo

    Procure no Google por
    html button file
  6. TeD

    TeD Membro Participativo

    não encontrei nada referente a um botao de download..
    alguma ideia?

Compartilhe esta Página