'Nome       : BalGerAng.std
'Tipo       : LST
'Data       : 2011/11/17
'Versao     : 3.5
'Descricao  : Balancete geral (Angola)

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 3.5   2011/11/17 --------------------------------------------------
'Correccao de inicializacao de margens 

'- Versao : 3.4   2010/03/21 --------------------------------------------------
'Opcao para balancete com soma de saldos por classe/totais (Excel)

'- Versao : 3.3   2007/12/10 --------------------------------------------------
'Limitar numero da conta para listagens de texto e graficas

'- Versao : 3.2   2007/11/13 --------------------------------------------------
'Listagem anual para excel

'- Versao : 3.1c  2007/06/26 --------------------------------------------------
'Correccao estetica

'- Versao : 3.1b  2005/10/21 --------------------------------------------------
'Correccao ortografica

'- Versao : 3.1a  2004/09/16 --------------------------------------------------
'Compatibilizar com sIG 4.0


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bal1L,Balancete de uma linha
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

'formato
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=Tx_Cab1
Listar linhas               [FxLIN]=Tx_Lin1; Deb ; Cre ; Cla,4
Listar fim                  [FxFIM]=Tx_Fim1
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bal3L,Balancete de 3 linhas
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

'formato
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=Tx_Cab3
Listar linhas               [FxLIN]=Tx_Lin3,4
Listar fim                  [FxFIM]=Tx_Fim3
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bmg1L_G,Balancete de uma linha

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=52
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=Pw_Cab
Listar linhas               [FxLIN]=Pw_Lin; Deb ; Cre ; Cla,0
Listar fim                  [FxFIM]=Pw_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bal_XLS,Balancete (EXCEL)

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsBal
Listar cabecalho            [FxCAB]=XlsBal_Cab
Listar linhas               [FxLIN]=XlsBal_Lin,0;  Deb,0 ; Cre,0 ; Cla,0
Listar fim                  [FxFIM]=XlsBal_Fim

Matriz auxiliar            [DocMat]=CtaBal.xls
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bal_XLS_Ano,Balancete/Ano (EXCEL)

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsBal
Listar cabecalho            [FxCAB]=XlsBal_Cab
Listar linhas               [FxLIN]=XlsBal_LinAno,0;  Deb,0 ; Cre,0 ; Cla,0
Listar fim                  [FxFIM]=XlsBal_FimAno

Matriz auxiliar            [DocMat]=CtaBal_Ano.xls
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bal_XLSScc,Balancete+Saldos (EXCEL)

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsBalScc
Listar cabecalho            [FxCAB]=XlsBalScc_Cab
Listar linhas               [FxLIN]=XlsBalScc_Lin,0;  Deb,0 ; Cre,0 ; Cla,0
Listar fim                  [FxFIM]=XlsBalScc_Fim

Matriz auxiliar            [DocMat]=CtaBalScc.xls
##



'==============================================================================
#VAR - Variaveis
'==============================================================================
'MemTxt$(1)    - titulo
'MemTxt$(11)   - tipo do saldo (D/C)

'MemNum(5)     - moeda a usar

'periodo anterior
'MemNum(11)    - debito
'MemNum(12)    - credito
'MemNum(13)    - saldo devedor ou zero
'MemNum(14)    - saldo credor  ou zero
'MemNum(15)    - saldo

'valores do mes
'MemNum(21)    - debito
'MemNum(22)    - credito
'MemNum(23)    - saldo devedor ou zero
'MemNum(24)    - saldo credor  ou zero
'MemNum(25)    - saldo

'periodo actual
'MemNum(31)    - debito
'MemNum(32)    - credito
'MemNum(33)    - saldo devedor ou zero
'MemNum(34)    - saldo credor  ou zero
'MemNum(35)    - saldo

'totais - periodo anterior
'MemNum(51)    - debito
'MemNum(52)    - credito
'MemNum(53)    - saldo devedor ou zero
'MemNum(54)    - saldo credor  ou zero
'MemNum(55)    - saldo

'totais - do mes
'MemNum(61)    - debito
'MemNum(62)    - credito
'MemNum(63)    - saldo devedor ou zero
'MemNum(64)    - saldo credor  ou zero
'MemNum(65)    - saldo

'totais - periodo actual
'MemNum(71)    - debito
'MemNum(72)    - credito
'MemNum(73)    - saldo devedor ou zero
'MemNum(74)    - saldo credor  ou zero
'MemNum(75)    - saldo


Pag      = Doc_CntPag
Cnt      = FrmVal$(CntAux(1),21,4)
DataExt  = FrmVal$(Sig_DtHoje,45,0)
DataBal  = MemTxt$(5)
Titulo   = TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))
TitPer   = MemTxt$(6)

Ct       = left$(Cta_Mst_Ct$,25)
'Nome     = left$(Cta_Mst_Nome$,28)
Nome     = left$(Cta_Mst_Nome$,25)
Cla      = MemTxt$(15)

