** 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 */