O Blog tem por objetivo de orientar e tirar dúvidas sobre Flex ou Flash Builder que conversa com a base de dados Progress.
Eu estou com um exemplo do Flex que puxei no 4Each que lê a base de dados Progress. Esse foi um dos exemplos que usei para os meus desenvolvimentos através do EMS e Totvs 11:
Se alguém tiver exemplos melhores referente ao Flex que conversa com a Base de Dados Progress, sempre será bem vindo:
Código Fonte do Flex:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="Inicializar()">
<mx:AdvancedDataGrid id="DgPedidos" designViewDataType="tree" width="900" height="386" selectionMode="singleRow" x="{Application.application.width / 7}" y="67" alpha="0.5" dataProvider="{companyHierarchy}">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="Cliente / Pedido / Item" width="90" dataField="@cpi" textAlign="left" />
<mx:AdvancedDataGridColumn headerText="Dt Pedido / Desc Item" width="90" dataField="@dpi" textAlign="left" />
<mx:AdvancedDataGridColumn headerText="Dt Entrega / Quantidade" width="90" dataField="@deq" textAlign="left" />
<mx:AdvancedDataGridColumn headerText="Vendedor / Vl Unitário" width="90" dataField="@vvl" textAlign="left" />
<mx:AdvancedDataGridColumn headerText="Vl Pedido / Vl Total" width="90" dataField="@vpt" textAlign="left" />
</mx:columns>
</mx:AdvancedDataGrid>
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.collections.HierarchicalData;
[Bindable]
private var companyHierarchy:HierarchicalData;
private function Inicializar():void{
HttpBuscaPedidos.send();
}
private function RetBuscaPedidos(event:ResultEvent):void{
var companyData:XML = new XML(event.result);
companyHierarchy = new HierarchicalData(companyData.cliente);
}
]]>
</mx:Script>
<mx:HTTPService id="HttpBuscaPedidos"
url="http://localhost/cgi-bin/cgiip.exe/WService=AdobeFlash/Projeto/Progress/customer.p"
result="{RetBuscaPedidos(event)}"
resultFormat="e4x"
showBusyCursor="true"
/>
</mx:Application>
Fonte do Progress:
/*salvar como customer.p no diretório raiz*/
{src/web2/wrap-cgi.i}
output-content-type ("text/xml":U).
{&OUT} '<?xml version="1.0" encoding="utf-8"?>' Skip
'<clientes>' Skip.
Define Variable d-val-total As Decimal No-undo.
For Each customer No-lock
Break By customer.cust-num:
If First-of(customer.cust-num)
Then Do:
{&OUT} '<cliente cpi=~"' customer.Name '~">' skip.
End.
For Each order Of customer No-lock
Break By order.order-num:
If First-of(order.order-num)
Then Do:
{&OUT} '<pedido cpi=~"' order.order-num '~" dpi=~"' order.ship-date '~" deq=~"' order.promise-date '~">' Skip.
End.
For Each order-line Of order No-lock:
Find First Item
Where Item.item-num = order-line.item-num
No-lock No-error.
{&OUT} '<itens cpi=~"' order-line.item-num '~" dpi=~"' Item.item-name '~" deq=~"' order-line.qty '~" vvl=~"' order-line.price '~" vpt=~"' String(order-line.qty * order-line.price) '~"/>' Skip.
End.
If Last-of(order.order-num)
Then Do:
{&OUT} '</pedido>' Skip.
End.
End.
If Last-of(customer.cust-num)
Then Do:
{&OUT} '</cliente>' Skip.
End.
End.
{&OUT} '</clientes>' Skip.

Nenhum comentário:
Postar um comentário