'periodo anterior
AntDeb   = FrmMoe$("",18,MemNum(11),MemNum(5))
AntCre   = FrmMoe$("",18,MemNum(12),MemNum(5))
AntDeS   = FrmMoe$("",18,MemNum(13),MemNum(5))
AntCrS   = FrmMoe$("",18,MemNum(14),MemNum(5))
AntSal   = FrmMoe$("",18,MemNum(15),MemNum(5))

'valores do mes
MesDeb   = FrmMoe$("",18,MemNum(21),MemNum(5))
MesCre   = FrmMoe$("",18,MemNum(22),MemNum(5))
MesDeS   = FrmMoe$("",18,MemNum(23),MemNum(5))
MesCrS   = FrmMoe$("",18,MemNum(24),MemNum(5))
MesSal   = FrmMoe$("",18,MemNum(25),MemNum(5))

'periodo actual
ActDeb   = FrmMoe$("",18,MemNum(31),MemNum(5))
ActCre   = FrmMoe$("",18,MemNum(32),MemNum(5))
ActDeS   = FrmMoe$("",18,MemNum(33),MemNum(5))
ActCrS   = FrmMoe$("",18,MemNum(34),MemNum(5))
ActSal   = FrmMoe$("",18,abs(MemNum(35)),MemNum(5))

'saldo
SalDeb   = FrmMoe$("",19,MemNum(33),MemNum(5))+" D"
SalCre   = FrmMoe$("",19,MemNum(34),MemNum(5))+" C"
SalDeb2  = FrmMoe$("",19,MemNum(33),MemNum(5))+" D"
SalCre2  = FrmMoe$("",19,MemNum(34),MemNum(5))+" C"
S        = MemTxt$(11)


'totais gerais
AntDebT  = FrmMoe$("",18,MemNum(51),MemNum(5))
AntCreT  = FrmMoe$("",18,MemNum(52),MemNum(5))
AntDeST  = FrmMoe$("",18,MemNum(53),MemNum(5))
AntCrST  = FrmMoe$("",18,MemNum(54),MemNum(5))

MesDebT  = FrmMoe$("",18,MemNum(61),MemNum(5))
MesCreT  = FrmMoe$("",18,MemNum(62),MemNum(5))
MesDeST  = FrmMoe$("",18,MemNum(63),MemNum(5))
MesCrST  = FrmMoe$("",18,MemNum(64),MemNum(5))

ActDebT  = FrmMoe$("",18,MemNum(71),MemNum(5))
ActCreT  = FrmMoe$("",18,MemNum(72),MemNum(5))
ActDeST  = FrmMoe$("",18,MemNum(73),MemNum(5))
ActCrST  = FrmMoe$("",18,MemNum(74),MemNum(5))

SalDebT  = FrmMoe$("",19,MemNum(73),MemNum(5))+" D"
SalCreT  = FrmMoe$("",19,MemNum(74),MemNum(5))+" C"
SalDebT2 = FrmMoe$("",19,MemNum(73),MemNum(5))+" D"
SalCreT2 = FrmMoe$("",19,MemNum(74),MemNum(5))+" C"


'totais de classe
AntDebTc  = FrmMoe$("",18,MemNum(151),MemNum(5))
AntCreTc  = FrmMoe$("",18,MemNum(152),MemNum(5))
AntDeSTc  = FrmMoe$("",18,MemNum(153),MemNum(5))
AntCrSTc  = FrmMoe$("",18,MemNum(154),MemNum(5))

MesDebTc  = FrmMoe$("",18,MemNum(161),MemNum(5))
MesCreTc  = FrmMoe$("",18,MemNum(162),MemNum(5))
MesDeSTc  = FrmMoe$("",18,MemNum(163),MemNum(5))
MesCrSTc  = FrmMoe$("",18,MemNum(164),MemNum(5))

ActDebTc  = FrmMoe$("",18,MemNum(171),MemNum(5))
ActCreTc  = FrmMoe$("",18,MemNum(172),MemNum(5))
ActDeSTc  = FrmMoe$("",18,MemNum(173),MemNum(5))
ActCrSTc  = FrmMoe$("",18,MemNum(174),MemNum(5))

SalDebTc  = FrmMoe$("",19,MemNum(173),MemNum(5))+" D"
SalCreTc  = FrmMoe$("",19,MemNum(174),MemNum(5))+" C"
SalDebTc2 = FrmMoe$("",19,MemNum(173),MemNum(5))+" D"
SalCreTc2 = FrmMoe$("",19,MemNum(174),MemNum(5))+" C"
##


'==============================================================================
#INC
'==============================================================================
Variaveis  comuns                 =[SIG_Dir.Div],LsComVar.std
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario


