'Nome       : BncExt.std
'Tipo       : LST
'Data       : 2009/07/17
'Versao     : 2.0
'Descricao  : Extracto de banco

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.0   2009/??/?? --------------------------------------------------
'Alteracoes para uso no modulo BNC

'- Versao : 1.2   2004/12/15 --------------------------------------------------
'Permitir saldo de conta corrente manual na Reconciliacao Bancaria (SIG 3.5)

'- Versao : 1.1   2004/10/22 --------------------------------------------------
'Reconciliacao bancaria

'- Versao : 1.0   2004/02/10 --------------------------------------------------
'Versao base


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Caracteres invalidos             [CarInv]=#
##


'==============================================================================
#ESP - Campos especificos
'==============================================================================
Zoom para preview             [PrvZoom]=1.5
Opcoes para impressora WIN   [PrWinOpc]=[ORI=P]
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BncExt
Nome                       [DocNom]=BncExt,Extracto

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=Ext_Cab
Listar linhas               [FxLIN]=Ext_Lin; Deb; Cre; Ant,2
Listar fim                  [FxFIM]=Ext_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BncExt
Nome                       [DocNom]=BncExtVs,Extracto com saldo

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=ExtVs_Cab
Listar linhas               [FxLIN]=ExtVs_Lin; Deb; Cre; Ant,2
Listar fim                  [FxFIM]=ExtVs_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BncRec
Nome                       [DocNom]=BncRecAut,Reconciliação Bancária 

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=Rcb_CabAut
Listar linhas               [FxLIN]=Rcb_Lin; Tps; Tpv; Ide; Sep; Deb; Cre
Listar fim                  [FxFIM]=Rcb_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BncRec
Nome                       [DocNom]=BncRecGrAut,Reconciliação Bancária (GRF)

'formato
'Saida/Impressora           [DocPrt]=PAG_W,PRV
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=RcbGr_CabAut
Listar linhas               [FxLIN]=RcbGr_Lin; Tps; Tpv; Ide; Sep; Deb; Cre
Listar fim                  [FxFIM]=RcbGr_Fim
##

'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BncRec
Nome                       [DocNom]=BncXls,Reconciliação Bancária(XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=220
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Base para documento         [FxDOC]=BncXls
Listar cabecalho            [FxCAB]=BncXls_Cab
Listar linhas               [FxLIN]=BncXls_Lin,0; Grp,0; Sbt,0; Sep,0; Tps,0; Tpv,0; Ide,0; Deb,0; Cre,0
Listar fim                  [FxFIM]=BncXls_Fim

Matriz auxiliar            [DocMat]=BncExt.xls

##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'------------------------------------------------------------------------------
'Lista de variaveis especificas
'------------------------------------------------------------------------------
'valores texto
'MemTxt$(01)   - titulo da listagem
'MemTxt$(02)   - tipo de listagem
'MemTxt$(10)   - tipo de linha
'MemTxt$(11)   - tipo de saldo

'MemTxt$()     - tipo do saldo
'MemTxt$(90)   - identificacao

'valores anteriores
'MemNum(21)    - valor a debito
'MemNum(22)    - valor a credito

'valores do extracto
'MemNum(30)    - numero do extracto
'MemNum(31)    - valor a debito
'MemNum(32)    - valor a credito

'valores actuais (acumulados)
'MemNum(41)    - valor a debito
'MemNum(42)    - valor a credito

'MemNum(43)    - valor do saldo
'MemNum(44)    - valor do saldo (absoluto)


'valores diversos
'MemNum(90)    - valor

'------------------------------------------------------------------------------
'Formatacao de valores
'------------------------------------------------------------------------------
Tipo     =MemTxt$(1)
Pag      =Doc_CntPag
DataExt  =FrmVal$(Sig_DtHoje,45,0)


'movimentos anteriores
antDeb   = FrmNum$(16.2, MemNum(21))                        'valor a debito
antCre   = FrmNum$(16.2, MemNum(22))                        'valor a credito

'extracto
ext      = MemNum(20)                                       'numero do extracto
extNum   = FrmNum$(5.0, MemNum(20))                         'numero do extracto
extCt    = Bnc_Bmov_Ct$                                     'conta
extCtNom = Cta_Mst_Nome$                                    'nome da conta
extDeb   = FrmNum$(16.2, MemNum(31))                        'valor a debito
extCre   = FrmNum$(16.2, MemNum(32))                        'valor a credito

'movimentos acumulados
acmDeb   = FrmNum$(12.2, MemNum(41))                        'valor a debito
acmCre   = FrmNum$(12.2, MemNum(42))                        'valor a credito
acmVls   = FrmNum$(12.2, MemNum(44))+" "+MemTxt$(44)        'valor do saldo

acmDeb2  = FrmNum$(16.2, MemNum(41))                        'valor a debito
acmCre2  = FrmNum$(16.2, MemNum(42))                        'valor a credito
acmVls2  = FrmNum$(16.2, MemNum(44))+" "+MemTxt$(44)        'valor do saldo

'valores do movimento
movTdo   = Bnc_Bmov_Tdoc$                                   'tipo de documento
movNdo   = BncFrmNdo$("46", Bnc_Bmov_Tdoc$, Bnc_Bmov_Ndoc$) 'numero de documento
movDoc   = BncFrmNdo$("46", Bnc_Bmov_Tdoc$, Bnc_Bmov_Ndoc$) 'numero de documento
movDtl   = FrmDt$("", Bnc_Bmov_Dtl)                         'data
movDeb   = FrmNum$(12.2, Bnc_Bmov_Vmn)                      'valor a debito
movCre   = FrmNum$(12.2, Bnc_Bmov_Vmn)                      'valor a credito
movDeb2  = FrmNum$(16.2, Bnc_Bmov_Vmn)                      'valor a debito
movCre2  = FrmNum$(16.2, Bnc_Bmov_Vmn)                      'valor a credito
movDes   = Bnc_Bmov_DesCta$                                 'descricao (CTA)
movAdi   = Bnc_Bmov_DesAdi$                                 'descricao (adicional)


'reconciliacao bancaria
rcbIde    = tpvIde$                                          'identificacao
rcbDesCta = Bnc_Bmov_DesCta$                                 'descricao (CTA)
rcbDesBnc = Bnc_Bmov_DesAdi$                                 'descricao (adicional)

rcbVl     = FrmNum$(14.2, MemNum(90))                        'valor
rcbScc    = FrmNum$(14.2, vScc)                              'valor de saldo de conta corrente
rcbVnju   = FrmNum$(14.2, vNju)                              'valor nao justificado

rcbMovDeb = FrmNum$(14.2, Bnc_Bmov_Vmn)                      'valor a debito
rcbMovCre = FrmNum$(14.2, Bnc_Bmov_Vmn)                      'valor a credito
rcbAcmDeb = FrmNum$(14.2, acmMovDeb)                         'valor a debito
rcbAcmCre = FrmNum$(14.2, acmMovCre)                         'valor a credito
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)

