Duvida geração de planilha via excel

Discussão em 'Progress 4GL' iniciado por diegocf, Outubro 22, 2010.

  1. diegocf

    diegocf Membro Participativo

    Galera estou confeccionando um relatorio em excel, seguindo um exemplo do forum, mas esta falando que não encontra um variavel, que é justamente o nome da procedure pi-cria-titulos.

    Vejam o codigo abaixo, nao entendi oque esta errado. Ele alega o erro
    (** Unknown Field or Variable name - pi-cria-titulos. (201)
    ** Nao entendi a linha 127. (196))



    Código:
    DEF BUFFER configur_layout_impres FOR emsbas.configur_layout_impres.
    DEF BUFFER configur_tip_imprsor   FOR emsbas.configur_tip_imprsor.
    DEF BUFFER ped_exec               FOR emsbas.ped_exec.
    DEF BUFFER prog_dtsul             FOR emsbas.prog_dtsul.
    
    /* include de controle de versÆo */
     {include/i-prgvrs.i es0001RP 1.00.00.000} 
    
    /* pr‚processador para ativar ou nÆo a sa¡da para RTF */
    &GLOBAL-DEFINE RTF NO
    
    /* pr‚processador para setar o tamanho da p gina */
    &SCOPED-DEFINE pagesize 42   
    
    /* defini‡Æo das temp-tables para recebimento de parƒmetros */
     
    
    
      define temp-table tt-param no-undo
        field destino          as integer
        field arquivo          as char format "x(35)"
        field usuario          as char format "x(12)"
        field data-exec        as date
        field hora-exec        as integer
        field classifica       as integer
        field desc-classifica  as char format "x(40)"
        field modelo-rtf       as char format "x(35)"
        field l-habilitaRtf    as LOG
        FIELD ep-codigo-ini    AS INTEGER 
        FIELD ep-codigo-fim    AS INTEGER 
        FIELD cod-estabel-ini  AS CHARACTER
        FIELD cod-estabel-fim  AS CHARACTER
        FIELD portador-ini     AS CHARACTER 
        FIELD portador-fim     AS CHARACTER
        FIELD carteira-ini     AS CHARACTER 
        FIELD carteira-fim     AS CHARACTER
        field dt-trans-ini     AS date
        FIELD dt-trans-fim     AS date
        FIELD cliente-ini      AS integer 
        FIELD cliente-fim      AS integer
        FIELD uf-ini           AS CHARACTER 
        FIELD uf-fim           AS CHARACTER.
     
    DEFINE TEMP-TABLE tt-raw-digita NO-UNDO
        FIELD raw-digita	   AS RAW.
    
    /* recebimento de parƒmetros */
    DEFINE INPUT PARAMETER raw-param AS RAW NO-UNDO.
    DEFINE INPUT PARAMETER TABLE FOR tt-raw-digita.
    
    CREATE tt-param.
    RAW-TRANSFER raw-param TO tt-param.
    
    /* include padrÆo para vari veis de relat¢rio  */
    /*{include/i-rpvar.i}*/
    
    /* defini‡Æo de vari veis  */
    DEFINE VARIABLE c-nome-plan             AS CHAR FORMAT "x(15)".
    DEFINE VARIABLE c-diretorio             AS CHAR FORMAT "x(256)".
    DEFINE VARIABLE h-acomp                 AS HANDLE     NO-UNDO.
    DEFINE VARIABLE chExcelApplication      AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE chWorkbook              AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE chWorksheet             AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE chWorksheetRange        AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE chExcel                 AS COM-HANDLE NO-UNDO.
    
    /*Teste*/
    /*MESSAGE "Empresa ini:" + STRING(tt-param.ep-codigo-ini)     SKIP(1)
            "Empresa fim:" + STRING(tt-param.ep-codigo-fim)     skip(1)                
            "Estabelecimento ini:" + tt-param.cod-estabel-ini   skip(1)
            "Estabelecimento fim:" + tt-param.cod-estabel-fim   skip(1)
            "Conta Contabil ini:" + tt-param.conta-contabil-ini skip(1)
            "Conta Contabil fim:" + tt-param.conta-contabil-fim skip(1)
            "Centro de Custo ini:" + tt-param.cc-custo-ini      skip(1)
            "Centro de custo fim:" + tt-param.cc-custo-fim      skip(1)
            "Periodo ini:" + STRING(tt-param.periodo-ini)       skip(1)
            "Periodo fim:" + STRING(tt-param.periodo-fim)       VIEW-AS ALERT-BOX INFO BUTTONS OK. */
    
    
    /* include padrÆo para output de relat¢rios */
    /*{include/i-rpout.i &STREAM="stream str-rp"}*/
    
    /* bloco principal do programa */
    /*ASSIGN c-programa 	  = "es0001RP"
       	   c-versao	      = "1.00"
    	   c-revisao      = ".00.000"
    	   c-empresa      = "OuroFino"
    	   c-sistema      = "Financeiro"
    	   c-titulo-relat = "Relat¢rio de comprova‡Æo financeira de projetos financiados".
    */
    
    /* executando de forma persistente o utilit rio de acompanhamento */
    RUN utp/ut-acomp.p PERSISTENT SET h-acomp.
    {utp/ut-liter.i Imprimindo *}
    RUN pi-inicializar IN h-acomp (INPUT RETURN-VALUE).
    
    /*Nome e diret¢rio de destino*/ 
    ASSIGN c-nome-plan = "cfpf" + "_" + STRING(TIME) + ".xls"
           c-diretorio = tt-param.arquivo.
    
    /* corpo do relat¢rio */
    
    /*Criando uma c¢pia do modelo .xls */
    create "Excel.Application" chExcelApplication.
    chWorkbook  = chExcelApplication:Workbooks:OPEN(search("layout\modelo_comp_finan.xls")).
    chWorkSheet = chExcelApplication:Sheets:ITEM(1).
    chExcel     = chExcelApplication:Sheets:ITEM(1).
    chExcelApplication:visible = false.
       
    RUN pi-acompanhar IN h-acomp (INPUT STRING("Gerando Arquivo Excel.")).
    
    DEF VAR v_cod_indic_econ_base            AS CHARACTER       NO-UNDO. /*local*/
    DEF VAR v_val_cotac_indic_econ           AS DECIMAL         NO-UNDO. /*local*/
    
    DEF TEMP-TABLE tt_imprimir NO-UNDO
        FIELD empresa               like  tit_acr.cod_empresa
        field estabel               like  tit_acr.cod_estab
        field portador              LIKE  tit_acr.cod_portador
        field carteira              like  tit_acr.cod_cart_bcia
        FIELD titulo                LIKE  tit_acr.cod_tit_acr
        field serie                 like  tit_acr.cod_ser_docto
        FIELD especie               LIKE  tit_acr.cod_espec_docto
        field parcela               like  tit_acr.cod_parcela.
        
         
    RUN PROCEDURE pi-cria-titulos.
     
    DEF VAR i AS INTEGER INITIAL 8.
    
    FOR EACH tt_imprimir:
                                                                                            
       ASSIGN chExcel:range("A" + string(i)):VALUE = STRING(tt_imprimir.empresa             ).
       ASSIGN chExcel:range("B" + string(i)):VALUE = STRING(tt_imprimir.estabel             ).
       ASSIGN chExcel:range("C" + string(i)):VALUE = STRING(tt_imprimir.portador            ).
       ASSIGN chExcel:range("D" + string(i)):VALUE = STRING(tt_imprimir.carteira            ).
       ASSIGN chExcel:range("E" + string(i)):VALUE = STRING(tt_imprimir.titulo              ).
       ASSIGN chExcel:range("F" + string(i)):VALUE = STRING(tt_imprimir.serie               ).
       ASSIGN chExcel:range("G" + string(i)):VALUE = STRING(tt_imprimir.especie             ).
       ASSIGN chExcel:range("H" + string(i)):VALUE = STRING(tt_imprimir.parcela             ).
    
      
       ASSIGN i = i + 1.
    end.
        
    PROCEDURE pi-cria-titulos:
    
           FOR EACH tit_acr WHERE     tit_acr.cod_empresa   >= STRING(tt-param.ep-codigo-ini) AND
                                      tit_acr.cod_empresa   <= STRING(tt-param.ep-codigo-fim) and 
                                      tit_acr.cod_estab     >= tt-param.cod-estabel-ini       and
                                      tit_acr.cod_estab     <= tt-param.cod-estabel-fim      and 
                                      tit_acr.cod_portador  >= tt-param.portador-ini         and
                                      tit_acr.cod_portador  <= tt-param.portador-fim         and
                                      tit_acr.cod_cart_bcia >= tt-param.carteira-ini         and
                                      tit_acr.cod_cart_bcia <= tt-param.carteira-fim         and
                                      tit_acr.dat_transacao >= tt-param.dt-trans-ini         and
                                      tit_acr.dat_transacao <= tt-param.dt-trans-fim         and
                                      tit_acr.cdn_cliente   >= tt-param.cliente-ini          and
                                      tit_acr.cdn_cliente   <= tt-param.cliente-fim .      /*   and
                                      tit_acr.?                     >= tt-param.uf-ini       and
                                      tit_acr.?                     <= tt-param.uf-fim*/
    
             create  tt_imprimir.
              assign tt_imprimir.empresa    =    tit_acr.cod_empresa
                     tt_imprimir.estabel    =    tit_acr.cod_estab
                     tt_imprimir.portador   =    tit_acr.cod_portador
                     tt_imprimir.carteira   =    tit_acr.cod_portador
                     tt_imprimir.titulo     =    tit_acr.cod_tit_acr
                     tt_imprimir.serie      =    tit_acr.cod_ser_docto
                     tt_imprimir.especie    =    tit_acr.cod_espec_docto
                     tt_imprimir.parcela    =    tit_acr.cod_parcela.
    
           end.
    
    end procedure.
    
              
    
    /*Finaliza excel*/
    chWorkSheet:SaveAs(c-diretorio /*+ "\" + c-nome-plan*/).
    chExcelApplication:visible = true.
    chExcelApplication:Cells:EntireColumn:AutoFit. 
    release object chExcelApplication.
    release object chWorkbook.
    release object chWorksheet.  
    
    /*fechamento do output do relat¢rio*/
    /*{include/i-rpclo.i &STREAM="stream str-rp"}*/
    RUN pi-finalizar IN h-acomp.
    RETURN "OK":U.
    
  2. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Olha caro colega, você manda executar a procedure dessa maneira "RUN PROCEDURE pi-cria-titulos.", tente executar sem o PROCEDURE "RUN pi-cria-titulos."
  3. diegocf

    diegocf Membro Participativo

    Valeu Eduardo era isto mesmo.

    Obrigado

Compartilhe esta Página