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} /* prprocessador para ativar ou nÆo a sa¡da para RTF */ &GLOBAL-DEFINE RTF NO /* prprocessador para setar o tamanho da p gina */ &SCOPED-DEFINE pagesize 42 /* definiÆo das temp-tables para recebimento de parmetros */ 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 parmetros */ 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.
Olha caro colega, você manda executar a procedure dessa maneira "RUN PROCEDURE pi-cria-titulos.", tente executar sem o PROCEDURE "RUN pi-cria-titulos."