'-----------------------------------------------------------------------------
' Funcoes para inicializacao
'-----------------------------------------------------------------------------
Sub FxIni 'funcao de inicializacao
'modo WIN
PrWIN AJT_F, 56.7,  56.7                           'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                          'deslocamento de ajuste
'PrWIN IMG_F, 1, VarTx$("[SIG_DIR.DIV],OliLogo.bmp","R")     'imagem (logotipo)
PrWIN ET,  2                                       'espessura de traco

dimLinNor=4.4                                      'altura de uma linha normal
dimLinCab=6.6                                      'altura de uma linha de cabecalho

FON.T1 = 08   'original 10
FON.T2 = 09   '         12
FON.T3 = 12   '         14
FON.T4 = 14   '         14
end sub


Sub FxFim 'funcao de finalizacao
PrWIN FON, "REG"                                   'limpar registo de fontes
end sub


'------------------------------------------------------------------------------
' Extracto
'------------------------------------------------------------------------------
Sub Ext_Cab 'cabecalho
tit$ = MemTxt$(1)
FxDiv LstIde,16CPI,0
print
?Conta: @extCt       @extCtNom                                                  #

if MemTxt$(10) = "P" then                          'listagem de pendentes ?
?                                                        Movimentos Pendentes   #
else
?                                                        Extracto Numero: @ext  #
end if

'print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI", tit$)
?Data : @DataExt                                                Folha No: @Pag  #
?================================================================================
?   Data      Documento   Descrição                       Debito        Credito    
?================================================================================
end sub


Sub Ext_LinAnt 'movimento anterior
?   Movimento Anterior                             @antDeb        @antCre       #
?--------------------------------------------------------------------------------
end sub


Sub Ext_LinDeb 'valor a debito
?@movDtl    @movDoc       @movDes                  @movDeb                      #
end sub


Sub Ext_LinCre 'valor a credito
?@movDtl    @movDoc       @movDes                                 @movCre       #
end sub


Sub Ext_Fim 'fim de listagem
?================================================================================
if MemTxt$(10) = "P" then                          'listagem de pendentes ?
?   Totais                                         @acmDeb        @acmCre       #
else
?   Movimento Actual                               @acmDeb        @acmCre       #
end if
?================================================================================

FxDiv LstPer,SP                                    'fim de pagina
'Print PrtCmd("[SP]");
end sub


'------------------------------------------------------------------------------
' Extracto com saldo
'------------------------------------------------------------------------------
Sub ExtVs_Cab 'cabecalho
tit$ = MemTxt$(1)
FxDiv LstIde,16CPI,0
print
?Conta: @extCt       @extCtNom                                                                                                      #

if MemTxt$(10) = "PEN" then                        'listagem de pendentes ?
?                                                                                                              Movimentos Pendentes #
else
?                                                                                                            Extracto Numero: @ext  #
end if

'print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI", tit$)
?Data : @DataExt                                                                                                    Folha No: @Pag  #
?====================================================================================================================================
?   Data      Documento   Descrição                          Debito            Credito                Saldo         Observações     #
?====================================================================================================================================
end sub

'                                                  123456789.123456.1>123456789.123456.1>123456789.123456.1>

Sub ExtVs_LinAnt 'movimento anterior
?   Movimento Anterior                             @antDeb2           @antCre2           @acmVls2                                   #
?------------------------------------------------------------------------------------------------------------------------------------
end sub


Sub ExtVs_LinDeb 'valor a debito
?@movDtl    @movDoc       @movDes                  @movDeb2                              @acmVls2                                   #
end sub


Sub ExtVs_LinCre 'valor a credito
?@movDtl    @movDoc       @movDes                                     @movCre2           @acmVls2                                   #
end sub


Sub ExtVs_Fim 'fim de listagem
?====================================================================================================================================
if MemTxt$(10) = "PEN" then                        'listagem de pendentes ?
?   Totais                                         @acmDeb2           @acmCre2           @acmVls2                                   #
else
?   Movimento Actual                               @acmDeb2           @acmCre2           @acmVls2                                   #
end if
?====================================================================================================================================

FxDiv LstPer,SP                                    'fim de pagina
'Print PrtCmd("[SP]");
end sub


'------------------------------------------------------------------------------
'RCB - Reconciliacao Bancaria
'------------------------------------------------------------------------------
Sub Rcb_Scc 'saldo de conta corrente
'msgbox "", "RcbScc",modoScc$

if modoScc$ = "M" then                             'modo manual ?
   tit$ = "BNC - Reconciliação Bancária"           'titulo da mensagem
   msg$ = "Saldo do Banco (CTA)"                   'mensagem
   vScc = MsgInp(tit$, msg$)                       'pedir valor
else
   vScc = MemNum(90)                               'valor automatico
end if
end sub


'------------------------------------------------------------------------------
'RCB.TX - Reconciliacao Bancaria - Texto
'------------------------------------------------------------------------------
Sub Rcb_CabAut 'cabecalho com saldo automatico
modoScc$ = "A"                                     'modo de saldo de conta corrente
call Rcb_Cab                                       'cabecalho
end sub


Sub Rcb_CabMan 'cabecalho com saldo manual
modoScc$ = "M"                                     'modo de saldo de conta corrente
call Rcb_Cab                                       'cabecalho
end sub


Sub Rcb_Cab 'cabecalho
tpc$ = MemTxt$(02)                                 'tipo de listagem
if tpc$ <> tpa$ then                               'mudou de tipo ?
   acmMovDeb = 0                                   'valor a debito
   acmMovCre = 0                                   'valor a credito
   tpa$ = tpc$                                     'guardar novo tipo
end if

if tpc$ = "RES" then                               'resumo
   call Rcb_CabRes                                 'cabecalho - resumo
end if

if tpc$ = "BNC" then                                                'movimentos em falta no banco
   tit$ = "Valores Bancários não Registados na Contabilidade"   'titulo
   call Rcb_CabMov                                                  'cabecalho - movimentos
end if

if tpc$ = "CTA" then                                           'movimentos em falta na contabilidade
   tit$ = "Valores Contabilizados não apresentados ao Banco"   'titulo
   call Rcb_CabMov                                             'cabecalho - movimentos
end if
end sub


