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
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.
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.
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,