<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <title>Ambiente Web - Webspeed e/ou StarWeb FrameWork</title>
    <description>Ambiente Web - Webspeed e/ou StarWeb FrameWork</description>
    <pubDate>Wed, 16 Sep 2026 01:13:58 +0000</pubDate>
    <lastBuildDate>Wed, 16 Sep 2026 01:13:58 +0000</lastBuildDate>
    <generator>4Each - Forum Progress</generator>
    <link>https://www.4each.com.br/forums/ambiente-web-webspeed-e-ou-starweb-framework.79/</link>
    <atom:link rel="self" type="application/rss+xml" href="https://www.4each.com.br/forums/ambiente-web-webspeed-e-ou-starweb-framework.79/index.rss"/>
    <item>
      <title>Configurações Webspeed com o Progress 11.7</title>
      <pubDate>Fri, 04 Sep 2026 01:09:21 +0000</pubDate>
      <link>https://www.4each.com.br/threads/configura%C3%A7%C3%B5es-webspeed-com-o-progress-11-7.27594/</link>
      <guid>https://www.4each.com.br/threads/configura%C3%A7%C3%B5es-webspeed-com-o-progress-11-7.27594/</guid>
      <author>Nilton86</author>
      <dc:creator>Nilton86</dc:creator>
      <content:encoded><![CDATA[Bom dia aos colegas, e um FELIZ 2019 a todos !!!! <br />
<br />
Sou desenvolvedor Progress e trabalho nas versões carácter e gráfica, mais precisamente com o ERP Datasul. Tenho grande interesse em iniciar meus estudos com o Webspeed porém conheço muito pouco sobre aplicações web, suas configurações e afins. <br />
Achei na internet algumas  instruções de como fazer a configuração (<a href="http://progresswebspeed.blogspot.com/2012/02/configuracao-webspeed.html" target="_blank" class="externalLink" rel="nofollow">http://progresswebspeed.blogspot.com/2012/02/configuracao-webspeed.html</a>) porém lá é dito que deve se usar o &quot;Progress Explore Tools&quot; porém aqui na empresa o Progress que esta na versão 11.7  não tem este recurso disponível nas ferramentas. Confesso que não me familiarizo com a parte de configurações e não sei se o &quot;Progress Explore Tools&quot; deixou de ser utilizado nesta versão ou deve ser habitado de alguma forma.<br />
O fato é que no ambiente do Progress que tenho aqui não faço ideia de como realizar a configuração do...<br />
<br />
<a href="https://www.4each.com.br/threads/configura%C3%A7%C3%B5es-webspeed-com-o-progress-11-7.27594/" class="internalLink">Configurações Webspeed com o Progress 11.7</a>]]></content:encoded>
      <slash:comments>1</slash:comments>
    </item>
    <item>
      <title>002 - Por onde iniciar</title>
      <pubDate>Wed, 09 Sep 2020 19:25:00 +0000</pubDate>
      <link>https://www.4each.com.br/threads/002-por-onde-iniciar.5654/</link>
      <guid>https://www.4each.com.br/threads/002-por-onde-iniciar.5654/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[Não estamos aqui para discutir, apoiar ou indicar A ou B tecnologia.<br />
<br />
Nosso foco é vermos programação em 4GL Progress, orientada para o ambiente web.<br />
<br />
Diversas pessoas já usam Flex para a camada client (camada de interface/apresentação).<br />
<br />
Nós aqui iremos usar para os nossos exemplos o HTML.<br />
HTML, XHTML, DHTML, HTML5, para o nosso nível inicial é tudo a mesma coisa.<br />
Javascript, CSS, Jquery, etc., serão vistos e usados mais adiante.<br />
<br />
Algumas coisas que você precisa saber antes de prosseguirmos.<br />
<br />
Estamos assumindo que você já programa para ambientes caracter e/ou gráfico. Ou seja, que você já programa em 4GL Progress.<br />
<br />
Nosso foco, nessa área aqui do forum,  é programação e não configuração de ambiente.<br />
<br />
Apache e Microsoft IIS são servidores web.<br />
Ambientes do tipo XAMP não são para nós.<br />
<br />
HTML é pré-requisito.<br />
<br />
A Universidade XTI possui alguns (muitos) vídeos de treinamento web no Youtube....<br />
<br />
<a href="https://www.4each.com.br/threads/002-por-onde-iniciar.5654/" class="internalLink">002 - Por onde iniciar</a>]]></content:encoded>
      <slash:comments>5</slash:comments>
    </item>
    <item>
      <title>Instalação Starweb Ambiente Linux Debian</title>
      <pubDate>Fri, 14 Dec 2018 15:30:09 +0000</pubDate>
      <link>https://www.4each.com.br/threads/instala%C3%A7%C3%A3o-starweb-ambiente-linux-debian.27576/</link>
      <guid>https://www.4each.com.br/threads/instala%C3%A7%C3%A3o-starweb-ambiente-linux-debian.27576/</guid>
      <author>Guilhermef</author>
      <dc:creator>Guilhermef</dc:creator>
      <content:encoded><![CDATA[Boa tarde gostaria de saber se alguém possui o manual de instalação do starweb para ambiente linux?]]></content:encoded>
    </item>
    <item>
      <title>Programa Padrão</title>
      <pubDate>Wed, 24 Feb 2016 12:16:45 +0000</pubDate>
      <link>https://www.4each.com.br/threads/programa-padr%C3%A3o.22153/</link>
      <guid>https://www.4each.com.br/threads/programa-padr%C3%A3o.22153/</guid>
      <author>lorenzi</author>
      <dc:creator>lorenzi</dc:creator>
      <content:encoded><![CDATA[Bom dia Srs. <br />
<br />
Acho que esse é o Espaço Ideal para esse questionamento <br />
<br />
Gostaria de saber como eu faço para deixar um programa default no link chamado no navegador, Por exemplo só chamar a pasta do projeto e o mesmo reconhecer o Arquivo Index, como funciona no PHP.<br />
<br />
Vi que no painel de ADM do starWEB ele nao chama programa somente a pasta gostaria de saber onde parametrizo isso.<br />
<br />
<br />
Att.<br />
Marcelo de Lorenzi]]></content:encoded>
      <slash:comments>1</slash:comments>
    </item>
    <item>
      <title>StarWeb - contato</title>
      <pubDate>Mon, 23 Feb 2015 13:31:19 +0000</pubDate>
      <link>https://www.4each.com.br/threads/starweb-contato.12885/</link>
      <guid>https://www.4each.com.br/threads/starweb-contato.12885/</guid>
      <author>pizzaia</author>
      <dc:creator>pizzaia</dc:creator>
      <content:encoded><![CDATA[bom dia.<br />
<br />
estamos querendo analisar a ferramenta starWeb, porém pelos contatos disponíveis no site <a href="http://www.starweb-software.com.br" target="_blank" class="externalLink" rel="nofollow">www.starweb-software.com.br</a> não estamos conseguindo.<br />
<br />
esta ferramenta está ativa, com atualiações. ainda está sendo comercializada?<br />
<br />
com quem devo falar. <br />
<br />
obrigado.]]></content:encoded>
      <slash:comments>1</slash:comments>
    </item>
    <item>
      <title>014 - CRUD + pesquisa</title>
      <pubDate>Fri, 16 Jan 2015 18:39:28 +0000</pubDate>
      <link>https://www.4each.com.br/threads/014-crud-pesquisa.6342/</link>
      <guid>https://www.4each.com.br/threads/014-crud-pesquisa.6342/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><span style="color: #b30000"><i><b>Tempo estimado de leitura: menos de 15 minutos</b></i></span>&#8203;</div><br />