Sub Rcb_CabRes 'cabecalho - resumo
tit$ = "Reconciliação Bancária"
FxDiv LstIde,16CPI,0

print
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI", tit$)
print

?Conta: @extCt       @extCtNom                                                  #
?Data : @DataExt                                                Folha No: @Pag  #
?================================================================================
?|                       Descrição                          |       Valor       |
?================================================================================
end sub


Sub Rcb_CabMov 'cabecalho - movimentos
FxDiv LstIde,16CPI,0

print
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI", tit$)
print

?Conta: @extCt       @extCtNom                                                  #
?Data : @DataExt                                                Folha No: @Pag  #
?================================================================================
?   Data      Documento   Descrição                    Debito          Credito  #
?================================================================================
end sub


Sub Rcb_LinTps 'linha de tipo de saldo
tps$ = MemTxt$(11)                                 'tipo de saldo

if tps$ = "BNC" then                               'saldo do banco
   call Rcb_BncVls                                 'listar saldo do banco
end if

if tps$ = "CTA" then                               'saldo da contabilidade
   call Rcb_CtaVls                                 'listar saldo da contabilidade
end if
end sub


Sub Rcb_BncVls 'saldo do banco
?--------------------------------------------------------------------------------
?|  Saldo da Conta Bancária                                 | @rcbVL            |
?--------------------------------------------------------------------------------
memSbnc = MemNum(90)                               'guardar saldo do banco
acmSom  = memSbnc                                  'acumulados a somar
acmSub  = 0                                        'acumulados a subtrair


'call Rcb_LinSep                                    'separacao
end sub


Sub Rcb_CtaVls 'saldo da contabilidade
call Rcb_Scc                                       'saldo de conta corrente

call Rcb_LinSep                                    'separacao
?--------------------------------------------------------------------------------
'?|  Saldo da contabilidade                                  | @rcbVL            |
?|  Saldo da contabilidade                                  | @rcbScc           |
?--------------------------------------------------------------------------------
'memScta = MemNum(90)                               'guardar saldo da contabilidade
'acmSub  = acmSub + MemNum(90)                      'acumulados a subtrair

memScta = vScc                                     'guardar saldo da contabilidade
acmSub  = acmSub + vScc                            'acumulados a subtrair
call Rcb_Nju                                       'valor nao justificado
end sub


Sub Rcb_LinSep 'separacao
?|                                                          |                   |
end sub


Sub Rcb_LinTpv 'linha de tipo de valor
tpv$ = MemTxt$(11)                                 'tipo de valor

if tpv$ = "BNC.IDE" then                           'valores do banco
   call Rcb_LinSep                                 'separacao
   call Rcb_LinSep                                 'separacao
   tpvIde$ = "Valores Bancários não Registados na Contabilidade"     'identificacao
   call Rcb_TpvIde                                           'listar identificacao
   call Rcb_LinSep                                           'separacao
end if

if tpv$ = "BNC.DEB" then                           'banco - valor a debito
   tpvIde$ = space$(10) + "Débito"                 'identificacao
   call Rcb_TpvVl                                  'listar valor
   acmSom  = acmSom + MemNum(90)                   'acumulados a somar
'   acmSub  = acmSub + MemNum(90)                   'acumulados a subtrair
end if

if tpv$ = "BNC.CRE" then                           'banco - valor a credito
   tpvIde$ = space$(10) + "Crédito"                'identificacao
   call Rcb_TpvVl                                  'listar valor
   acmSub  = acmSub + MemNum(90)                   'acumulados a subtrair
'   acmSom  = acmSom + MemNum(90)                   'acumulados a somar
end if


if tpv$ = "CTA.IDE" then                                          'valores da contabilidade
   call Rcb_LinSep                                                'separacao
   call Rcb_LinSep                                                'separacao
   tpvIde$ = "Valores Contabilizados não apresentados ao Banco"   'identificacao
   call Rcb_TpvIde                                               'listar identificacao
'   msgbox "","",MemNum(90)
   acmSom  = acmSom + MemNum(90)                   'acumulados a somar

   call Rcb_LinSep                                       'separacao
end if

if tpv$ = "CTA.DEB" then                           'contabilidade - valor a debito
   tpvIde$ = space$(10) + "Débito"                 'identificacao
   call Rcb_TpvVl                                  'listar valor
   acmSub  = acmSub - MemNum(90)                   'acumulados a subtrair
end if

if tpv$ = "CTA.CRE" then                           'contabilidade - valor a credito
   tpvIde$ = space$(10) + "Crédito"                'identificacao
   call Rcb_TpvVl                                  'listar valor
   acmSom  = acmSom - MemNum(90)                   'acumulados a somar
end if
end sub


Sub Rcb_TpvIde 'identificacao de tipo de valores
?| @rcbIde                                                  |                   |
end sub


Sub Rcb_TpvVL 'listar valor
?| @rcbIde                                                  | @rcbVL            |
end sub


Sub Rcb_LinDeb 'valor a debito
grv$ = MemTxt$(2)                                  'tipo de valor
if grv$ = "BNC" then
?@movDtl    @movDoc       @rcbDesBnc           @rcbMovDeb                       #
else
?@movDtl    @movDoc       @rcbDesCta           @rcbMovDeb                       #
end if

acmMovDeb = acmMovDeb + Bnc_Bmov_Vmn               'acumular valor a debito
end sub


Sub Rcb_LinCre 'valor a credito
grv$ = MemTxt$(2)                                  'tipo de valor
if grv$ = "BNC" then
?@movDtl    @movDoc       @rcbDesBnc                            @rcbMovCre      #
else
?@movDtl    @movDoc       @rcbDesCta                            @rcbMovCre      #
end if

acmMovCre = acmMovCre + Bnc_Bmov_Vmn               'acumular valor a credito
end sub


Sub Rcb_Nju 'valor nao justificado
'vNju = memSbnc-memScta                             'valor nao justificado
vNju = acmSom - acmSub                             'valor nao justificado
'?--------------------------------------------------------------------------------
?|  Valor não justificado                                   | @rcbVnju          |
?--------------------------------------------------------------------------------
'FxDiv LstPer,SP                                    'fim de pagina
'Print PrtCmd("[SP]");
end sub


Sub Rcb_Fim 'fim de listagem
'tpc$ = MemTxt$(02)                                 'tipo de listagem
tpc$ = tpa$                                        'tipo de listagem

if tpc$ = "RES" then                               'resumo
   call Rcb_FimRes                                 'fim - resumo
end if

if tpc$ = "BNC" then                               'movimentos em falta no banco
   call Rcb_FimMov                                 'fim - movimentos
end if