'------------------------------------------------------------------------------
'DIV - Funcoes diversas
'------------------------------------------------------------------------------
Sub Tx_AJT
end sub


'==============================================================================
'#COM - funcoes comums
'==============================================================================
Sub PrpCtVal 'preparar valores da conta
cod$ = Cta_Mst_Ct$                                 'codigo
ide$ = Cta_Mst_Nome$                               'identificacao
tpc$ = Cta_Mst_CodTrat$                            'tipo da conta

vmDeb = MemNum(21)                                 'mes - debito
vmCre = MemNum(22)                                 'mes - credito

vaDeb = MemNum(31)                                 'acumulado - debito
vaCre = MemNum(32)                                 'acumulado - credito

saDeb = MemNum(33)                                 'saldo acumulado - debito
saCre = MemNum(34)                                 'saldo acumulado - credito
end sub


Sub AcmSccIni 'acumulado de saldos - inicializar
claAcsDeb = 0                                      'classe - acumulado de saldos devedores
claAcsCre = 0                                      'classe - acumulado de saldos credores

call AcmSccIniCla                                  'acumulado de saldos - inicializar classe
end sub


Sub AcmSccIniCla 'acumulado de saldos - inicializar classe
claAcsDeb = 0                                      'classe - acumulado de saldos devedores
claAcsCre = 0                                      'classe - acumulado de saldos credores
end sub


Sub AcmSccExe 'acumulado de saldos - executar
if tpc$ = "9" then                                 'conta de lancamento ?
   usaVsDeb = vsDeb                                'valor para debito
   UsaVsCre = vsCre                                'valor para credito
else
   usaVsDeb = 0                                    'anular valor para debito
   UsaVsCre = 0                                    'anular valor para credito
end if

claAcsDeb = claAcsDeb + usaVsDeb                   'classe - acumulado de saldos devedores
claAcsCre = claAcsCre + usaVsCre                   'classe - acumulado de saldos credores

vtoAcsDeb = vtoAcsDeb + usaVsDeb                   'totais - acumulado de saldos devedores
vtoAcsCre = vtoAcsCre + usaVsCre                   'totais - acumulado de saldos credores
end sub


'==============================================================================
'#TXT -  IMPRESSAO EM MODO TEXTO
'==============================================================================
'------------------------------------------------------------------------------
'- Balancete de 1 linha -------------------------------------------------------
'------------------------------------------------------------------------------
SUB Tx_Cab1
?
FxDiv LstIde,16CPI,0
?@Titulo                                                                                                                            #
?Data: @DataBal                                                                                                       Folha No: @Pag#
?==================================================================================================================================
?                                                         @TitPer                        Acumulados Actuais            Saldo      #
?   Conta           Nome                                  Debito         Credito        Debito        Credito     Devedor / Credor  
?==================================================================================================================================
end sub


SUB Tx_Lin1Deb
?@Ct      @Nome                    |@MesDeb           |@MesCre           |@ActDeb           |@ActCre           |@SalDeb           #
end sub


SUB Tx_Lin1Cre
?@Ct      @Nome                    |@MesDeb           |@MesCre           |@ActDeb           |@ActCre           |@SalCre           #
end sub


SUB Tx_Lin1Cla
?----------------------------------------------------------------------------------------------------------------------------------
? Tot. Classe @Cla      Total DEB  |@MesDebTc         |                  |@ActDebTc         |                  |@SalDebTc        #
?                       Total cRD  |                  |@MesCreTc         |                  |@ActCreTc         |@SalCreTc        #
?
end sub


SUB Tx_Fim1
?==================================================================================================================================
?  Total debito                     @MesDebT                              @ActDebT                              @SalDebT         #
?  Total credito                                       @MesCreT                              @ActCreT           @SalCreT         #
?==================================================================================================================================
'Print PrtCmd$("[SP]");
FxDiv LstPer,SP
end sub


'------------------------------------------------------------------------------
'- Balancete de 3 linhas ------------------------------------------------------
'------------------------------------------------------------------------------
SUB Tx_Cab3
?
FxDiv LstIde,16CPI,0
?@Titulo                                                                                                                         #
?Data: @DataBal                                                                                                Folha No: @Pag    #
?=================================================================================================================================
?|                                      |        |                   |                   |                   |                   |
?|          Conta                       | Movim. |      Debito       |     Credito       |  Saldo  Devedor   |  Saldo Credor     |
?|                                      |        |                   |                   |                   |                   |
?=================================================================================================================================
end sub


SUB Tx_Lin3
?|@Ct                                   | M.Ant. | @AntDeb           | @AntCre           | @AntDeS           | @AntCrS           |
?|@Nome                                 | M.Mes. | @MesDeb           | @MesCre           | @MesDeS           | @MesCrS           |
?|                                      | M.Act. | @ActDeb           | @ActCre           | @ActDeS           | @ActCrS           |
?|                                      |        |                   |                   |                   |                   |
end sub


