/*****************************************************************************
**       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 Insercao de Fonte Livre - Apos Definicao de Variaveis */

/****************** 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 Insercao de Fonte Livre - Apos Atribuicao de Variaveis */

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 Insercao 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 Insercao 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 Insercao 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 Insercao 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 Insercao de Fonte Livre - Apos Mostrar Registros */
end.

/* Ponto de Insercao 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 Insercao de Fonte Livre - Antes da Impressao dos Parametros */


   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 Insercao de Fonte Livre - Apos Fechamento do Arquivo de Saida */

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 Insercao de Fonte Livre - Final Programa */

return 'OK'.

/* fim do programa */