if tpc$ = "CTA" then                               'movimentos em falta na contabilidade
   call Rcb_FimMov                                 'fim - movimentos
end if
end sub


Sub Rcb_FimRes 'fim de listagem - resumo
?================================================================================

call Rcb_Assi                                      'asinaturas

FxDiv LstPer,SP                                    'fim de pagina
'Print PrtCmd("[SP]");
end sub


Sub Rcb_Assi 'assinaturas
?
?
? Elaborado por: ___________________     Técnico de contas: ___________________
?
?
?
?                                            Administração: ___________________
?
?
end sub


Sub Rcb_FimMov 'fim de listagem - movimentos
?================================================================================
?   Totais                                     @rcbAcmDeb       @rcbAcmCre      #
?================================================================================

FxDiv LstPer,SP                                    'fim de pagina
'Print PrtCmd("[SP]");
end sub


'-----------------------------------------------------------------------------
' XLS - Funcoes comuns
'-----------------------------------------------------------------------------
Sub Xls_DocIni 'inicializar documento
dfi$ = FicEmp$("EMP","Ext","dExcel",cmo$)          'directorio de documentos EXCEL
nfi$ = "RND:bncext.xls"                            'nome do ficheiro
cmo$ = SigCmoCur$("MIX")                           'modulo corrente
ficDoc$ = FicTmp$(dfi$, nfi$)                      'ficheiro para documento
res = DirCri("D", dfi$)                            'criar directorio para documento
contag$=" "

xlsMatNom$ = DocOpc$("DocMat")                     'nome do ficheiro matriz
xlsMat$    = DocOpc$("DocMat+SBT")                 'endereco do ficheiro matriz

res = FicCop(xlsMat$, ficDoc$)                     'criar ficheiro (copia de matriz)

res = XlsPrp(0)                                    'preparar EXCEL
res = XlsDocLer(ficDoc$)                           'ler ficheiro

'res = XlsDocCri("")                                'criar documento
end sub


Sub BncXls_DocFim 'terminar documento
res = XlsWks("Banco")                          'activar worksheet
'res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsWks("livros")                          'activar worksheet
'res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

'res = XlsWks(1)                                    'activar worksheet

res = XlsDocDir$("A", dfi$)                        'activar directorio
res = XlsDocGrv(ficDoc$)                           'gravar ficheiro

'res = XlsPrt(1)                                    'listar worksheet
res = XlsVer(0)                                    'mostrar EXCEL - normal
'res = XlsVer(1)                                    'mostrar EXCEL - maximizado
res = XlsLib(0)                                    'libertar EXCEL
end sub


'-----------------------------------------------------------------------------
' Reconciliação bancaria
'-----------------------------------------------------------------------------
Sub BncXls_DocIni 'inicializar documento
call Xls_DocIni                                    'inicializar documento
call BncXls_Prep                                   'preparar
end sub


Sub BncXls_DocFim 'terminar documento
linIni = linBav                                    'linha inicial
linFim = linCnt                                    'linha final

'mostrar
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub BncXls_Prep 'inicializar EXCEL
modoScc$ = "A"                                     'modo de saldo de conta corrente
call Rcb_Scc                                    'saldo de conta corrente
end sub

Sub BncXls_Cab 'cabecalho
tpc$ = MemTxt$(02)                                 'tipo de listagem
'msgbox "","BncXls_Cab",Tpc$
if tpc$ <> tpa$ then                               'mudou de tipo ?
   acmMovDeb = 0                                   'valor a debito
   acmMovCre = 0                                   'valor a credito
   tpa$ = tpc$                                     'guardar novo tipo
end if

if tpc$ = "RES" then                                   'resumo
    res = XlsWks("Rosto")                              'activar worksheet
    empNum$ = Emp_Inf_Cod$                             'numero da empresa
    empNom$ = Emp_Inf_Nome$                            'nome da empresa
    lstTip$ = MemTxt$(2)                               'tipo da listagem
    lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem
    extCt$    = Bnc_Bmov_Ct$                           'conta
    extCtNom$ = Cta_Mst_Nome$                          'nome da conta
    res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa
    res = XlsIdeLst("Lst_Data", lstDt$)                'data
    res = XlsIdeLst("Banco", extCtNom$)                'Nome Banco
    res = XlsIdeLst("Conta", extCt$)                   'Conta
end if

if tpc$ = "BNC" then                               'movimentos em falta no banco
    res = XlsWks("Banco")                          'activar worksheet
    res = XlsIdePsq("PO_BAS")                      'pesquisar posicao base
    linBav = XlsIdePsqRes("L")                     'linha da posicao base
    xlsLba = linBav                                'linha base
    xlsLinDeb = linBav + 1                         'contador de linhas usadas
    xlsLinCre = xlsLinDeb
end if

if tpc$ = "CTA" then                               'movimentos em falta na contabilidade
    res = XlsWks("livros")                         'activar worksheet
    res = XlsIdePsq("PO_BAS1")                     'pesquisar posicao base
    linBav = XlsIdePsqRes("L")                     'linha da posicao base
    xlsLba = linBav                                'linha base
    xlsLinDeb = linBav + 1                         'contador de linhas usadas
    xlsLinCre = xlsLinDeb
end if
end sub

Sub BncXls_LinTps 'linha de tipo de saldo
tps$ = MemTxt$(11)                                 'tipo de saldo
'msgbox "","BncXls_LinTps",Tps$
'msgbox "",Tps$,MemNum(90)

aa$=frmval$(Bnc_Bmov_Vmn,21,10.2) 
'---x--- MsgBox "",aa$

if tps$ = "BNC" then                               'saldo do banco
      rcbVl$ = FrmNum$(14.2, MemNum(90))           'valor
      res = XlsLst(13,7, rcbVl$)                   'saldo do banco
      memSbnc = MemNum(90)                         'guardar saldo do banco
      acmSom  = memSbnc                            'acumulados a somar
      acmSub  = 0                                  'acumulados a subtrair
end if

if tps$ = "CTA" then                               'saldo da contabilidade
   rcbScc$=FrmNum$(14.2, vScc)                     'valor de saldo de conta corrente
   res = XlsLst(30,7, rcbScc$)                     'saldo do banco
   memScta = vScc                                  'guardar saldo da contabilidade
   acmSub  = acmSub + vScc                         'acumulados a subtrair

   vNju = acmSom - acmSub                          'valor nao justificado
   rcbVnju$=FrmNum$(14.2, vNju)                    'Formato valor nao justificado
'---x---   res = XlsLst(33,7, rcbVnju$)                    'valor nao justificado
end if
end sub