SUB Tx_Fim3
?=================================================================================================================================
?|                                      | M.Ant. | @AntDebT          | @AntCreT          | @AntDeST          | @AntCrST          |
?|           TOTAIS                     | M.Mes. | @MesDebT          | @MesCreT          | @MesDeST          | @MesCrST          |
?|                                      | M.Act. | @ActDebT          | @ActCreT          | @ActDesT          | @ActCrST          |
?=================================================================================================================================
'Print PrtCmd$("[SP]");
FxDiv LstPer,SP
end sub


'==============================================================================
'#GRF -  IMPRESSAO EM MODO GRAFICO
'==============================================================================
SUB FxIni 'funcao de inicializacao
Call SigLstIni
'Totaisjuntos=1                                    'colocar totais apos ultima linha impressao

PrWIN AJT_F, 56.7,  56.7                           'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                          'deslocamento de ajuste
Margem=8
end sub


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


SUB Pw_Cab 'cabecalho
PrWin COR_F , 15
espv=20                                            'espaco para valor

'posicao das colunas
Col1=0                             
Col2=22
Col3=col2+64
Col4=col3+(espv*1)
Col5=col3+(espv*2)
Col6=col3+(espv*3)
Col7=col3+(espv*4)
Col8=col3+(espv*5)                                 'coluna maxima

Titulo$=MemTxt$(1)                                 'titulo da listagem
Call SigCabEmpNome

PrWin FON, "BOLD-"                                 'desactivar bold
PrWIN FON  ,    9                                  'activar fonte
PrWin COR_T, CorTit
PrWIN TX_N ,    0, 10,"Data :"                     'data
PrWIN TX_N ,  170, 10,"Folha No :"                 'folha

PrWin COR_T, CorLin
PrWIN TX_N,   11, 10,@DataBal                      'listar data
PrWIN TX_N,  185, 10,@Pag                          'numero da folha

PrWIN AJT_B,  Margem, 25                           'posicao base

 Lin1=0
Lin11=2
 Lin2=5

PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 0, MargemD, 0               	'linha
PrWIN GR_LI, 0, 9, MargemD, 9               	'linha

ajt=15
PrWin FON, "BOLD+"                                  'activar bold 
PrWin COR_T ,  CorTitLst
PrWIN TX_CTR, Col1t      ,Lin11,Col2,Lin11,"Conta"
PrWIN TX_CTR, Col2       ,Lin11,Col3,Lin11,"Nome"
PrWIN TX_CTR, Col3+ajt-30,Lin1 ,Col5,Lin1 ,@TitPer
PrWIN TX_CTR, Col3+ajt-40,Lin2 ,Col4,Lin2 ,"Débito"
PrWIN TX_CTR, Col4+ajt-25,Lin2 ,Col5,Lin2 ,"Crédito"
PrWIN TX_CTR, Col5+ajt-5 ,Lin1 ,Col7,Lin1 ,"Acumulados Actuais"
PrWIN TX_CTR, Col5+ajt-14,Lin2 ,Col6,Lin2 ,"Débito"
PrWIN TX_CTR, Col6+ajt,Lin2 ,Col7,Lin2    ,"Crédito"
PrWIN TX_CTR, Col7+ajt,Lin2 ,Col8,Lin2    ,"Saldos"
PrWin COR_T ,  CorLin
PrWIN FON  ,    7                                  'activar fonte
PrWin FON,"BOLD-"                                  'desactivar bold
end sub


SUB Pw_LinDeb 'linha para saldo a debito
Call LinNor
PrWIN TX_NP,Col7+5,0,"N",@SalDeb2
end sub


SUB Pw_LinCre 'linha para saldo a credito
call LinNor
PrWIN TX_NP,Col7+5,0,"N",@SalCre2
end sub


Sub LinNor 'linha normal
PrWIN AJT_B,  Margem, 31+Doc_CntLin*4.4        'posicao base
PrWIN TX_N, Col1,0    ,@Ct
PrWIN TX_DMX,  Col2,0,Col3-Col2, @Nome
PrWIN TX_NP,Col3-20,0,"N",@MesDeb
PrWIN TX_NP,Col4-13,0,"N",@MesCre
PrWIN TX_NP,Col5-7,0 ,"N",@ActDeb
PrWIN TX_NP,Col6,0 ,"N",@ActCre
end sub


SUB Pw_LinCla 'totais de classe
tmp=CntLin("MIN",2)                            'minimo de linhas

Lin0 = 3.8                                     'linha de separacao
PrWIN COR_T,CorTraco                           'cor de linhas
PrWIN GR_LI, 0,lin0, MargemD,lin0              'linha

tmp=CntLin("INC",1)                            'contar linha
PrWIN AJT_B,  Margem, 31+Doc_CntLin*4.4        'posicao base
tmp=CntLin("INC",1)                            'contar linhas