No tópico 014 vimos a parte de CRUD.<br />
No tópico 012 o exemplo mostrava como abrir uma tela de pesquisa e localizar um registro.<br />
<br />
Vamos juntar esses dois exemplos, o que irá nos permitir colocar um a tela de pesquisa, simples, no nosso exemplo de CRUD.<br />
<br />
Inicialmente pegamos o exemplo do tópico 013 e vamos colocar nele um botão a mais na régua de menu.<br />
Será o botão pesquisar. O mesmo se encontra em anexo.<br />
<br />
Nossa régua de menu então será assim:<br />


<div class="bbCodeBlock bbCodePHP">
	<div class="type">PHP:</div>
	<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB">&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;colspan="2"&nbsp;align="center"&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a&nbsp;href="Javascript:navegarPara(~'</span><span style="color: #0000BB">primeiro</span><span style="color: #007700">~</span><span style="color: #DD0000">')"&gt;&lt;img&nbsp;src="/webforum4each/imagens/btn_primeiro.png"&nbsp;border="0"&nbsp;alt="Primeiro"&gt;&lt;/a&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a&nbsp;href="Javascript:navegarPara(~'</span><span style="color: #0000BB">anterior</span><span style="color: #007700">~</span><span style="color: #DD0000">')"&gt;&lt;img...</span>
</span>
</code></div>
</div><a href="https://www.4each.com.br/threads/014-crud-pesquisa.6342/" class="internalLink">014 - CRUD + pesquisa</a>]]></content:encoded>
      <slash:comments>7</slash:comments>
    </item>
    <item>
      <title>013 - CRUD (manutenção de cadastros)</title>
      <pubDate>Fri, 16 Jan 2015 18:38:55 +0000</pubDate>
      <link>https://www.4each.com.br/threads/013-crud-manuten%C3%A7%C3%A3o-de-cadastros.6181/</link>
      <guid>https://www.4each.com.br/threads/013-crud-manuten%C3%A7%C3%A3o-de-cadastros.6181/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><span style="color: #b30000"><i><b>Tempo estimado de leitura: menos de 45 minutos</b></i></span>&#8203;</div><br />