Sub BncXls_LinTpv 'linha de tipo de valor
tpv$ = MemTxt$(11)                                 'tipo de valor
'msgbox "","BncXls_LinTpv",Tpv$
if tpv$ = "BNC.DEB" then                           'banco - valor a debito
      rcbVl$ = FrmNum$(14.2, MemNum(90))           'valor
      res = XlsLst(18,7, rcbVl$)                   'saldo do banco
      acmSom  = acmSom + MemNum(90)                'acumulados a somar
end if

if tpv$ = "BNC.CRE" then                           'banco - valor a credito
      rcbVl$ = FrmNum$(14.2, MemNum(90))           'valor
      res = XlsLst(20,7, rcbVl$)                   'saldo do banco
      acmSub  = acmSub + MemNum(90)                'acumulados a subtrair
end if


if tpv$ = "CTA.IDE" then                           'valores da contabilidade
'   acmSom  = acmSom + MemNum(90)                   'acumulados a somar
end if

if tpv$ = "CTA.DEB" then                           'contabilidade - valor a debito
      rcbVl$ = FrmNum$(14.2, MemNum(90))           'valor
      res = XlsLst(25,7, rcbVl$)                   'saldo contabilidade
      acmSub  = acmSub - MemNum(90)                'acumulados a subtrair
end if

if tpv$ = "CTA.CRE" then                           'contabilidade - valor a credito
      rcbVl$ = FrmNum$(14.2, MemNum(90))           'valor
      res = XlsLst(27,7, rcbVl$)                   'saldo contabilidade
      acmSom  = acmSom - MemNum(90)                'acumulados a somar
end if
end sub

Sub BncXls_LinDeb 'valor a debito
if XlsLinDeb < XlsLinCre   then
else
      res = XlsLinIns(xlsLinDeb, 1)                        'juntar linha
end if

grv$       = MemTxt$(2)                                       'tipo de valor
movTdo$    = Bnc_Bmov_Tdoc$                                   'tipo de documento
movDoc$    = BncFrmNdo$("46", Bnc_Bmov_Tdoc$, Bnc_Bmov_Ndoc$) 'numero de documento
movDtl$    = FrmDt$("", Bnc_Bmov_Dtl)                         'data
rcbDesCta$ = Bnc_Bmov_DesCta$                                 'descricao (CTA)
rcbDesBnc$ = Bnc_Bmov_DesAdi$                                 'descricao (adicional)
rcbMovDeb$ = FrmNum$(14.2, Bnc_Bmov_Vmn)                      'valor a debito

res = XlsLst(XlsLinDeb,1, movDtl$)                   'Data
res = XlsLst(XlsLinDeb,2, movTdo$)                   'numero de documento
res = XlsLst(XlsLinDeb,3, movDoc$)                   'numero de documento
res = XlsLst(XlsLinDeb,5, rcbMovDeb$)                'Valor a debito

if grv$ = "BNC" then
      res = XlsLst(XlsLinDeb,4, rcbDesBnc$)          'Descricao
else
      res = XlsLst(XlsLinDeb,4, rcbDesCta$)          'Descricao
end if

xlsLinDeb = xlsLinDeb + 1
acmMovDeb = acmMovDeb + Bnc_Bmov_Vmn               'acumular valor a debito
end sub


Sub BncXls_LinCre 'valor a Credito
if XlsLinCre < XlsLinDeb   then
else
      res = XlsLinIns(xlsLincre, 1)                        'juntar linha
end if

grv$       = MemTxt$(2)                                       'tipo de valor
movTdo$    = Bnc_Bmov_Tdoc$                                   'tipo de documento
movDoc$    = BncFrmNdo$("46", Bnc_Bmov_Tdoc$, Bnc_Bmov_Ndoc$) 'numero de documento
movDtl$    = FrmDt$("", Bnc_Bmov_Dtl)                         'data
rcbDesCta$ = Bnc_Bmov_DesCta$                                 'descricao (CTA)
rcbDesBnc$ = Bnc_Bmov_DesAdi$                                 'descricao (adicional)
rcbMovCre$ = FrmNum$(14.2, Bnc_Bmov_Vmn)                      'valor a credito

res = XlsLst(XlsLincre,6, movDtl$)                'Data
res = XlsLst(XlsLincre,7, movTDo$)                'numero de documento
res = XlsLst(XlsLincre,8, movDoc$)                'numero de documento
res = XlsLst(XlsLincre,10, rcbMovCre$)             'Valor a debito

if grv$ = "BNC" then
      res = XlsLst(XlsLincre,9, rcbDesBnc$)       'Descricao
else
      res = XlsLst(XlsLincre,9, rcbDesCta$)       'Descricao
end if

xlsLincre = xlsLincre + 1
acmMovCre = acmMovCre + Bnc_Bmov_Vmn               'acumular valor a credito
end sub










'------------------------------------------------------------------------------
'RCBGR - Reconciliacao Bancaria - Grafico
'------------------------------------------------------------------------------
Sub RcbGr_CabAut 'cabecalho com saldo automatico
modoScc$ = "A"                                     'modo de saldo de conta corrente
call RcbGr_Cab                                     'cabecalho
end sub


Sub RcbGr_CabMan 'cabecalho com saldo manual
modoScc$ = "M"                                     'modo de saldo de conta corrente
call RcbGr_Cab                                     'cabecalho
end sub


Sub RcbGr_Cab 'cabecalho
tpc$ = MemTxt$(02)                                 'tipo de listagem
if tpc$ <> tpa$ then                               'mudou de tipo ?
   acmMovDeb = 0                                   'valor a debito
   acmMovCre = 0                                   'valor a credito
   tpa$ = tpc$                                     'guardar novo tipo
end if

if tpc$ = "RES" then                               'resumo
   call RcbGr_CabRes                               'cabecalho - resumo
end if

if tpc$ = "BNC" then                                                  'movimentos em falta no banco
   tit$ = "Valores Bancários não Registados na Contabilidade"         'titulo
   call RcbGr_CabMov                                                  'cabecalho - movimentos
end if

if tpc$ = "CTA" then                                           'movimentos em falta na contabilidade
   tit$ = "Valores Contabilizados não apresentados ao Banco"   'titulo
   call RcbGr_CabMov                                           'cabecalho - movimentos
end if
end sub


Sub RcbGr_CabRes 'cabecalho - resumo
tit$ = "Reconciliação Bancária"                    'titulo
tipPag$ = "RES"                                    'tipo de pagina
call RcbGr_CabGer                                  'cabecalho - geral

