[RESOLVIDO] Graficos

Discussão em 'EMS , HCM e Totvs 11' iniciado por thiago, Novembro 16, 2011.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. rhemati

    rhemati Membro Participativo

    Fera, boa noite.

    Você pode postar um exemplo desse gráfico com flash para aprendermos. Tem como?

    Obrigado.

    Abs.,
  2. Agnaldo

    Agnaldo Membro Ativo

    Olá Thiago.

    Alguns exemplos.

    Aqui em Flex (não são de gráficos, embora pudessem)
    http://starweb-software.no-ip.info:8000/ex010
    http://starweb-software.no-ip.info:8000/ex020
    http://starweb-software.no-ip.info:8000/ex030


    Esses são gráficos...
    http://starweb-software.no-ip.info:8000/cgi-bin/demo.pl/exemplos/graficos/exemplo010
    http://starweb-software.no-ip.info:8000/cgi-bin/demo.pl/exemplos/graficos/exemplo020
    http://starweb-software.no-ip.info:8000/cgi-bin/demo.pl/exemplos/graficos/exemplo030
    http://starweb-software.no-ip.info:8000/cgi-bin/demo.pl/exemplos/graficos/exemplo040
    http://starweb-software.no-ip.info:8000/cgi-bin/demo.pl/exemplos/graficos/exemplo050

    Abaixo o fonte, em 4GL, do primeiro exemplo (exemplo010)

    Código:
    /*
     *
     *    Arquivo: exemplo010.p
     *  Descrição: Monta gráfico de barras 
     *
     */
     
    /* Include com a lógica CGI do StarWeb FrameWork */
    {cgi/cgi-cgi.i &carregarSuportePara="GRAFICO"}
     
    /* Content type da página */
    output-content-type("text/html").
     
    {&out} '<html>' SKIP
           '<head>' SKIP
           '<title>Starweb FrameWork - Exemplo010</title>' SKIP
           '</head>' SKIP
           '<body bgcolor="#FFFFFF">' SKIP(1).
     
    documentoGrafico-Inicializar(1).
    documentoGrafico-TipoDeGrafico(1,"barras").
    documentoGrafico-Largura(1,500).
    documentoGrafico-Altura(1,300).
    documentoGrafico-TituloPrincipal(1,"Evolução das Notas").
    documentoGrafico-TituloDoEixoX(1,"Meses").
    documentoGrafico-TituloDoEixoY(1,"Notas").
    documentoGrafico-PosicaoDoTituloDoEixoX(1,"em baixo").
    documentoGrafico-PosicaoDoTituloDoEixoY(1,"a esquerda").
     
    documentoGrafico-EscalaDoEixoY(1,0,15,15,0).  
     
    documentoGrafico-GridHorizontal(1,YES).
    documentoGrafico-GridVertical(1,NO).
    documentoGrafico-GridTracejado(1,NO).
     
    documentoGrafico-PontoDoGrafico(1,"Jan",1.0).
    documentoGrafico-PontoDoGrafico(1,"Fev",2.0).
    documentoGrafico-PontoDoGrafico(1,"Mar",3.0).
    documentoGrafico-PontoDoGrafico(1,"Abr",4.0).
    documentoGrafico-PontoDoGrafico(1,"Mai",5.0).
    documentoGrafico-PontoDoGrafico(1,"Jun",6.0).
    documentoGrafico-PontoDoGrafico(1,"Jul",7.0).
    documentoGrafico-PontoDoGrafico(1,"Ago",8.0).
    documentoGrafico-PontoDoGrafico(1,"Set",9.0).
    documentoGrafico-PontoDoGrafico(1,"Out",10.0).
    documentoGrafico-PontoDoGrafico(1,"Nov",11.0).
    documentoGrafico-PontoDoGrafico(1,"Dez",12.0).
     
    {&out} '<div align="center">' SKIP
           '   <table border="1" cellspacing="1" cellpadding="1">' SKIP
           '      <tr>' SKIP
           '         <td>Exemplo usando gráfico em formato de barras</td>' SKIP
           '      </tr>' SKIP
           '      <tr>' SKIP
           '         <td><div id="mostrarGrafico1"> </div></td>' SKIP
           '      </tr>' SKIP
           '   </table>' SKIP
           '</div>' SKIP.
     
    documentoGrafico-Mostrar(1).
     
    {&out} '</body>' SKIP
           '</html>' SKIP.
    
  3. jalegria

    jalegria Membro Participativo

    Tenho um exemplo simples...
    Como eu coloco em anexo aqui no forum?
    Se quiser me passa seu email que eu te mando...
  4. rhemati

    rhemati Membro Participativo

  5. Agnaldo

    Agnaldo Membro Ativo

    Aqui um exemplo simples feito em Flex.

    http://starweb-software.no-ip.info:8000/ex040

    Aqui o fonte, em Flex.
    Código:
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    			   xmlns:s="library://ns.adobe.com/flex/spark" 
    			   xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" creationComplete="srv.send()">
    	
    	<fx:Script>
    		<![CDATA[
    		import mx.controls.Alert;
    		
    		public var retornoXML:XML;
    		
    		public function srvResultado():void
    		   {
    		      retornoXML = new XML(srv.lastResult);
    		      dataGridClientes.dataProvider = retornoXML.registro;
    		
    		      meuGrafico.dataProvider = retornoXML.registro;
    		      eixoHorizontal.dataProvider = retornoXML.registro;
    		      serieDeColunas.dataProvider = retornoXML.registro;
    		   } // public function srvResultado():void
    		
    		public function srvFalha():void
    		   {
    		      Alert.show("Erro no ascesso ao servidor para obter os dados do gráfico.","Atenção");
    		   } // public function srvFalha():void
    		
    		]]>
    	</fx:Script>
    	
    	
    	<fx:Declarations>
    		<mx:HTTPService id="srv" url="http://starweb-software.no-ip.info:8000/cgi-bin/demo.pl/exemplos/xml/grafico01" useProxy="false" resultFormat="e4x" showBusyCursor="true" fault="srvFalha()" result="srvResultado()" />
    	</fx:Declarations>
    	
    	
    	
    	<mx:Panel title="Resumo de vendas por represesentante" width="100%" height="100%"  horizontalCenter="0" verticalCenter="0" layout="absolute">
    		<mx:HBox width="100%" height="100%" verticalAlign="middle" horizontalAlign="center" x="0" y="0">
    			<mx:DataGrid id="dataGridClientes" width="50%" height="100%">
    				<mx:columns>
    					<mx:DataGridColumn headerText="Cod." dataField="representante" width="15"/>
    					<mx:DataGridColumn headerText="Nome do representante" dataField="nome" width="28"/>
    					<mx:DataGridColumn headerText="Valor" dataField="valor" width="14" textAlign="right"/>
    				</mx:columns>   
    			</mx:DataGrid>
    			<mx:Spacer width="1%"/>
    			<mx:ColumnChart id="meuGrafico" width="100%" height="100%" showDataTips="true" fontWeight="bold" toolTip="Resumo de vendas por representante">
    				<mx:horizontalAxis>
    					<mx:CategoryAxis id="eixoHorizontal" categoryField="representante"/>
    				</mx:horizontalAxis>
    				<mx:series>
    					<mx:ColumnSeries id="serieDeColunas"  xField="representante" yField="valor" displayName="Valor"/>
    				</mx:series>
    			</mx:ColumnChart>
    		</mx:HBox>    
    	</mx:Panel>
    	
    </s:Application>
    E aqui o fonte 4GL que gera os dados para o Flex consumir
    Código:
    /* 
     *
     * StarWeb FrameWork (starweb@starweb-software.com.br)
     *
     * Programa exemplos/xml/grafico01.p
     *
     */ 
    
    
    /* ************************************************************************* */ 
    /* ***                                                                   *** */         
    /* ***       Bloco de variaveis                                          *** */
    /* ***                                                                   *** */
    /* ************************************************************************* */ 
    
    
    DEFINE VARIABLE metodo AS CHARACTER.
    
    DEFINE WORK-TABLE ttVendas FIELD Representante    AS CHARACTER
                               FIELD Nome             AS CHARACTER
                               FIELD numeroDeClientes AS INTEGER
                               FIELD numeroDeVendas   AS INTEGER
                               FIELD valorDasVendas   AS DECIMAL.
    
    DEFINE VARIABLE numeroDeClientes AS INTEGER.
    DEFINE VARIABLE numeroDeVendas   AS INTEGER.
    DEFINE VARIABLE valorDasVendas   AS DECIMAL.
    
    
    
    
    /* ************************************************************************* */ 
    /* ***                                                                   *** */         
    /* ***       Bloco de includes                                           *** */
    /* ***                                                                   *** */
    /* ************************************************************************* */ 
    
    
    /* *** Include com a API do StarWeb FrameWork *** */
    { cgi/cgi-cgi.i &carregarSuportePara="XML"}
    
    
    /* ************************************************************************* */ 
    /* ***                                                                   *** */         
    /* ***       Bloco de funçoes                                            *** */
    /* ***                                                                   *** */
    /* ************************************************************************* */ 
    
    
    FUNCTION carregaDados RETURNS LOGICAL ().
    
        FOR EACH Customer BREAK BY Customer.Sales-Rep:
            IF FIRST-OF(Customer.Sales-Rep)
               THEN
                   DO:
                      CREATE ttVendas.
                      ASSIGN ttVendas.Representante = Customer.Sales-Rep.
    
                      FIND SalesRep WHERE SalesRep.Sales-Rep = Customer.Sales-Rep NO-LOCK NO-ERROR.
                      IF AVAILABLE SalesRep
                         THEN
                             ASSIGN ttVendas.Nome = SalesRep.Rep-Name.
                         ELSE
                             ASSIGN ttVendas.Nome = Customer.Sales-Rep.
    
                      ASSIGN numeroDeClientes = 0
                             numeroDeVendas   = 0
                             valorDasVendas   = 0.
    
                      FOR EACH Order WHERE Order.Sales-Rep = Customer.Sales-Rep NO-LOCK:
                          ASSIGN numeroDeVendas = numeroDeVendas + 1.
                          FOR EACH Order-Line OF Order NO-LOCK:
                              ASSIGN valorDasVendas = valorDasVendas + Order-Line.Extended-Price.
                          END.
                      END.
                      ASSIGN ttVendas.NumeroDeVendas = numeroDeVendas
                             ttVendas.ValorDasVendas = valorDasVendas.
                   END.
    
            ASSIGN numeroDeClientes = numeroDeClientes + 1.
    
            IF LAST-OF(Customer.Sales-Rep)
               THEN
                   ASSIGN ttVendas.NumeroDeClientes = numeroDeClientes.
        END.
    END FUNCTION. /* carregaDados RETURNS LOGICAL () */
    
    
    /* ************************************************************************* */ 
    /* ***                                                                   *** */         
    /* ***       Bloco principal                                             *** */
    /* ***                                                                   *** */
    /* ************************************************************************* */ 
    
    
    /* *** Gera o header xml *** */
    output-content-type("text/xml").
    
    carregaDados().
    
    documentoXML-AbrirDocumento("WEB").
    documentoXML-Tabela("dados").
    FOR EACH ttVendas BY ttVendas.Representante:
        documentoXML-Registro("registro").
        documentoXML-Campo("representante",ttVendas.Representante).
        documentoXML-Campo("nome",ttVendas.Nome).
        documentoXML-Campo("valor",TRIM(STRING(ttVendas.ValorDasVendas,">>>,>>9.99"))).
    END.
    documentoXML-FecharDocumento().
    
  6. leandro.marcelino

    leandro.marcelino Sem Pontuação

    Bom dia pessoal,
    O ODBC que eu devo gerar é no servidor onde está o meu apache, eu não tenho que gerar ODBC em todas as estações?

    Att,
    Leandro.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página