<br />
Uma defição de CRUD, vinda da Wikepédia.<br />
&quot;<b>CRUD</b> (<a href="http://pt.wikipedia.org/wiki/Acr%C3%B4nimo" target="_blank" class="externalLink" rel="nofollow">acrônimo</a> de <b>C</b>reate, <b>R</b>ead, <b>U</b>pdate e <b>D</b>elete em <a href="http://pt.wikipedia.org/wiki/L%C3%ADngua_Inglesa" target="_blank" class="externalLink" rel="nofollow">língua Inglesa</a>) para as quatro operações básicas utilizadas em<span style="color: #000000"> bancos de dados relacionais</span> (RDBMS) ou em interface para usuários para criação, consulta, atualização e destruição de dados.&quot;<br />
<a href="http://pt.wikipedia.org/wiki/CRUD" target="_blank" class="externalLink" rel="nofollow">Clique aqui para ver a definição completa.</a><br />
<br />
Aqui não há muito o que falar, apenas fazer e, existem várias maneiras, vários estilos, de ser feito.<br />
Mãos à obra então.<br />
<br />
Começando...<br />
<br />
Nos nossos exemplos até agora, que sempre foram mera extração de dados, usamos as tabelas do banco Sports.<br />
Tais...<br />
<br />
<a href="https://www.4each.com.br/threads/013-crud-manuten%C3%A7%C3%A3o-de-cadastros.6181/" class="internalLink">013 - CRUD (manutenção de cadastros)</a>]]></content:encoded>
      <slash:comments>27</slash:comments>
    </item>
    <item>
      <title>012 - Consulta com zoom (008 + 007 + 011)</title>
      <pubDate>Fri, 16 Jan 2015 18:38:26 +0000</pubDate>
      <link>https://www.4each.com.br/threads/012-consulta-com-zoom-008-007-011.5946/</link>
      <guid>https://www.4each.com.br/threads/012-consulta-com-zoom-008-007-011.5946/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><span style="color: #b30000"><i><b>Tempo estimado de leitura: menos de 10 minutos</b></i></span>&#8203;</div><br />
Vamos fazer uma coisa diferente...<br />
<br />
No tópico 8 fizemos uma tela onde digitávamos  o &quot;código&quot; de um cliente e era mostrado  o detalhe do mesmo.<br />
No tópico 7 vimos como um programa podia chamar outro, passando parâmetros, através de link´s.<br />
E no tópico anterior, o 11, vimos como paginar dados.<br />
<br />
Vamos aproveitar o conhecimento desses três tópicos (e parte do código já pronto deles) para montar uma tela de consulta de clientes.<br />
Nessa tela, poderemos digitar o código do cliente e mostrarmos o detalhe dele. Mas se não soubermos o código, poderemos linkar (chamar) uma tela de &quot;zoom&quot;, que liste os registros, paginando eles. De maneira que, selecionado um cliente na tela de listagem, paginada, o mesmo seja mostrado na tela de detalhe.<br />
<br />
Nós vamos ter dois programas.<br />
A tela de &quot;consulta de...<br />
<br />
<a href="https://www.4each.com.br/threads/012-consulta-com-zoom-008-007-011.5946/" class="internalLink">012 - Consulta com zoom (008 + 007 + 011)</a>]]></content:encoded>
      <slash:comments>6</slash:comments>
    </item>
    <item>
      <title>011 - Paginação dos dados</title>
      <pubDate>Fri, 16 Jan 2015 18:37:56 +0000</pubDate>
      <link>https://www.4each.com.br/threads/011-pagina%C3%A7%C3%A3o-dos-dados.5945/</link>
      <guid>https://www.4each.com.br/threads/011-pagina%C3%A7%C3%A3o-dos-dados.5945/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><span style="color: #b30000"><i><b>Tempo estimado de leitura: menos de 20 minutos</b></i></span>&#8203;</div><br />
Quando estamos no ambiente host based ou client/server, podemos ler os dados do banco e exibi-los ao usuário com facilidade.<br />
Independente da quantidade de dados que exista, a sessão do usuário consegue ler os dados à medida que eles são necessários.<br />
Um exemplo tipico disso é uma query com um browse.<br />
Basta abrir a query e o browse que a usa pode andar pelos seus registros, mostrando os dados.<br />
Independente de serem 5 registros ou 5000 registros, eles são trazidos pela rede e mostrados.<br />
O código abaixo exemplifica isso.<br />


<div class="bbCodeBlock bbCodeCode">
	<div class="type">Código:</div>
	<pre>
DEFINE QUERY q1 FOR Customer.

DEFINE BROWSE b1 QUERY q1
    DISPLAY Customer.Cust-Num LABEL &quot;Código&quot;
            Customer.Name     LABEL &quot;Nome do cliente&quot;
    WITH 10 DOWN SEPARATORS.