Lin1=0                                         'linha 1 de texto
Lin2=5                                         'linha 2 de texto
tmp$=@Cla                                      'classe
tca$="Total da classe: "+tmp$                  'titulo

PrWIN COR_T,  CorTotGer
PrWIN TX_N, Col1,Lin1 ,tca$
PrWIN TX_N, Col2+30,Lin1 ,"Total a débito:"
PrWIN TX_N, Col2+30,Lin2 ,"Total a crédito:"

PrWIN TX_NP, Col3-20,Lin1,"N",@MesDebTc
PrWIN TX_NP, Col5-7 ,Lin1,"N",@ActDebTc
PrWIN TX_NP, Col7+5 ,Lin1,"N",@SalDebTc2

PrWIN TX_NP, Col4-13,Lin2,"N",@MesCreTc
PrWIN TX_NP, Col6   ,Lin2,"N",@ActCreTc
PrWIN TX_NP, Col7+5 ,Lin2,"N",@SalCreTc2
end sub


SUB Pw_Fim 'fim de listagem
Lin =1                                         'linha 1 de texto
Lin2=4                                         'linha 2 de texto

FimDoc=266

if totaisjuntos=1
   FimDoc=Doc_CntLin*4.4
   FimDoc=FimDoc+37
   linper=fimdoc+8
end if


PrWIN AJT_B,  Margem, Fimdoc                    'posicao base
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 0, MargemD, 0               	'linha
PrWIN GR_LI, 0, 7, MargemD, 7               	'linha

PrWIN COR_T,  CorTotGer
PrWin FON,"BOLD+"
PrWIN TX_N, Col2,Lin ,"Total a débito:"
PrWIN TX_N, Col2,Lin2,"Total a crédito:"
PrWin FON,"BOLD-"

PrWIN TX_NP, Col3-20,Lin,"N",@MesDebT
PrWIN TX_NP, Col5-7 ,Lin,"N",@ActDebT
PrWIN TX_NP, Col7+5,Lin,"N",@SalDebT2

PrWIN TX_NP, Col4-13,Lin2,"N",@MesCreT
PrWIN TX_NP, Col6   ,Lin2,"N",@ActCreT
PrWIN TX_NP, Col7+5 ,Lin2,"N",@SalCreT2

Call SigLstFim
PrWin FP
end sub


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

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 Xls_DocFim 'terminar documento
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


'-----------------------------------------------------------------------------
' Listagem para EXCEL - Normal
'-----------------------------------------------------------------------------
Sub XlsBal_DocIni 'inicializar documento
call Xls_DocIni                                    'inicializar documento
call XlsBal_Prep                                   'preparar
call XlsBal_Cab                                    'cabecalho
end sub


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

'mostrar
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub XlsBal_Prep 'preparar para listar
res = XlsWks("Valores")                            'activar worksheet

'empNum$ = Emp_Inf_Cod$                             'numero da empresa
'empNom$ = Emp_Inf_Nome$                            'nome da empresa
'lstTit$ = MemTxt$(1)                               'titulo da listagem
'lstTip$ = MemTxt$(2)                               'tipo da listagem
'lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

'res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
'res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa

'res = XlsIdeLst("Lst_Tit",  lstTit$)               'tipo da listagem
'res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
'res = XlsIdeLst("Lst_Data", lstDt$)                'data

res = XlsIdePsq("PO_BAS")                          'pesquisar posicao base
linBav = XlsIdePsqRes("L")                         'linha da posicao base

xlsLba = linBav                                    'linha base
xlsLin = linBav + 1                                'contador de linhas usadas

'diversos
DataAno  = DataCmp(Sig_DtHoje, "A4")               'ano da data
end sub


Sub XlsBal_Cab 'cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa

res = XlsIdeLst("Lst_Tit",  lstTit$)               'tipo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data
end sub


Sub XlsBal_Lin 'linha de valores
'nada a executar
end sub


Sub XlsBal_LinDeb 'linha de valores com saldo devedor
cod$ = Cta_Mst_Ct$                                 'codigo
ide$ = Cta_Mst_Nome$                               'identificacao

vmDeb = MemNum(21)                                 'mes - debito
vmCre = MemNum(22)                                 'mes - credito

vaDeb = MemNum(31)                                 'acumulado - debito
vaCre = MemNum(32)                                 'acumulado - credito

saVal = MemNum(33)                                 'saldo acumulado - valor
saTip$ = "D"                                       'saldo acumulado - tipo

call XlsBal_LinExe                                 'executar listagem da linha
end sub


Sub XlsBal_LinCre 'linha de valores com saldo credor
cod$ = Cta_Mst_Ct$                                 'codigo
ide$ = Cta_Mst_Nome$                               'identificacao

vmDeb = MemNum(21)                                 'mes - debito
vmCre = MemNum(22)                                 'mes - credito

