segunda-feira, 15 de abril de 2013

FLEX x PROGRESS

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