OPEN QUERY q1 FOR EACH Customer NO-LOCK.
UPDATE b1.
</pre>
</div>Mas no ambiente web,...<br />
<br />
<a href="https://www.4each.com.br/threads/011-pagina%C3%A7%C3%A3o-dos-dados.5945/" class="internalLink">011 - Paginação dos dados</a>]]></content:encoded>
      <slash:comments>5</slash:comments>
    </item>
    <item>
      <title>010 - Arquivos externos da web (imagens, .css, .js)</title>
      <pubDate>Fri, 16 Jan 2015 18:37:25 +0000</pubDate>
      <link>https://www.4each.com.br/threads/010-arquivos-externos-da-web-imagens-css-js.5766/</link>
      <guid>https://www.4each.com.br/threads/010-arquivos-externos-da-web-imagens-css-js.5766/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><span style="color: #b30000"><i><b>Tempo estimado de leitura: menos de 5 minutos</b></i></span>&#8203;</div><br />
Nosso exemplos até agora são compostos apenas pelo arquivo de programa (em 4GL). São as nossas páginas/programas. O melhor, são os nossos &quot;programas&quot;.<br />
Como são programas em 4GL Progress, que rodam sobre o ambiente do WebSpeed e/ou StarWeb FrameWork, eles deve estar acessíveis a esses ambientes.<br />
No caso, eles estão na PROPATH, o que permite serem executados pelo Progress.<br />
A include padrão temos usados, { src/web/method/wrap-cgi.i }, esta na PROPATH, por isso ela consegue ser localizada e compilada com nossos programas.<br />
A PROPATH é configurada nos arquivos de configuração do ambiente, a saber, WebSpeed ou StarWeb FrameWork. Cada um tem seu arquivo de configuração, que nada mais é do que um arquivo de configuração Progress.<br />
<br />
Porém, arquivos da web, tais como imagens, arquivos JavaScript,...<br />
<br />
<a href="https://www.4each.com.br/threads/010-arquivos-externos-da-web-imagens-css-js.5766/" class="internalLink">010 - Arquivos externos da web (imagens, .css, .js)</a>]]></content:encoded>
      <slash:comments>2</slash:comments>
    </item>
    <item>
      <title>009 - Usando form´s - outros input´s do html</title>
      <pubDate>Fri, 16 Jan 2015 18:18:07 +0000</pubDate>
      <link>https://www.4each.com.br/threads/009-usando-form%C2%B4s-outros-input%C2%B4s-do-html.5744/</link>
      <guid>https://www.4each.com.br/threads/009-usando-form%C2%B4s-outros-input%C2%B4s-do-html.5744/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><b><span style="color: #b30000">Tempo estimado de leitura: menos de 15 minutos</span></b></i>&#8203;</div><br />
Embora o html não tenha tipagem de dados no form, ou seja, tudo é caracter, ele possui diversos tipos visuais, tais quais usamos na programação para ambiente gráfico (gui).<br />
<br />
Vamos imaginar uma tela para consulta.<br />
A especificação poderia dizer algo como:<br />
<ul>
<li>Deverá receber o código inicial e final do cliente (de / até)</li>
<li>Receber o período em que as compras foram feitas</li>
<li>Poderá listar as compras feitas através de um representante especifico ou de todos.</li>
<li>Terá como opções poder listar apenas os clientes que possuem compraa feitas, ou listar também as ordens de compra deles ou ainda listar tanto as ordens de compra quantos os itens das mesmas</li>
<li>Poderá consultar todas ou somente as já entregues</li>
</ul>Nossa tela poderia ser algo assim:...<br />
<br />
<a href="https://www.4each.com.br/threads/009-usando-form%C2%B4s-outros-input%C2%B4s-do-html.5744/" class="internalLink">009 - Usando form´s - outros input´s do html</a>]]></content:encoded>
      <slash:comments>10</slash:comments>
    </item>
    <item>
      <title>008 - Usando form´s</title>
      <pubDate>Fri, 16 Jan 2015 18:17:34 +0000</pubDate>
      <link>https://www.4each.com.br/threads/008-usando-form%C2%B4s.5719/</link>
      <guid>https://www.4each.com.br/threads/008-usando-form%C2%B4s.5719/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><b><span style="color: #b30000">Tempo estimado de leitura: menos de 10 minutos</span></b></i>&#8203;</div><br />
