/*****************************************************************************
** Programa: CC000127.p ** Data....: 30/12/03 ** Autor...: DATASUL S.A. ** Objetivo: RELATÓRIO TEXTO ** VersÆo..: 1.00.000 - adm ** OBS.....: Este fonte foi gerado pelo Data Viewer 3.00 *******************************************************************************/ define variable c-prog-gerado as character no-undo initial "CC000127". {include/i-prgvrs.i CC0001AA 1.00.00.005} /****************** Definição de Tabelas Temporárias do Relatório **********************/ define temp-table tt-raw-digita field raw-digita as raw. define temp-table tt-param field destino as integer field arquivo as char field usuario as char field data-exec as date field hora-exec as integer field parametro as logical field formato as integer field v_num_tip_aces_usuar as integer field ep-codigo as integer . /****************** INCLUDE COM VARIÁVEIS GLOBAIS *********************/ {utp/ut-glob.i} /****************** Definição de Parâmetros do Relatório *********************/ /****************** Definição de Variáveis de Seleção do Relatório *********************/ /****************** Definição de Variáveis p/ Campos Virtuais do Relatório *******************/ /****************** Definição de Variáveis Campo Calculado do Relatório **********************/ /****************** Definição de Variáveis do Relatório Não Pedidas em Tela ******************/ /****************** Definição de Variáveis de Total do Relatório *****************************/ def var de-cota-media-tt-002 like cotacao.cota-media no-undo. def var de-cota-mensal-tt-001 like cotacao.cota-mensal no-undo. def var i-mo-codigo-tt-003 like cotacao.mo-codigo no-undo. def var de-var-periodo-tt-004 like cotacao.var-periodo no-undo. /****************** Definição de Variáveis dos Calculos do Relatório *************************/ def input param raw-param as raw no-undo. def input param table for tt-raw-digita. /***************** Definição de Variáveis de Processamento do Relatório *********************/ def var h-acomp as handle no-undo. def var h-FunctionLibrary as handle no-undo. def var v-cod-destino-impres as char no-undo. def var v-num-reg-lidos as int no-undo. def var v-num-point as int no-undo. def var v-num-set as int no-undo. def var v-num-linha as int no-undo. def var v-cont-registro as int no-undo. def var v-des-local-layout as char no-undo. /* Ponto de Inserção de Fonte Livre - Apos Definição de Variáveis */ /****************** Definição de Forms do Relatório 132 Colunas ***************************************/ form cotacao.mo-codigo column-label "Mo" format ">9" at 001 cotacao.ano-periodo column-label "Per¡odo" format "9999/99" at 004 cotacao.cota-media column-label "Cotacao Media" format ">>>,>>9.99999999" at 012 cotacao.cota-mensal column-label "Cotacao Mensal" format ">>>,>>9.99999999" at 029 cotacao.var-periodo column-label "Varia‡Æo Per¡odo" format "->>,>>9.99999999" at 046 with down width 132 no-box stream-io frame f-relat-09-132. /****************** Definição de Forms do Relatório 80 Colunas ***************************************/ form cotacao.mo-codigo column-label "Mo" format ">9" at 001 cotacao.ano-periodo column-label "Per¡odo" format "9999/99" at 004 cotacao.cota-media column-label "Cotacao Media" format ">>>,>>9.99999999" at 012 cotacao.cota-mensal column-label "Cotacao Mensal" format ">>>,>>9.99999999" at 029 cotacao.var-periodo column-label "Varia‡Æo Per¡odo" format "->>,>>9.99999999" at 046 with down width 80 no-box stream-io frame f-relat-09-80. create tt-param. raw-transfer raw-param to tt-param. def temp-table tt-editor no-undo field linha as integer field conteudo as character format "x(80)" index editor-id is primary unique linha. {include/i-rpvar.i} assign c-programa = "CC000127" c-versao = "2.00" c-revisao = ".00.000" c-titulo-relat = "RELATàRIO TEXTO" c-sistema = "". {varinc/var00002.i} run utp/ut-acomp.p persistent set h-acomp. find first mguni.empresa no-lock where mguni.empresa.ep-codigo = i-ep-codigo-usuario no-error. if avail mguni.empresa then assign c-empresa = mguni.empresa.razao-social. else assign c-empresa = "". /* Ponto de Inserção de Fonte Livre - Apos Atribuição de Variáveis */ if tt-param.formato = 1 then do: {include/i-rpcb80.i &stream="str-rp"} end. /* tt-param.formato = 1 */ if tt-param.formato = 2 then do: {include/i-rpcab.i &stream="str-rp"} end. /* tt-param.formato = 2 */ {include/i-rpout.i &stream="stream str-rp"} /* Ponto de Inserção de Fonte Livre - Apos Abertura do Arquivo de Saida */ assign i-ep-codigo-usuario = tt-param.ep-codigo v_cdn_empres_usuar = i-ep-codigo-usuario . def var l-imprime as logical no-undo. assign de-cota-media-tt-002 = 0 de-cota-mensal-tt-001 = 0 i-mo-codigo-tt-003 = 0 de-var-periodo-tt-004 = 0. assign l-imprime = no. if tt-param.destino = 1 then assign v-cod-destino-impres = "Impressora". else if tt-param.destino = 2 then assign v-cod-destino-impres = "Arquivo". else assign v-cod-destino-impres = "Terminal". /* Ponto de Inserção de Fonte Livre - Antes Leitura Registros */ run utp/ut-acomp.p persistent set h-acomp. run pi-inicializar in h-acomp(input "Acompanhamento Relatório"). assign v-num-reg-lidos = 0. for each cotacao no-lock, each moeda no-lock where moeda.mo-codigo = cotacao.mo-codigo break by moeda.mo-codigo by cotacao.ano-periodo: assign v-num-reg-lidos = v-num-reg-lidos + 1. run pi-acompanhar in h-acomp(input string(v-num-reg-lidos)). /*** CàDIGO PARA SAÖDA EM 80 COLUNAS ***/ if tt-param.formato = 1 then do: view stream str-rp frame f-cabec-80. view stream str-rp frame f-rodape-80. assign l-imprime = yes. /* Ponto de Inserção de Fonte Livre - Antes Mostrar Registros */ display stream str-rp cotacao.mo-codigo when first-of(cotacao.ano-periodo) cotacao.ano-periodo cotacao.cota-media cotacao.cota-mensal cotacao.var-periodo with stream-io frame f-relat-09-80. down stream str-rp with frame f-relat-09-80. end. /*** CàDIGO PARA SAÖDA EM 132 COLUNAS ***/ if tt-param.formato = 2 then do: view stream str-rp frame f-cabec. view stream str-rp frame f-rodape. assign l-imprime = yes. /* Ponto de Inserção de Fonte Livre - Antes Mostrar Registros */ display stream str-rp cotacao.mo-codigo when first-of(cotacao.ano-periodo) cotacao.ano-periodo cotacao.cota-media cotacao.cota-mensal cotacao.var-periodo with stream-io frame f-relat-09-132. down stream str-rp with frame f-relat-09-132. end. assign de-cota-mensal-tt-001 = de-cota-mensal-tt-001 + cotacao.cota-mensal de-cota-media-tt-002 = de-cota-media-tt-002 + cotacao.cota-media i-mo-codigo-tt-003 = i-mo-codigo-tt-003 + cotacao.mo-codigo de-var-periodo-tt-004 = de-var-periodo-tt-004 + cotacao.var-periodo. /* Ponto de Inserção de Fonte Livre - Apos Mostrar Registros */ end. /* Ponto de Inserção de Fonte Livre - Apos Leitura Registros */ if l-imprime = no then do: if tt-param.formato = 1 then do: view stream str-rp frame f-cabec-80. view stream str-rp frame f-rodape-80. end. if tt-param.formato = 2 then do: view stream str-rp frame f-cabec. view stream str-rp frame f-rodape. end. disp stream str-rp " " with stream-io frame f-nulo. end. display stream str-rp "----------------" @ cotacao.cota-media "----------------" @ cotacao.cota-mensal "--" @ cotacao.mo-codigo "----------------" @ cotacao.var-periodo with stream-io frame f-relat-09-80. down stream str-rp with frame f-relat-09-80. put stream str-rp i-mo-codigo-tt-003 format ">9" to 002. put stream str-rp de-cota-media-tt-002 format ">>>,>>9.99999999" to 027. put stream str-rp de-cota-mensal-tt-001 format ">>>,>>9.99999999" to 044. put stream str-rp de-var-periodo-tt-004 format "->>,>>9.99999999" to 061. run pi-finalizar in h-acomp. if tt-param.destino <> 1 then page stream str-rp. else do: if tt-param.parametro = yes then page stream str-rp. end. if tt-param.parametro then do: /* Ponto de Inserção de Fonte Livre - Antes da Impressão dos Parâmetros */ disp stream str-rp "CLASSIFICA€ÇO" skip(01) with stream-io frame f-imp-cla. disp stream str-rp " TEXTO" with stream-io side-labels overlay row 040 frame f-imp-cla. put stream str-rp unformatted skip(1) "IMPRESSÇO" skip(1). put stream str-rp unformatted skip " " "Destino : " v-cod-destino-impres " - " tt-param.arquivo format "x(40)". put stream str-rp unformatted skip " " "Execu‡Æo: " if i-num-ped-exec-rpw = 0 then "On-Line" else "Batch". put stream str-rp unformatted skip " " "Formato : " if tt-param.formato = 1 then "80 colunas" else "132 colunas". put stream str-rp unformatted skip " " "Usu rio : " tt-param.usuario. end. else output stream str-rp close. {include/i-rpclo.i &stream="stream str-rp"} /* Ponto de Inserção de Fonte Livre - Apos Fechamento do Arquivo de Saída */ procedure pi-print-editor: def input param c-editor as char no-undo. def input param i-len as integer no-undo. def var i-linha as integer no-undo. def var i-aux as integer no-undo. def var c-aux as char no-undo. def var c-ret as char no-undo. for each tt-editor: delete tt-editor. end. assign c-ret = chr(255) + chr(255). do while c-editor <> "": if c-editor <> "" then do: assign i-aux = index(c-editor, chr(10)). if i-aux > i-len or (i-aux = 0 and length(c-editor) > i-len) then assign i-aux = r-index(c-editor, " ", i-len + 1). if i-aux = 0 then assign c-aux = substr(c-editor, 1, i-len) c-editor = substr(c-editor, i-len + 1). else assign c-aux = substr(c-editor, 1, i-aux - 1) c-editor = substr(c-editor, i-aux + 1). if i-len = 0 then assign entry(1, c-ret, chr(255)) = c-aux. else do: assign i-linha = i-linha + 1. create tt-editor. assign tt-editor.linha = i-linha tt-editor.conteudo = c-aux. end. end. if i-len = 0 then return c-ret. end. return c-ret. end procedure. /* Ponto de Inserção de Fonte Livre - Final Programa */ return 'OK'. /* fim do programa */