vaDeb = MemNum(31)                                 'acumulado - debito
vaCre = MemNum(32)                                 'acumulado - credito

saVal = MemNum(34)                                 'saldo acumulado - valor
saTip$ = "C"                                       'saldo acumulado - tipo

call XlsBal_LinExe                                 'executar listagem da linha
end sub


Sub XlsBal_LinExe 'executar listagem da linha
res = XlsLinIns(xlsLin, 1)                         'juntar linha

res = XlsLst(xlsLin, 2, cod$)                      'codigo
res = XlsLst(xlsLin, 3, ide$)                      'identificacao

res = XlsLst(xlsLin, 4, vmDeb)                     'valor mensal - debito
res = XlsLst(xlsLin, 5, vmCre)                     'valor mensal - credito

res = XlsLst(xlsLin, 6, vaDeb)                     'valor mensal - debito
res = XlsLst(xlsLin, 7, vaCre)                     'valor mensal - credito

res = XlsLst(xlsLin, 8, saVal)                     'saldo acumulado - valor
res = XlsLst(xlsLin, 9, saTip$)                    'saldo acumulado - tipo

'seguinte
xlsLin = xlsLin + 1                                'contar linha
End sub


Sub XlsBal_LinCla 'linha de totais de classe
tmp$ = @Cla                                        'classe
cod$ = "Total da classe: " + tmp$                  'titulo

ideDeb$ = "Total a Débito:"                        'identificacao
ideCre$ = "Total a Crédito:"                       'identificacao

vmDeb = MemNum(161)                                'mes - debito
vmCre = MemNum(162)                                'mes - credito

vaDeb = MemNum(171)                                'acumulado - debito
vaCre = MemNum(172)                                'acumulado - credito

saDeb = MemNum(173)                                'saldo acumulado - debito
saCre = MemNum(174)                                'saldo acumulado - credito

call XlsBal_TotExe                                 'executar listagem do subtotal
end sub


Sub XlsBal_TotExe 'executar listagem de totais
'total a debito
res = XlsLinIns(xlsLin, 1)                         'juntar linha

res = XlsLst(xlsLin, 2, cod$)                      'codigo
res = XlsLst(xlsLin, 3, ideDeb$)                   'identificacao - debito
res = XlsLst(xlsLin, 4, vmDeb)                     'valor mensal
res = XlsLst(xlsLin, 6, vaDeb)                     'valor acumulado
res = XlsLst(xlsLin, 8, saDeb)                     'saldo acumulado
res = XlsLst(xlsLin, 9, "D")                       'saldo acumulado - tipo
xlsLin = xlsLin + 1                                'contar linha

'total a credito
res = XlsLinIns(xlsLin, 1)                         'juntar linha
res = XlsLst(xlsLin, 3, ideCre$)                   'identificacao
res = XlsLst(xlsLin, 5, vmCre)                     'valor mensal
res = XlsLst(xlsLin, 7, vaCre)                     'valor acumulado
res = XlsLst(xlsLin, 8, saCre)                     'saldo acumulado
res = XlsLst(xlsLin, 9, "D")                       'saldo acumulado - tipo
xlsLin = xlsLin + 1                                'contar linha
end sub


Sub XlsBal_TotGer 'linhas de totais gerais
cod$ = ""                                          'codigo

'ideDeb$ = "Total a Débito:"                        'identificacao
'ideCre$ = "Total a Crédito:"                       'identificacao

vmDeb = MemNum(061)                                'mes - debito
vmCre = MemNum(062)                                'mes - credito

vaDeb = MemNum(071)                                'acumulado - debito
vaCre = MemNum(072)                                'acumulado - credito

saDeb = MemNum(073)                                'saldo acumulado - debito
saCre = MemNum(074)                                'saldo acumulado - credito

'call XlsBal_TotExe                                 'executar listagem do subtotal

xlsLin = xlsLin + 1                                'contar linha
res = XlsLst(xlsLin, 4, vmDeb)                     'valor mensal
res = XlsLst(xlsLin, 6, vaDeb)                     'valor acumulado
res = XlsLst(xlsLin, 8, saDeb)                     'saldo acumulado
res = XlsLst(xlsLin, 9, "D")                       'saldo acumulado - tipo

xlsLin = xlsLin + 1                                'contar linha
res = XlsLst(xlsLin, 5, vmCre)                     'valor mensal
res = XlsLst(xlsLin, 7, vaCre)                     'valor acumulado
res = XlsLst(xlsLin, 8, saCre)                     'saldo acumulado
res = XlsLst(xlsLin, 9, "C")                       'saldo acumulado - tipo
end sub


Sub XlsBal_Fim 'terminar
'res = XlsLinIns(xlsLin, 1)                         'juntar linha

xlsLin = xlsLin + 1                                'contar linha
call XlsBal_TotGer                                 'linhas de totais gerais