<br />
Link´s é uma forma simples de, a partir de uma página/programa, acessarmos outro.<br />
Eles também permitem que dados sejam passados entre as páginas.<br />
Poderíamos usar essa forma de passagem de parâmetros dentro de uma mesma página, fazendo com que ela tivesse um link para ela mesma, mas passando parâmetros...<br />
<br />
Uma forma mais eficiente de fazer isso, dependendo da situação, é o uso de formalários (form).<br />
<br />
Um form nada mais é que uma estrutura do HTML onde campos e botões podem ser colocados e, a partir de uma determinada ação, enviar informações para o servidor.<br />
<br />
Vamos imaginar uma tela onde possamos informar o código de um cliente e, apertando um botão, essa informação é enviada para o servidor, para o nosso programa, de maneira que, a partir desse código informado, possamos trazer os demais...<br />
<br />
<a href="https://www.4each.com.br/threads/008-usando-form%C2%B4s.5719/" class="internalLink">008 - Usando form´s</a>]]></content:encoded>
      <slash:comments>2</slash:comments>
    </item>
    <item>
      <title>007 - Links - Dando RUN em outras páginas/programas</title>
      <pubDate>Fri, 16 Jan 2015 18:16:41 +0000</pubDate>
      <link>https://www.4each.com.br/threads/007-links-dando-run-em-outras-p%C3%A1ginas-programas.5716/</link>
      <guid>https://www.4each.com.br/threads/007-links-dando-run-em-outras-p%C3%A1ginas-programas.5716/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><b><span style="color: #b30000">Tempo estimado de leitura: menos de 15 minutos</span></b></i>&#8203;</div><br />
Através da 4GL podemos facilmente, a partir de um programa, rodar outro.<br />
É o comando RUN que nos permite isso.<br />
<br />
Por exemplo:<br />


<div class="bbCodeBlock bbCodeCode">
	<div class="type">Código:</div>
	<pre>
UPDATE cliente.
RUN calculaSaldo.p (INPUT cliente, OUTPUT valorSaldo)
DISPLAY valorSaldo.
</pre>
</div>Nesse caso, recebemos o código de um cliente e passamos o mesmo para outro programa (calculaSaldo.p). Esse outro programa faz algo e nos devolve um valor.<br />
Ou seja, de um programa chamamos, damos RUN, em outro.<br />
<br />
RUN é um comando da 4GL, e, qualquer que seja o ambiente, caracter, gráfico, appserver, web, ele pode ser usado.<br />
<br />
Mas ele é um comando que, no nosso caso, para web, é executado pelo programa quando o mesmo esta sendo executado pelo servidor. Ou seja, quando ele é executado e, então, ele gera uma saída HTML que volta para o browser.<br />
<br />
O que é completamente...<br />
<br />
<a href="https://www.4each.com.br/threads/007-links-dando-run-em-outras-p%C3%A1ginas-programas.5716/" class="internalLink">007 - Links - Dando RUN em outras páginas/programas</a>]]></content:encoded>
      <slash:comments>4</slash:comments>
    </item>
    <item>
      <title>006 - Mostrando dados de multiplas tabelas</title>
      <pubDate>Fri, 16 Jan 2015 18:15:10 +0000</pubDate>
      <link>https://www.4each.com.br/threads/006-mostrando-dados-de-multiplas-tabelas.5705/</link>
      <guid>https://www.4each.com.br/threads/006-mostrando-dados-de-multiplas-tabelas.5705/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><b><span style="color: #b30000">Tempo estimado de leitura: menos de 10 minutos</span></b></i>&#8203;</div><br />
Mostrar dados de uma, duas ou dez tabelas é praticamente a mesma coisa. Não é porque estamos no ambiente web que isso se altera. A 4GL (e um pouco de codificação) resolvem o problema.<br />
<br />
O exemplo abaixo permite mostrar os clientes e suas ordens de compra.<br />
<br />


<div class="bbCodeBlock bbCodePHP">
	<div class="type">PHP:</div>
	<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB">DEFINE&nbsp;VARIABLE&nbsp;corDeFundo&nbsp;</span><span style="color: #007700">AS&nbsp;</span><span style="color: #0000BB">CHARACTER</span><span style="color: #007700">.<br /><br /></span><span style="color: #FF8000">/*&nbsp;Include&nbsp;com&nbsp;as&nbsp;funcionalidades&nbsp;web&nbsp;*/<br /></span><span style="color: #007700">{&nbsp;</span><span style="color: #0000BB">src</span><span style="color: #007700">/</span><span style="color: #0000BB">web</span><span style="color: #007700">/</span><span style="color: #0000BB">method</span><span style="color: #007700">/</span><span style="color: #0000BB">wrap</span><span style="color: #007700">-</span><span style="color: #0000BB">cgi</span><span style="color: #007700">.</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #007700">}<br /><br /></span><span style="color: #FF8000">/*&nbsp;Gera&nbsp;o&nbsp;header&nbsp;html&nbsp;*/<br /></span><span style="color: #0000BB">output</span><span style="color: #007700">-</span><span style="color: #0000BB">content</span><span style="color: #007700">-</span><span style="color: #0000BB">type</span><span style="color: #007700">(</span><span style="color: #DD0000">"text/html"</span><span style="color: #007700">).<br /><br /></span><span style="color: #FF8000">/*&nbsp;Abre&nbsp;a&nbsp;página&nbsp;html&nbsp;*/<br /></span><span style="color: #007700">{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'&lt;html&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;head&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;title&gt;Exemplo&lt;/title&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;/head&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;body&gt;'&nbsp;</span><span style="color: #0000BB">SKIP</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">).<br /><br /></span><span style="color: #FF8000">/*&nbsp;Conteúdo&nbsp;da&nbsp;página&nbsp;html&nbsp;*/<br /></span><span style="color: #0000BB">FIND&nbsp;FIRST&nbsp;Customer&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">LOCK&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">.<br />IF&nbsp;</span><span style="color: #0000BB">NOT&nbsp;AVAILABLE&nbsp;Customer<br />&nbsp;&nbsp;&nbsp;THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'Tabela&nbsp;esta&nbsp;vázia'&nbsp;</span><span style="color: #0000BB">SKIP</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;ELSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DO:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'&lt;div&nbsp;align="center"&gt;'&nbsp;</span><span style="color: #0000BB">SKIP</span><span style="color: #007700">...</span>
