1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Dados do Browse no Excel

Discussão em 'Progress 4GL' iniciado por erickles, Abril 9, 2009.

  1. erickles

    erickles Membro Participativo

    Pessoal, preciso criar uma planilha Excel (.csv) extraindo os dados de uma Query. Como eu faria isso?
  2. pkr-LL

    pkr-LL Sem Pontuação

    eu costumo criar CSV igual a um TXT separado por ";"
    Dê uma olhada no Ex. abaixo e vê se te ajuda....

    Código:
    /* ---> Definição de Variáveis <--- */
        DEFINE VARIABLE vCaminho AS CHARACTER  NO-UNDO.
    
    /* ---> Seta Caminho de onde o Arquivo será gerado <--- */
        ASSIGN vCaminho = SESSION:TEMP-DIRECTORY + "NomeArquivo.CSV".
    
    /* ---> "Cria" Arquivo <--- */
        OUTPUT TO VALUE(vCaminho).
    
            /* ---> Imprime cabeçalho <--- */
                PUT "Codigo;Nome;Endereço" SKIP.
            /* ---> Imprime Registros <--- */
                FOR EACH tabela NO-LOCK:
                    PUT TRIM(STRING(tabela.CampoCodigo)) FORMAT "X(" + fRetTamanho(STRING(tabela.CampoCodigo)) + ")"
                        ";"
                        TRIM(STRING(tabela.CampoNome)) FORMAT "X(" + fRetTamanho(STRING(tabela.CampoNome)) + ")"
                        ";"
                        TRIM(STRING(tabela.CampoEndereco)) FORMAT "X(" + fRetTamanho(STRING(tabela.CampoEndereco)) + ")"
                        SKIP.
                END.
    
    /* ---> Fecha Arquivo <--- */
        OUTPUT CLOSE.
    
    fRetTamanho --> É uma FUNCTION que retorna o LENGTH DO campo, quando o campo está vazio o valor retornado é 1.
    
  3. erickles

    erickles Membro Participativo

    Este código trará os dados somente do Browse ?
  4. pkr-LL

    pkr-LL Sem Pontuação

    Esse código abaixo faz um loop nos registro da browse....
    dentro do While vc pode usar NomeTabela.NomeCampo da(s) tabela(s) contidas na query da browse.
    Assim é soh você adaptar o código anterior mudando o FOR EACH por esse código abaixo:
    Código:
        DEFINE VARIABLE vQuery AS HANDLE     NO-UNDO.
    
        vQuery = NomeBrowse:QUERY.
        vQuery:GET-FIRST.
        DO WHILE NOT vQuery:QUERY-OFF-END:
    
    
    
            /* ---> pega próximo registro <--- */
                vQuery:GET-NEXT.
        END.
    
  5. Pulllga

    Pulllga Sem Pontuação

    Olá, há um jeito mais fácil ainda para criar planilhas Excel.

    Defina os objetos excel:
    Inicialize os objetos:
    Agora crie um laço de repetição e dentro dele imprima os campos no excel com o comando:
    Depois de tudo impresso, antes de eliminar as variáveis, salve o arquivo:
    Depois de tudo impresso, elimine a instância do excel e todo o resto:
    Existem dezenas, até centenas de outros comando excel, aqui eu demonstrei simplesmente o básico, com estes comando você poderá imprimir dados em qualquer célula do excel.

    A medida que aprecerem dúvidas eu posto mais comandos e dicas do excel.

    T+
  6. sl4v3r

    sl4v3r Membro Participativo

    Pulllga,

    Tente postar os codigos na tag CODE
    Código:
    codigo
    e nao na QUOTE

Compartilhe esta Página