xlsLin = xlsLin - 3                                'descontar linhas de totais
res = XlsWksAct("A", 1)                            'activar worksheet
end sub


'-----------------------------------------------------------------------------
' Listagem para EXCEL - Anual
'-----------------------------------------------------------------------------
Sub XlsBal_LinAnoDeb 'linha de valores com saldo devedor
cod$ = Cta_Mst_Ct$                                 'codigo
ide$ = Cta_Mst_Nome$                               'identificacao

vmDeb = MemNum(21)                                 'mes - debito
vmCre = MemNum(22)                                 'mes - credito

vaDeb = MemNum(31)                                 'acumulado - debito
vaCre = MemNum(32)                                 'acumulado - credito

saVal = MemNum(33)                                 'saldo acumulado - valor
saTip$ = "D"                                       'saldo acumulado - tipo

call XlsBal_LinExe_Ano                                 'executar listagem da linha
end sub


Sub XlsBal_LinAnoCre 'linha de valores com saldo credor
cod$ = Cta_Mst_Ct$                                 'codigo
ide$ = Cta_Mst_Nome$                               'identificacao

vmDeb = MemNum(21)                                 'mes - debito
vmCre = MemNum(22)                                 'mes - credito

vaDeb = MemNum(31)                                 'acumulado - debito
vaCre = MemNum(32)                                 'acumulado - credito

saVal = MemNum(34)                                 'saldo acumulado - valor
saTip$ = "C"                                       'saldo acumulado - tipo

call XlsBal_LinExe_Ano                                 'executar listagem da linha
end sub


Sub XlsBal_LinExe_Ano 'executar listagem da linha
res = XlsLinIns(xlsLin, 1)                         'juntar linha

res = XlsLst(xlsLin, 2, cod$)                      'codigo
res = XlsLst(xlsLin, 3, ide$)                      'identificacao
res = CtaAcmLer(Cta_Mst_Ct$, DataAno, 0)           'preparar acumulados

co = 3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb00)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd00)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb00-Cta_Acm_Crd00)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb01)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd01)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb01-Cta_Acm_Crd01)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb02)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd02)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb02-Cta_Acm_Crd02)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb03)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd03)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb03-Cta_Acm_Crd03)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb04)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd04)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb04-Cta_Acm_Crd04)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb05)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd05)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb05-Cta_Acm_Crd05)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb06)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd06)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb06-Cta_Acm_Crd06)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb07)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd07)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb07-Cta_Acm_Crd07)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb08)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd08)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb08-Cta_Acm_Crd08)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb09)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd09)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb09-Cta_Acm_Crd09)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb10)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd10)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb10-Cta_Acm_Crd10)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb11)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd11)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb11-Cta_Acm_Crd11)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb12)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd12)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb12-Cta_Acm_Crd12)

co = co +3
res = XlsLst(xlsLin, co+1, Cta_Acm_Deb13)
res = XlsLst(xlsLin, co+2, Cta_Acm_Crd13)
res = XlsLst(xlsLin, co+3, Cta_Acm_Deb13-Cta_Acm_Crd13)

'seguinte
xlsLin = xlsLin + 1                                'contar linha
End sub


Sub XlsBal_FimAno 'terminar
res = XlsWksAct("A", 1)                            'activar worksheet
end sub


'-----------------------------------------------------------------------------
' Listagem para EXCEL - Com saldos
'-----------------------------------------------------------------------------
Sub XlsBalScc_DocIni 'inicializar documento
call Xls_DocIni                                    'inicializar documento
call XlsBal_Prep                                   'preparar
call XlsBal_Cab                                    'cabecalho

'acumuladores
call AcmSccIni                                     'acumulado de saldos - inicializar
end sub


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

'mostrar
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub XlsBalScc_Prep 'preparar para listar
res = XlsWks("Valores")                            'activar worksheet

res = XlsIdePsq("PO_BAS")                          'pesquisar posicao base
linBav = XlsIdePsqRes("L")                         'linha da posicao base

xlsLba = linBav                                    'linha base
xlsLin = linBav + 1                                'contador de linhas usadas

'diversos
DataAno  = DataCmp(Sig_DtHoje, "A4")               'ano da data
end sub


Sub XlsBalScc_Cab 'cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa

res = XlsIdeLst("Lst_Tit",  lstTit$)               'tipo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data
end sub


Sub XlsBalScc_Lin 'linha de valores
'nada a executar
end sub


Sub XlsBalScc_LinDeb 'linha de valores com saldo devedor
saVal = MemNum(33)                                 'saldo acumulado - valor
call PrpCtVal                                      'preparar valores da conta
saTip$ = "D"                                       'saldo acumulado - tipo
saVal  = saDeb                                     'saldo acumulado - valor

vsDeb = saVal                                      'valor de saldo devedor
vsCre = 0                                          'valor de saldo credor

