Gerar arquivo excel.

Discussão em 'Progress 4GL' iniciado por WolffTI, Abril 26, 2012.

  1. WolffTI

    WolffTI Sem Pontuação

    Bom dia amigos, tudo bom?

    Estou com uma duvida em um programa que estou fazendo, preciso gerar um relatório tanto em tela quanto em excel, até aí beleza, a questão é que um dos campos do relatório, é um campo de endereço e este campo possuí vírgulas dentro da string, por exemplo "Rua dos Inteiros, nº 10110.".
    Como nós sabemos, a vírgula serve para indicar ao progress que deverá inserir o próximo campo, ou valor, em uma próxima célula do excel, o problema é que ele está lendo essa string deste campo do relatório e está jogando o valor "Rua dos inteiros" em uma célula e "nº10110" em outra célula, o que está bagunçando o meu relatório.

    Segue trecho do programa que trabalha isso.

    Código:
    put stream s_01 unformatted
             vd_addr      at 01 ","
             ad_name            ","
             vd_sort            ","
             vd_type            ","
             string(ad_line1)   ","
             string(ad_line2)   ","
             ad_city            ","
             ad_state           ","
             ad_county          ","
             ad_zip             ","
             vd_cr_terms        ","
             vd_pur_cntct       ","
             ad_phone           ","
             ad_fax             ","
             vd_curr            ","
             vd_buyer           ","
             ad_gst_id          ","
             ad_pst_id          .
    
       end. /* for each */
    
      {mfrtrail.i}
    
       output close.
    
    end. /* repeat */
    

    Outra dúvida dentro dessa questão é o seguinte, no excel está sendo ignorado os "0" a esquerda, sendo que tanto por questões estéticas como por questões de identificar os dados seria interessante os "0" a esquerda aparecerem, tem como forçar isso no arquivo gerado em excel?
  2. mcarril

    mcarril Membro Participativo

    Bom dia Tiboy.
    Você pode trocar a "," virgula por ";" para resolver este problema.

    Quanto aos zeros à esquerda, você pode enviar os valores com "string" e "Format"

    exempo:
    def var valor as dec.
    valor = 100,00.
    put stream string(valor, "000,000,009.99").



    put stream s_01 unformatted
    vd_addr at 01 ";"
    ad_name ";"
    vd_sort ";"
    vd_type ";"
    string(ad_line1) ";"
    string(ad_line2) ";"
    ad_city ";"
    ad_state ";"
    ad_county ";"
    ad_zip ";"
    vd_cr_terms ";"
    vd_pur_cntct ";"
    ad_phone ";"
    ad_fax ";"
    vd_curr ";"
    vd_buyer ";"
    ad_gst_id ";"
    ad_pst_id .

    end. /* for each */

    {mfrtrail.i}

    output close.

    end. /* repeat */
  3. jalegria

    jalegria Membro Participativo

    vc pode usar tb assim:
    export stream str delimiter ";" campo1 string(campo2,"999") campo3...

Compartilhe esta Página