sexta-feira, 29 de novembro de 2013

Programa para Relatório de Movimento Contábil ( Datasul )

   
 DEF TEMP-TABLE tt-imprime
        FIELD periodo       AS CHAR
        FIELD cdn_cliente   LIKE tit_acr.cdn_cliente
        FIELD nom_pessoa    LIKE cliente.nom_pessoa
        FIELD sdo_inicial   AS DEC FORMAT ">>>,>>>,>>9.99" COLUMN-LABEL "Saldo Inicial"
        FIELD val_debito    AS DEC FORMAT ">>>,>>>,>>9.99" COLUMN-LABEL "Movto D‚bito"
        FIELD val_credito   AS DEC FORMAT ">>>,>>>,>>9.99" COLUMN-LABEL "Movto Cr‚dito"
        FIELD val_glosa     AS DEC FORMAT ">>>,>>>,>>9.99" COLUMN-LABEL "Movto Glosa"
        FIELD sdo_final     AS DEC FORMAT ">>>,>>>,>>9.99" COLUMN-LABEL "Saldo Final"
        INDEX idx-01 periodo cdn_cliente.
    
DEFINE VARIABLE i-cliente AS INTEGER    NO-UNDO.
DEFINE VARIABLE c-periodo AS CHARACTER  NO-UNDO.
    
    FOR EACH estabelecimento NO-LOCK,
        EACH aprop_ctbl_acr WHERE aprop_ctbl_acr.cod_estab          = estabelecimento.cod_estab     AND
                                  aprop_ctbl_acr.cod_plano_cta_ctbl = "Geral"                       AND
                                  aprop_ctbl_acr.cod_cta_ctbl       = "214001" /* "214001" */ AND
                                  aprop_ctbl_acr.dat_transacao      >= 01/01/01   AND
                                  aprop_ctbl_acr.dat_transacao      <= 03/31/01   NO-LOCK:

        IF NOT aprop_ctbl_acr.log_aprop_ctbl_ctbzda THEN NEXT.
        FIND movto_tit_acr OF aprop_ctbl_acr NO-LOCK NO-ERROR.
        IF movto_tit_acr.log_movto_estordo THEN NEXT.
        FIND tit_acr OF movto_tit_acr NO-LOCK NO-ERROR.
        IF log_tit_acr_estordo THEN NEXT.
        FIND ems505.cliente WHERE cliente.cdn_cliente = tit_acr.cdn_cliente NO-LOCK NO-ERROR .
        
        DISP tit_acr.cdn_cliente aprop_ctbl_acr.log_aprop_ctbl_ctbzda aprop_ctbl_acr.dat_transacao STRING(aprop_ctbl_acr.ind_natur_lancto_ctbl) aprop_ctbl_acr.val_aprop_ctbl.

        ASSIGN i-cliente = tit_acr.cdn_cliente. /* tratar com tt-digita */
        FIND tt-imprime WHERE tt-imprime.periodo = c-periodo AND 
                              tt-imprime.cdn_cliente = i-cliente NO-LOCK NO-ERROR.
        IF NOT AVAIL tt-imprime THEN DO:
            CREATE tt-imprime.
            ASSIGN tt-imprime.periodo = c-periodo 
                   tt-imprime.cdn_cliente = i-cliente.
        END.

        IF aprop_ctbl_acr.ind_natur_lancto_ctbl = "DB" THEN
            ASSIGN tt-imprime.val_debito = tt-imprime.val_debito + aprop_ctbl_acr.val_aprop_ctbl.
        ELSE
            ASSIGN tt-imprime.val_credito = tt-imprime.val_credito + aprop_ctbl_acr.val_aprop_ctbl.

    END.

OUTPUT TO c:\temp\imprime.txt NO-CONVERT.
             
    FOR EACH tt-imprime.
        DISP tt-imprime WITH SCROLLABLE STREAM-IO.
    END.

OUTPUT CLOSE.

RUN winExec(INPUT "notepad.exe" + " " + "c:\temp\imprime.txt",
            INPUT 1).

PROCEDURE WinExec EXTERNAL "kernel32.dll":

DEFINE INPUT PARAMETER prog_name    AS CHARACTER.
DEFINE INPUT PARAMETER visual_style AS SHORT.

END PROCEDURE.

/*

Table: aprop_ctbl_acr

Order Field Name                      Data Type    Flags Format
----- ------------------------------- ------------ ----- -------------------
   10 cod_empresa                     char         m     x(3)
   20 cod_estab                       char         im    x(3)
   30 cod_estab_aprop_ctbl            char         im    x(3)
   40 cod_plano_cta_ctbl              char         im    x(8)
   50 cod_cta_ctbl                    char         im    x(20)
   60 cod_unid_negoc                  char         im    x(3)
   70 cod_plano_ccusto                char         im    x(8)
   80 cod_ccusto                      char         im    x(11)
   90 cod_indic_econ                  char         m     x(8)
  100 ind_natur_lancto_ctbl           char         im    X(02)
  110 ind_tip_aprop_ctbl              char         m     x(30)
  120 ind_gera_val_aprop_ctbl_acr     char         m     X(17)
  130 val_aprop_ctbl                  deci-2       m     ->>>,>>>,>>9.99
  140 num_id_movto_tit_acr            inte         im    9999999999
  150 num_id_aprop_ctbl_acr           inte         im    9999999999
  160 dat_transacao                   date         im    99/99/9999
  170 log_ctbz_aprop_ctbl             logi         m     Sim/NÆo
  180 log_impto_val_agreg             logi         m     Sim/NÆo
  190 log_aprop_ctbl_ctbzda           logi         im    Sim/NÆo
  200 cod_livre_1                     char               x(100)

*/

Nenhum comentário:

Postar um comentário