</span>
</code></div>
</div><a href="https://www.4each.com.br/threads/006-mostrando-dados-de-multiplas-tabelas.5705/" class="internalLink">006 - Mostrando dados de multiplas tabelas</a>]]></content:encoded>
      <slash:comments>3</slash:comments>
    </item>
    <item>
      <title>005 - Mostrando vários registros</title>
      <pubDate>Fri, 16 Jan 2015 18:14:36 +0000</pubDate>
      <link>https://www.4each.com.br/threads/005-mostrando-v%C3%A1rios-registros.5662/</link>
      <guid>https://www.4each.com.br/threads/005-mostrando-v%C3%A1rios-registros.5662/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><b><span style="color: #b30000">Tempo estimado de leitura: menos de 5 minutos</span></b></i>&#8203;</div><br />
O mesmo raciocínio que usamos para mostrar um registro (find) podemos usar para mostrar vários registros (for each).<br />
Podemos fazer uso do {&amp;display} do WebSpeed, como no exemplo abaixo<br />


<div class="bbCodeBlock bbCodePHP">
	<div class="type">PHP:</div>
	<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #FF8000">/*&nbsp;Include&nbsp;com&nbsp;as&nbsp;funcionalidades&nbsp;web&nbsp;*/<br /></span><span style="color: #007700">{&nbsp;</span><span style="color: #0000BB">src</span><span style="color: #007700">/</span><span style="color: #0000BB">web</span><span style="color: #007700">/</span><span style="color: #0000BB">method</span><span style="color: #007700">/</span><span style="color: #0000BB">wrap</span><span style="color: #007700">-</span><span style="color: #0000BB">cgi</span><span style="color: #007700">.</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #007700">}<br /><br /></span><span style="color: #FF8000">/*&nbsp;Gera&nbsp;o&nbsp;header&nbsp;html&nbsp;*/<br /></span><span style="color: #0000BB">output</span><span style="color: #007700">-</span><span style="color: #0000BB">content</span><span style="color: #007700">-</span><span style="color: #0000BB">type</span><span style="color: #007700">(</span><span style="color: #DD0000">"text/html"</span><span style="color: #007700">).<br /><br /></span><span style="color: #FF8000">/*&nbsp;Abre&nbsp;a&nbsp;página&nbsp;html&nbsp;*/<br /></span><span style="color: #007700">{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'&lt;html&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;head&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;title&gt;Exemplo&lt;/title&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;/head&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;body&gt;'&nbsp;</span><span style="color: #0000BB">SKIP</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">).<br /><br /></span><span style="color: #FF8000">/*&nbsp;Conteúdo&nbsp;da&nbsp;página&nbsp;html&nbsp;*/<br /></span><span style="color: #0000BB">FIND&nbsp;FIRST&nbsp;Customer&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">LOCK&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">.<br />IF&nbsp;</span><span style="color: #0000BB">NOT&nbsp;AVAILABLE&nbsp;Customer<br />&nbsp;&nbsp;&nbsp;THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'Tabela&nbsp;esta&nbsp;vázia'&nbsp;</span><span style="color: #0000BB">SKIP</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;ELSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;</span><span style="color: #0000BB">EACH&nbsp;Customer&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">LOCK</span><span style="color: #007700">:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&amp;</span><span style="color: #0000BB">DISPLAY</span><span style="color: #007700">}&nbsp;</span><span style="color: #0000BB">Customer</span><span style="color: #007700">.</span><span style="color: #0000BB">Cust</span><span style="color: #007700">-</span><span style="color: #0000BB">Num<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customer</span><span style="color: #007700">.</span><span style="color: #0000BB">Name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customer</span><span style="color: #007700">.</span><span style="color: #0000BB">Country</span><span style="color: #007700">...</span>