resXmn = zonX1                                     'limite X minimo
resXmx = zonX2                                     'limite X maximo
resX01 = zonX2 - 55                                'posicao X01
resXi1 = zonX1 + 10                                'posicao X1 para identificadores
resXi2 = zonX1 +  5                                'posicao X2 para identificadores
'resXi3 = zonX1 + 30                                'posicao X3 para identificadores
resXi3 = zonX1 + 110                               'posicao X3 para identificadores
resXv1 = resX01 + 10 + 10                              'posicao X1 para valores ---


resYmn = zonY1                                     'limite Y minimo
resYmx = zonY2                                     'limite Y maximo
resY01 = zonY1                                     'posicao Y01
resY02 = resY01 + 10                               'posicao Y02

resY11 = resY01 + 20                               'posicao Y11

resY21 = resY01 + 60                               'posicao Y21
resY22 = resY21 + 10                               'posicao Y22
resY23 = resY21 + 15                               'posicao Y23

resY31 = resY01 +120                               'posicao Y31
resY32 = resY31 + 10                               'posicao Y32
resY33 = resY31 + 15                               'posicao Y33

resY41 = resYmx - 20                               'posicao Y41
resY51 = resYmx - 10                               'posicao Y51


PrWin FON, "BOLD+"                                          'activar bold
'PrWIN FON, FON.T3, 1                             	       'activar fonte
PrWIN FON, FON.T2, 1                             	      'activar fonte ---

PrWIN COR_E, 200, 200, 200                                  'cor de enchimento RGB
PrWIN GR_ME, 0                                              'modo de enchimento
PrWIN GR_CE, resXmn, resY01, resXmx, resY02, 2              'caixa do cabecalho
PrWIN GR_LI, resX01, resYmn, resX01, resYmx, 2              'linha de separacao
PrWIN TX_CTR,resXmn, resY01, resX01, resY02, "Descrição"    'titulo centrado
PrWIN TX_CTR,resX01, resY01, resXmx, resY02, "    Valor"        'titulo centrado
PrWIN GR_ME, 1                                              'modo de enchimento
PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN FON, FON.T2, 1                             	            'activar fonte

'saldo
ide$ = "Saldo da Conta Bancária - (conforme o banco)"
py1  = resY11 - 6                                  'posicao Y1
py2  = resY11                                      'posicao Y2
PrWIN TX_N,resXi1, py1, ide$                       'identificacao
PrWIN GR_LI, resXmn, py2, resXmx, py2, 2           'linha de separacao


'valores bancarios nao contabilidados
ide$ = "Valores Bancários não Registados na Contabilidade"      'identificacao
py1  = resY21 - 6                                  'posicao Y1
py2  = resY21                                      'posicao Y2
py3  = py1 - 2                                     'posicao Y3
py4  = py2 + 2                                     'posicao Y4

PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,resXi2, py1, ide$                       'identificacao
'PrWIN GR_CX,  zonX1, py3, zonX2, py4, 2            'caixa envolvente
PrWIN GR_CX,  zonX1, py3, zonX2, py3, 2            'caixa envolvente
PrWin FON, "BOLD-"                                 'desactivar bold

ide$ = "Débito"                                    'identificacao
sin$ = "(-)"                                       'sinal ---
py1  = resY22 - 6                                  'posicao Y1
PrWIN TX_N,  resXi3,    py1, ide$                  'identificacao
PrWIN TX_NP, resXi3+15, py1, "N", sin$             'sinal ---

ide$ = "Crédito"                                   'identificacao
sin$ = "(+)"                                       'sinal ---
py1  = resY23 - 6                                  'posicao Y1
PrWIN TX_N,  resXi3,    py1, ide$                  'identificacao
PrWIN TX_NP, resXi3+15, py1, "N", sin$             'sinal ---

'valores contabilizados
ide$ = "Valores Contabilizados não apresentados ao Banco"      'identificacao
py1  = resY31 - 6                                              'posicao Y1
py2  = resY31                                                  'posicao Y2
py3  = py1 - 2                                                 'posicao Y3
py4  = py2 + 2                                                 'posicao Y4

PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,resXi2, py1, ide$                       'identificacao
'PrWIN GR_CX,  zonX1, py3, zonX2, py4, 2            'caixa envolvente
PrWIN GR_CX,  zonX1, py3, zonX2, py3, 2            'caixa envolvente
PrWin FON, "BOLD-"                                 'desactivar bold

ide$ = "Débito"                                    'identificacao
sin$ = "(+)"                                       'sinal ---
py1  = resY32 - 6                                  'posicao Y1
PrWIN TX_N,  resXi3,    py1, ide$                  'identificacao
PrWIN TX_NP, resXi3+15, py1, "N", sin$             'sinal

ide$ = "Crédito"                                   'identificacao
sin$ = "(-)"                                       'sinal ---
py1  = resY33 - 6                                  'posicao Y1
PrWIN TX_N,  resXi3,    py1, ide$                  'identificacao
PrWIN TX_NP, resXi3+15, py1, "N", sin$             'sinal


'saldo contabilidade
ide$ = "Saldo da Contabilidade:"                   'identificacao
py1  = resY41 + 4                                  'posicao Y1
py2  = resY41                                      'posicao Y2
PrWIN TX_N,resXi1+86, py1, ide$                    'identificacao
PrWIN GR_LI, resXmn, py2, resXmx, py2, 2           'linha de separacao


'valor nao justificado
ide$ = "Valor não Justificado:"                     'identificacao
py1  = resY51 + 4                                  'posicao Y1
py2  = resY51                                      'posicao Y2
PrWIN TX_N,resXi1+90, py1, ide$                       'identificacao
PrWIN GR_LI, resXmn, py2, resXmx, py2, 2           'linha de separacao


'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)
end sub


Sub RcbGr_CabGer 'cabecalho - geral
zonX1 =   3                                        'limite X1
zonX2 = 190                                        'limite X2
zonY1 =  50                                        'limite Y1
zonY2 = 250                                        'limite Y2
if tipPag$ = "MOV" then                            'pagina de movimentos ?
   zonY2 = 270                                     'limite Y2
end if

PrWIN COR_F, 15                                    'cor de fundo
PrWIN AJT_B, 10.0, 0.0                             'posicao base
PrWIN GR_CX,  zonX1, zonY1, zonX2, zonY2, 2        'caixa envolvente

'PrWIN FON, FON.T3, 1                               'activar fonte
PrWIN FON, FON.T2, 1                               'activar fonte ---
PrWIN TX_N,100,10, SigLstInf$("EMPIDE")            'nome da empresa
PrWin FON, "BOLD+"                                 'activar bold

PrWIN FON, FON.T4, 1                               'activar fonte ---
PrWIN TX_CTR,  zonX1, 10, zonX2, zonY1, tit$       'titulo centrado
PrWin FON, "BOLD-"                                 'desactivar bold
PrWIN FON, FON.T1, 1                               'activar fonte