call AcmSccExe                                     'acumulado de saldos - executar
call XlsBalScc_LinExe                              'executar listagem da linha
end sub


Sub XlsBalScc_LinCre 'linha de valores com saldo credor
call PrpCtVal                                      'preparar valores da conta
saTip$ = "C"                                       'saldo acumulado - tipo
saVal  = saCre                                     'saldo acumulado - valor

vsDeb = 0                                          'valor de saldo devedor
vsCre = saVal                                      'valor de saldo credor

call AcmSccExe                                     'acumulado de saldos - executar
call XlsBalScc_LinExe                              'executar listagem da linha
end sub


Sub XlsBalScc_LinExe 'executar listagem da linha
res = XlsLinIns(xlsLin, 1)                         'juntar linha

res = XlsLst(xlsLin, 2, cod$)                      'codigo
res = XlsLst(xlsLin, 3, ide$)                      'identificacao

res = XlsLst(xlsLin, 4, vmDeb)                     'valor mensal - debito
res = XlsLst(xlsLin, 5, vmCre)                     'valor mensal - credito

res = XlsLst(xlsLin, 6, vaDeb)                     'valor mensal - debito
res = XlsLst(xlsLin, 7, vaCre)                     'valor mensal - credito

if tpc$ = "9" then                                 'conta de lancamento ?
   call XlsBalScc_LinSccCt                         'executar listagem de saldo
else
   call XlsBalScc_LinSccGrp                        'executar listagem de saldo
end if

'seguinte
xlsLin = xlsLin + 1                                'contar linha
End sub


Sub XlsBalScc_LinSccGrp 'executar listagem de saldo - grupo
if saTip$ = "C" then                               'saldo credor
   res = XlsLst(xlsLin, 9, saVal)                  'listar saldo por tipo
else
   res = XlsLst(xlsLin, 8, saVal)                  'listar saldo por tipo
end if
end sub


Sub XlsBalScc_LinSccCt 'executar listagem de saldo - conta
if saTip$ = "C" then                               'saldo credor
   res = XlsLst(xlsLin,11, saVal)                  'listar saldo por tipo
else
   res = XlsLst(xlsLin,10, saVal)                  'listar saldo por tipo
end if
end sub


Sub XlsBalScc_LinCla 'linha de totais de classe
tmp$    = @Cla                                     'classe
totIde$ = "Total da classe: " + tmp$               'identificacao

vmDeb = MemNum(161)                                'mes - debito
vmCre = MemNum(162)                                'mes - credito

vaDeb = MemNum(171)                                'acumulado - debito
vaCre = MemNum(172)                                'acumulado - credito

saDeb = MemNum(173)                                'saldo acumulado - debito
saCre = MemNum(174)                                'saldo acumulado - credito

res = XlsLinIns(xlsLin, 1)                         'juntar linha
call XlsBalScc_TotExe                              'executar listagem do subtotal
call AcmSccIniCla                                  'acumulado de saldos - inicializar classe

res = XlsLinIns(xlsLin, 1)                         'juntar linha de separacao
xlsLin = xlsLin + 1                                'contar linha
end sub


Sub XlsBalScc_Fim 'terminar
xlsLin = xlsLin + 1                                'contar linha (posicao de totais)
call XlsBalScc_TotGer                              'linhas de totais gerais

xlsLin = xlsLin - 3                                'descontar linhas de totais
res = XlsWksAct("A", 1)                            'activar worksheet
end sub


Sub XlsBalScc_TotGer 'linhas de totais gerais
totIde$ = ""                                       'codigo

vmDeb = MemNum(061)                                'mes - debito
vmCre = MemNum(062)                                'mes - credito

vaDeb = MemNum(071)                                'acumulado - debito
vaCre = MemNum(072)                                'acumulado - credito

saDeb = MemNum(073)                                'saldo acumulado - debito
saCre = MemNum(074)                                'saldo acumulado - credito

xlsLin = xlsLin + 1                                'contar linha
call XlsBalScc_TotExe                              'executar listagem do subtotal
end sub


Sub XlsBalScc_TotExe 'executar listagem de totais
if totIde$<>"" then                                'listar identificacao ?
   res = XlsLst(xlsLin, 3, totIde$)                'identificar
end if

res = XlsLst(xlsLin, 4, vmDeb)                     'valor mensal - debito
res = XlsLst(xlsLin, 5, vmCre)                     'valor mensal - credito

res = XlsLst(xlsLin, 6, vaDeb)                     'valor acumulado - debito
res = XlsLst(xlsLin, 7, vaCre)                     'valor acumulado - credito

res = XlsLst(xlsLin, 8, saDeb)                     'saldo acumulado - debito
res = XlsLst(xlsLin, 9, saCre)                     'saldo acumulado - credito

xlsLin = xlsLin + 1                                'contar linha
end sub

##


'==============================================================================
#INC
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
##