</span>
</code></div>
</div><a href="https://www.4each.com.br/threads/005-mostrando-v%C3%A1rios-registros.5662/" class="internalLink">005 - Mostrando vários registros</a>]]></content:encoded>
      <slash:comments>1</slash:comments>
    </item>
    <item>
      <title>004 - Mostrando um registro</title>
      <pubDate>Fri, 16 Jan 2015 18:14:03 +0000</pubDate>
      <link>https://www.4each.com.br/threads/004-mostrando-um-registro.5661/</link>
      <guid>https://www.4each.com.br/threads/004-mostrando-um-registro.5661/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><b><span style="color: rgb(179, 0, 0)">Tempo estimado de leitura: menos de 5 minutos</span></b></i>&#8203;</div><br />
A programação para web é, do ponto de vista de pesquisar dados do banco, igual ao que já fazemos no caracter ou no gráfico.<br />
Já sabemos que {&amp;out} é o &quot;comando&quot; que usamos para mostrar algo. Porém podemos lançar mão de um outro pré-processor, chamado {&amp;display}.<br />
{&amp;display} faz o equivalente a um DISPLAY padrão, a saber, um saída formatada, como se tivéssemos um frame comum do caracter/gráfico.<br />
<br />
O programa abaixo:<br />


<div class="bbCodeBlock bbCodePHP">
	<div class="type">PHP:</div>
	<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #FF8000">/*&nbsp;Include&nbsp;com&nbsp;as&nbsp;funcionalidades&nbsp;web&nbsp;*/<br /></span><span style="color: #007700">{&nbsp;</span><span style="color: #0000BB">src</span><span style="color: #007700">/</span><span style="color: #0000BB">web</span><span style="color: #007700">/</span><span style="color: #0000BB">method</span><span style="color: #007700">/</span><span style="color: #0000BB">wrap</span><span style="color: #007700">-</span><span style="color: #0000BB">cgi</span><span style="color: #007700">.</span><span style="color: #0000BB">i&nbsp;</span><span style="color: #007700">}<br /><br /></span><span style="color: #FF8000">/*&nbsp;Gera&nbsp;o&nbsp;header&nbsp;html&nbsp;*/<br /></span><span style="color: #0000BB">output</span><span style="color: #007700">-</span><span style="color: #0000BB">content</span><span style="color: #007700">-</span><span style="color: #0000BB">type</span><span style="color: #007700">(</span><span style="color: #DD0000">"text/html"</span><span style="color: #007700">).<br /><br /></span><span style="color: #FF8000">/*&nbsp;Abre&nbsp;a&nbsp;página&nbsp;html&nbsp;*/<br /></span><span style="color: #007700">{&amp;</span><span style="color: #0000BB">out</span><span style="color: #007700">}&nbsp;</span><span style="color: #DD0000">'&lt;html&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;head&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;title&gt;Exemplo&lt;/title&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;/head&gt;'&nbsp;</span><span style="color: #0000BB">SKIP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'&lt;body&gt;'&nbsp;</span><span style="color: #0000BB">SKIP</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">).<br /><br /></span><span style="color: #FF8000">/*&nbsp;Conteúdo&nbsp;da&nbsp;página&nbsp;html&nbsp;*/<br /></span><span style="color: #0000BB">FIND&nbsp;FIRST&nbsp;Customer&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">LOCK&nbsp;NO</span><span style="color: #007700">-</span><span style="color: #0000BB">ERROR</span><span style="color: #007700">.<br />IF&nbsp;</span><span style="color: #0000BB">NOT&nbsp;AVAILABLE</span><span style="color: #007700">...</span>
</span>
</code></div>
</div><a href="https://www.4each.com.br/threads/004-mostrando-um-registro.5661/" class="internalLink">004 - Mostrando um registro</a>]]></content:encoded>
      <slash:comments>2</slash:comments>
    </item>
    <item>
      <title>003 - Olá Mundo</title>
      <pubDate>Fri, 16 Jan 2015 18:13:18 +0000</pubDate>
      <link>https://www.4each.com.br/threads/003-ol%C3%A1-mundo.5660/</link>
      <guid>https://www.4each.com.br/threads/003-ol%C3%A1-mundo.5660/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[<div style="text-align: right"><i><span style="color: #b30000"><b>Tempo estimado de leitura: menos de 10 minutos</b></span></i>&#8203;</div><br />
<br />
Nós temos três estilos/técnicas/formas de programação.<br />
<ul>
<li>HTML Mapeado</li>
<li>SpeedScript</li>
<li>CGI Wrapper</li>
</ul>Cada um tem seus prós e contras.<br />
Iremos falar sobre eles mais adiante.<br />
<br />
Por enquanto, no nossos exemplos, usaremos a técnica de CGI Wrapper.<br />
<br />
No CGI Wrapper, nós usamos a 4GL para “gerar” a saída HTML, a nossa página.<br />
<br />
Uma página HTML, que mostre o conteúdo “Olá Mundo”, tem um conteúdo semelhante a esse:<br />