'conta
py   = zonY1-15+3                                     'posicao Y ---
PrWIN TX_N,   05+00, py,"Conta / Banco:"              'conta/banco ---
PrWIN TX_N,   16+10, py,@extCt                        'listar conta
ExNomeBnc$=@extCtNom
PrWIN TX_N,   40+00, py," - "+ExNomeBnc$              'listar nome  da conta ---

'data
py    = zonY1 -  5                                 'posicao Y
pxFol = zonX2 - 30                                 'posicao X para folha
pxPag = zonX2 - 10                                 'posicao X para pagina
PrWIN TX_N,   05, py,"Data:"                       'data
PrWIN TX_N,   16, py,@DataExt                      'listar data
PrWIN TX_N,pxFol, py,"Folha No :"                  'folha
PrWIN TX_N,pxPag, py,@Pag                          'numero da folha
end sub


Sub RcbGr_CabMov 'cabecalho - movimentos
tipPag$ = "MOV"                                    'tipo de pagina
call RcbGr_CabGer                                  'cabecalho - geral

movXmn = zonX1                                     'limite X minimo
movXmx = zonX2                                     'limite X maximo
movXc1 = movXmn                                    'posicao X para coluna 1 (data)
movXc2 = movXc1 + 23                               'posicao X para coluna 2 (documento)
movXc3 = movXc2 + 30 + 5                               'posicao X para coluna 3 (descricao)
movXc4 = movXmx - 30 * 2                           'posicao X para coluna 4 (debito)  --- 42 * 2
movXc5 = movXmx - 30                               'posicao X para coluna 5 (credito) --- 42 

movYmn = zonY1                                     'limite Y minimo
movYmx = zonY2                                     'limite Y maximo
movY01 = zonY1                                     'posicao Y01
movY02 = movY01 + 10                               'posicao Y02
movY03 = zonY2 + 10                                'posicao Y03

PrWin FON, "BOLD+"                                          'activar bold
PrWIN FON, FON.T3, 1                             	      'activar fonte
PrWIN COR_E, 200, 200, 200                                  'cor de enchimento RGB
PrWIN GR_ME, 0                                              'modo de enchimento
PrWIN GR_CE, movXmn, movY01, movXmx, movY02, 2              'caixa do cabecalho

PrWIN GR_CX, movXc2, movYmn, movXc3, movYmx, 2              'linha de separacao
PrWIN GR_CX, movXc4, movYmn, movXc5, movY03, 2              'linha de separacao

PrWIN FON, FON.T2, 1                             	      'activar fonte ---

PrWIN TX_CTR,movXc1, movY01, movXc2, movY02, "Data"         'titulo centrado
PrWIN TX_CTR,movXc2, movY01, movXc3, movY02, "Documento"    'titulo centrado
PrWIN TX_CTR,movXc3, movY01, movXc4, movY02, "Descrição"    'titulo centrado
PrWIN TX_CTR,movXc4, movY01, movXc5, movY02, "Débito"       'titulo centrado
PrWIN TX_CTR,movXc5, movY01, movXmx, movY02, "Crédito"      'titulo centrado

PrWIN GR_ME, 1                                              'modo de enchimento

'totais
py = movY03 - 6                                             'posicao Y
PrWIN GR_CX, movXmn, movYmx, movXmx, movY03, 2              'caixa envolvente
PrWIN TX_N,40, py, "Totais"                                 'identificacao

PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN FON, FON.T2, 1                             	            'activar fonte

'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)
end sub


SUB BncSaldoGeral
   BncSaldoFinal = BncSaldoFinal + (MemNum(90) * Ctrl.SinalF)         'Acumular Saldo Incicial a Final do extracto bancario
   'X=MsgBox("MemNum(90) ...", MemNum(90))                             'Caixa de mensagem para debug
   'X=MsgBox("Saldo BNC ...", BncSaldoFinal)                           'Caixa de mensagem para debug

End SUB

Sub RcbGr_LinTps 'linha de tipo de saldo
tps$ = MemTxt$(11)                                 'tipo de saldo

if tps$ = "BNC" then                               'saldo do banco
   BncSaldoFinal = 0                               'Acumular Saldo Incicial a Final do extracto bancario
   Ctrl.SinalF   = 1                               'factor para sinal valor
   Ctrl.SalBnc   = 0                               'campo de controlo saldo banco
   call RcbGr_BncVls                               'listar saldo do banco
   Call BncSaldoGeral                              'Acumular Saldo Incicial a Final do extracto bancario
end if

if tps$ = "CTA" then                               'saldo da contabilidade
   call RcbGr_CtaVls                               'listar saldo da contabilidade
end if
end sub


Sub RcbGr_BncVls 'saldo do banco
py = resY11 - 6                                    'posicao Y
PrWIN TX_NP, resXv1, py, "N",@rcbVL                'listar valor

memSbnc = MemNum(90)                               'guardar saldo do banco
acmSom  = memSbnc                                  'acumulados a somar
acmSub  = 0                                        'acumulados a subtrair
end sub


Sub RcbGr_CtaVls 'saldo da contabilidade
call Rcb_Scc                                       'saldo de conta corrente

py = resY41 + 4                                    'posicao Y
'PrWIN TX_NP, resXv1, py, "N",@rcbVL                'listar valor
PrWIN TX_NP, resXv1, py, "N",@rcbScc               'listar valor

'memScta = MemNum(90)                               'guardar saldo da contabilidade
'acmSub  = acmSub + MemNum(90)                      'acumulados a subtrair
memScta = vScc                                     'guardar saldo da contabilidade
acmSub  = acmSub + vScc                            'acumulados a subtrair

call RcbGr_Nju                                     'valor nao justificado
end sub


Sub RcbGr_LinSep 'separacao
'nada a executar
end sub


Sub RcbGr_LinTpv 'linha de tipo de valor
tpv$ = MemTxt$(11)                                 'tipo de valor

if tpv$ = "BNC.IDE" then                           'valores do banco
   'nada a executar
end if

if tpv$ = "BNC.DEB" then                           'banco - valor a debito
   py = resY22 - 6                                 'posicao Y 
   call RcbGr_TpvVl                                'listar valor
   Ctrl.SinalF = Ts(1)                             'coeficiente para sinal valor 
'   acmSom  = acmSom + MemNum(90)                   'acumulados a somar
   acmSub  = acmSub + MemNum(90)                   'acumulados a subtrair
   Call BncSaldoGeral                              'Acumular Saldo Incicial a Final do extracto bancario
end if

if tpv$ = "BNC.CRE" then                           'banco - valor a credito
   py = resY23 - 6                                 'posicao Y

   Ctrl.SinalF = Ts(-1)                            'coeficiente para sinal valor
   Call BncSaldoGeral                              'Acumular Saldo Incicial a Final do extracto bancario
   Ctrl.SalBnc = 1                                 'campo de controlo saldo banco 1 - CONCLUIDO

   call RcbGr_TpvVl                                'listar valor
'   acmSub  = acmSub + MemNum(90)                   'acumulados a subtrair
   acmSom  = acmSom + MemNum(90)                   'acumulados a somar
end if


if tpv$ = "CTA.IDE" then                           'valores da contabilidade
   acmSom  = acmSom + MemNum(90)                   'acumulados a somar
end if

if tpv$ = "CTA.DEB" then                           'contabilidade - valor a debito
   py = resY32 - 6                                 'posicao Y
   call RcbGr_TpvVl                                'listar valor
   acmSub  = acmSub - MemNum(90)                   'acumulados a subtrair
end if

if tpv$ = "CTA.CRE" then                           'contabilidade - valor a credito
   py = resY33 - 6                                 'posicao Y
   call RcbGr_TpvVl                                'listar valor
   acmSom  = acmSom - MemNum(90)                   'acumulados a somar
end if
end sub


Sub RcbGr_TpvIde 'identificacao de tipo de valores
'nada a executar
end sub


Sub RcbGr_TpvVL 'listar valor
PrWIN TX_NP, resXv1, py, "N",@rcbVL                'listar valor ---ajt

IF Ctrl.SalBnc = 1 Then
   'PrWIN TX_N,  resXv1-10, py+05, "--------------------------------------"
   PrWIN GR_LI, resXmn, py+10, resXmx, py+10, 2           'linha de separacao
   PrWIN GR_LI, resXmn, py+20, resXmx, py+20, 2           'linha de separacao
   PrWIN TX_N,  resXv1-64, py+15, "Saldo Bancário Reconciliado:"
   PrWIN TX_NP, resXv1-00, py+15, "N",FrmNum$(14.2, BncSaldoFinal)
   Ctrl.SalBnc = 0
End IF

end sub


Sub RcbGr_Nju 'valor nao justificado
vNju = acmSom - acmSub                             'valor nao justificado

py = resY51 + 4                                    'posicao Y
PrWIN TX_NP, resXv1, py, "N",@rcbVnju              'listar valor
end sub


Sub RcbGr_LinPos 'posicao da linha
px = 10.0                                          'posicao X
py = movY02 + Doc_CntLin * 4 '- 5                   'posicao Y
PrWIN AJT_B, px, py                                'posicao base

'valores fixos
PrWIN TX_N, movXc1+03,0,@movDtl                     'data
PrWIN TX_N, movXc2+03,0,@movTdo                     'tipo documento/diário
PrWIN TX_NP,movXc2+10,0,"N",@movDoc                 'documento
end sub


Sub RcbGr_LinDeb 'valor a debito
grv$ = MemTxt$(2)                                  'tipo de valor
call RcbGr_LinPos                                  'posicao da linha

if grv$ = "BNC" then
   PrWIN TX_N, movXc3+4,0,@rcbDesBnc               'descricao
else
   PrWIN TX_N, movXc3+4,0,@rcbDesCta               'descricao
end if
Ajt.x = ts(3)                                            'ajuste para x ---
PrWIN TX_NP, movXc4+Ajt.x, 0, "N",@rcbMovDeb             'listar valor

acmMovDeb = acmMovDeb + Bnc_Bmov_Vmn               'acumular valor a debito
end sub


Sub RcbGr_LinCre 'valor a credito
grv$ = MemTxt$(2)                                  'tipo de valor
call RcbGr_LinPos                                  'posicao da linha

if grv$ = "BNC" then
   PrWIN TX_N, movXc3+4,0,@rcbDesBnc               'descricao
else
   PrWIN TX_N, movXc3+4,0,@rcbDesCta               'descricao
end if

Ajt.x = ts(3)                                            'ajuste para x ---
PrWIN TX_NP, movXc5+Ajt.x, 0, "N",@rcbMovCre             'listar valor

acmMovCre = acmMovCre + Bnc_Bmov_Vmn               'acumular valor a credito
end sub


Sub RcbGr_Fim 'fim de listagem
'tpc$ = MemTxt$(02)                                 'tipo de listagem
tpc$ = tpa$                                        'tipo de listagem

if tpc$ = "RES" then                               'resumo
   call RcbGr_FimRes                               'fim - resumo
end if

if tpc$ = "BNC" then                               'movimentos em falta no banco
   call RcbGr_FimMov                               'fim - movimentos
end if

if tpc$ = "CTA" then                               'movimentos em falta na contabilidade
   call RcbGr_FimMov                               'fim - movimentos
end if
end sub


Sub RcbGr_FimRes 'fim de listagem - resumo
ajt.y=ts(3)
py1 = resYmx + 12                                  'posicao Y1 
py2 = py1 + 5                                      'posicao Y1 
PrWIN TX_N,    5, py1+ajt.y,      "Elaborado por:"     'listar valor
PrWIN GR_LI,  39, py2+ajt.y,  84, py2+ajt.y, 2             'linha de separacao

py1 = resYmx + 25                                  'posicao Y1 
py2 = py1 + 5                                      'posicao Y1 
PrWIN TX_N,    5, py1,      "Técnico de contas:"   'listar valor
PrWIN GR_LI,  39, py2,  84, py2, 2                 'linha de separacao

py1 = resYmx + 12                                  'posicao Y1 
py2 = py1 + 5                                      'posicao Y1 
PrWIN TX_N,  104, py1+ajt.y,      "Administração:" 'listar valor
PrWIN GR_LI, 138, py2+ajt.y, 183, py2+ajt.y, 2     'linha de separacao

PrWIN FP                                           'fim de pagina
end sub


Sub RcbGr_FimMov 'fim de listagem - movimentos
call RcbGr_PosBas                                  'posicao base
py = movY03 - 6                              
Ajt.x = ts(3)                                      'ajuste para x ---
PrWIN TX_NP, movXc4+Ajt.x, py, "N",@rcbAcmDeb      'listar valor
PrWIN TX_NP, movXc5+Ajt.x, py, "N",@rcbAcmCre       'listar valor
PrWIN FP                                           'fim de pagina
end sub


Sub RcbGr_PosBas 'posicao base
px = 10.0                                          'posicao X
py = 0                                             'posicao Y
PrWIN AJT_B, px, py                                'posicao base
end sub


##