<div class="bbCodeBlock bbCodeHtml">
	<div class="type">HTML:</div>
	<pre>
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Exemplo&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Exemplo Olá Mundo
&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>Se quisermos “compactar” um pouco, podemos colocar na forma de uma linha, uma vez que para o HTML, a disposição do código é irrelevante.<br />


<div class="bbCodeBlock bbCodeHtml">
	<div class="type">HTML:</div>
	<pre>&lt;html&gt;&lt;head&gt;&lt;title&gt;Exemplo&lt;/title&gt;&lt;/head&gt;&lt;body&gt;Exemplo Olá Mundo&lt;/body&gt;&lt;/html&gt;</pre>
</div>Mas para nós, programadores, ter o conteúdo...<br />
<br />
<a href="https://www.4each.com.br/threads/003-ol%C3%A1-mundo.5660/" class="internalLink">003 - Olá Mundo</a>]]></content:encoded>
      <slash:comments>6</slash:comments>
    </item>
    <item>
      <title>001 - Finalidade desse novo espaço</title>
      <pubDate>Fri, 16 Jan 2015 17:50:05 +0000</pubDate>
      <link>https://www.4each.com.br/threads/001-finalidade-desse-novo-espa%C3%A7o.5653/</link>
      <guid>https://www.4each.com.br/threads/001-finalidade-desse-novo-espa%C3%A7o.5653/</guid>
      <author>Agnaldo</author>
      <dc:creator>Agnaldo</dc:creator>
      <content:encoded><![CDATA[Olá pessoal.<br />
<br />
Hoje o forum possui a área &quot;Webspeed&quot;, onde dúvidas, comentários e soluções sobre WebSpeed são postados.<br />
<br />
Possui também uma área de “resources”, onde temos exemplos, dicas, manuais e afins.<br />
<br />
Essas duas áreas citadas, muito relevantes por sinal, permitem que assuntos pontuais seja postados.<br />
<br />
O intuito dessa nova área, chamada de “ambiente web”, é para que exemplos de programação, referentes a esse assunto, sejam colocados.<br />
Porém, temos aqui como objetivo fornecer um local que pode ser usado como um pequeno treinamento.<br />
<br />
Visando isso, os exemplos e comentários que aqui serão colocados estarão em uma ordem de seqüência de treinamento, de aprendizagem.<br />
Ou seja, começaremos postando exemplos simples e com o passar do tempo iremos aumentar o nível de complexidade e uso de recursos.<br />
<br />
Afim de manter essa organização de aprendizado, tópicos avulsos (novos) não serão permitidos....<br />
<br />
<a href="https://www.4each.com.br/threads/001-finalidade-desse-novo-espa%C3%A7o.5653/" class="internalLink">001 - Finalidade desse novo espaço</a>]]></content:encoded>
      <slash:comments>1</slash:comments>
    </item>
    <item>
      <title>Erro "cgi"</title>
      <pubDate>Wed, 25 Jun 2014 12:21:43 +0000</pubDate>
      <link>https://www.4each.com.br/threads/erro-cgi.8647/</link>
      <guid>https://www.4each.com.br/threads/erro-cgi.8647/</guid>
      <author>ffranco</author>
      <dc:creator>ffranco</dc:creator>
      <content:encoded><![CDATA[Bom dia, estou iniciando os estudos pertinentes ao desenvolvimento web e realizando o treinamento de ambiente web: <a href="http://www.4each.com.br/forums/ambiente-web-webspeed-e-ou-starweb-framework.79/" class="internalLink">http://www.4each.com.br/forums/ambiente-web-webspeed-e-ou-starweb-framework.79/</a><br />
Ao executar o primeiro código da aula 002 (olá mundo):<br />
<br />
{ src/web/method/wrap-cgi.i }<br />
output-content-type(&quot;text/html&quot;).<br />
{&amp;out} <br />
      &#039;&lt;html&gt;&#039; SKIP<br />
      &#039;&lt;head&gt;&#039; SKIP<br />
      &#039;&lt;title&gt;Exemplo&lt;/title&gt; &#039; SKIP<br />
      &#039;&lt;/head&gt;&#039; SKIP<br />
      &#039;&lt;body&gt;&#039; SKIP<br />
      &#039;Exemplo Olá Mundo&#039; SKIP<br />
      &#039;&lt;/body&gt; &#039; SKIP<br />
      &#039;&lt;/html&gt;&#039; SKIP.<br />
<br />
A seguinte mensagem é apresentada na tela:<br />
<br />
&quot; Incapaz de avaliar a expressão descrita no contexto da função externa &#039;output-content-type&#039; &quot;<br />
<br />
Alguém poderia me auxiliar com esse problema? <br />
Desde já meu muito obrigado.]]></content:encoded>
      <slash:comments>2</slash:comments>
    </item>
  </channel>
</rss>
