'Nome       : BALMIX.STD
'Tipo       : LST
'Data       : 2005/10/20
'Versao     : 1.0
'Descricao  : Balancete geral (1 linha e 3 linhas) + modo grafico

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.0  2000/02/15 ---------------------------------------------------
'Usar numero de decimais da moeda da empresa

'- Versao : 2.1  2000/03/31 ---------------------------------------------------
'passar de 132 para 130 colunas por causa das impressoras laser

'- Versao : 2.1a 2005/??/?? ---------------------------------------------------
'Correcção ortográfica


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


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


'==============================================================================
#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]=Lst_Cab1
Listar linhas               [FxLIN]=Lst_Lin1; Deb ; Cre
Listar fim                  [FxFIM]=Lst_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]=Lst_Cab3
Listar linhas               [FxLIN]=Lst_Lin3,4
Listar fim                  [FxFIM]=Lst_Fim3
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=BalGer
Nome                       [DocNom]=Bmg1,Balancete de uma linha (Gráfico)
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Bmg1_Cab
Listar linhas               [FxLIN]=Bmg1_Lin; Deb ; Cre
Listar fim                  [FxFIM]=Bmg1_Fim
##


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

'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)
Titulo   = TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))

Ct       = Cta_Mst_Ct$
Nome     = left$(Cta_Mst_Nome$,28)

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


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

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

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

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

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

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

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


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
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 ET,  2                                       'espessura de traco

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

cnt=0                                              'limpar contador
end sub


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


SUB Lst_AJT
end sub


'- Balancete de 1 linha ------------------------------------------------------
SUB Lst_Cab1
?
FxDiv LstIde,16CPI,0
?@Titulo                                                                                                                            #
?Data: @DataExt                                                                                                       Folha No: @Pag#
?==================================================================================================================================
?                                               Movimento do Mes                  Acumulados Actuais                   Saldo      #
?   Conta           Nome                     Debito          Credito           Debito          Credito           Devedor / Credor #
?==================================================================================================================================
end sub


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


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


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


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


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


SUB Lst_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



'- Bmg1 - Balancete em modo grafico (1 linha) --------------------------------
SUB Bmg1_Cab 'cabecalho
CabLin = 2                                         'linhas de cabecalho
call Cab132                                        'listar cabecalho
PrWIN AJT_B,  8.0, 0.0                             'posicao base

PrWin FON, "BOLD+"                                 'activar bold
call Bmg1_CabCol                                   'titulos das colunas
PrWin FON, "BOLD-"                                 'desactivar bold
end sub


Sub Cab132 'cabecalho para 132 colunas
PrWIN AJT_B, 10.0, 0.0                             'posicao base

cabX1=3                                            'limite X1
'cabX2=270                                          'limite X2
cabX2=278                                          'limite X2
cabY1=25                                           'limite Y1
cabY2=cabY1+CabLin*dimLinCab                       'limite Y2
cabYm=cabY2+35*dimLinNor                           'limite Y maximo

PrWIN COR_F, 15                                    'cor de fundo
PrWIN FON, 10, 1                                   'activar fonte

PrWIN TX_N, cabX2-100,  5,SigLstInf$("EMPIDE")     'identificacao da empresa

PrWIN FON, 18, 1                             	   'activar fonte
PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_CTR,  cabX1, 5, cabX2, cabY1,MemTxt$(1)   'titulo centrado
PrWin FON, "BOLD-"                                 'desactivar bold
PrWIN FON, 10, 1                             	   'activar fonte

py   =cabY1-dimLinNor-1                            'posicao Y
pxFol=CabX2-30                                     'posicao X para folha
pxPag=CabX2-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

PrWIN COR_E, 200, 200, 200                         'cor de enchimento RGB
PrWIN GR_ME, 0                                     'modo de enchimento

PrWIN GR_CE,  cabX1, cabY1, cabX2, cabY2, 2        'caixa do cabecalho
PrWIN GR_CX,  cabX1, cabY1, cabX2, cabYm, 2        'caixa envolvente

PrWIN FON, 8, 1                             	   'activar fonte
PrWIN TX_N, cabX1+5,cabYm+3,SigLstInf$("PERSON")   'personalizacao
PrWIN FON, 10, 1                             	   'activar fonte
End Sub


SUB Bmg1_LinDeb 'linha para saldo a debito
call Bmg1_LinPos                                   'posicionar linha

PrWIN TX_N,  6.0,0,@Ct
PrWIN TX_N, 33.3,0,@Nome
PrWIN TX_NP, 98.4,0,"N",@MesDeb
PrWIN TX_NP,134.1,0,"N",@MesCre
PrWIN TX_NP,169.8,0,"N",@ActDeb
PrWIN TX_NP,205.5,0,"N",@ActCre
PrWIN TX_NP,241.2,0,"N",@SalDeb2
end sub


SUB Bmg1_LinCre 'linha para saldo a credito
call Bmg1_LinPos                                   'posicionar linha

PrWIN TX_N,  6.0,0,@Ct
PrWIN TX_N, 33.3,0,@Nome
PrWIN TX_NP, 98.4,0,"N",@MesDeb
PrWIN TX_NP,134.1,0,"N",@MesCre
PrWIN TX_NP,169.8,0,"N",@ActDeb
PrWIN TX_NP,205.5,0,"N",@ActCre
PrWIN TX_NP,241.2,0,"N",@SalCre2
end sub


SUB Bmg1_Fim 'fim de listagem
tmp=CntLin("INC",-1)                               'contar linha (sem nova pagina)

px1=  5
px2=280
py1=  8
py2=py1+10
'PrWIN GR_LI,px1,py1,px2,py2, 2                    'linha de separacao
PrWIN GR_CX,px1,py1,px2,py2, 2                     'caixa para totais

tmp=CntLin("INC",-1)                               'contar linha (sem nova pagina)
call Bmg1_LinPos                                   'posicionar linha
PrWIN TX_N, 35.3,0,"Total débito:"
PrWIN TX_NP, 98.4,0,"N",@MesDebT
PrWIN TX_NP,169.8,0,"N",@ActDebT
PrWIN TX_NP,241.2,0,"N",@SalDebT2

tmp=CntLin("INC",-1)                               'contar linha (sem nova pagina)
call Bmg1_LinPos                                   'posicionar linha
PrWIN TX_N, 35.3,0,"Total crédito:"
PrWIN TX_NP,134.1,0,"N",@MesCreT
PrWIN TX_NP,205.5,0,"N",@ActCreT
PrWIN TX_NP,241.2,0,"N",@SalCreT2

PrWIN FP                                           'fim de pagina
end sub


SUB Bmg1_FimAjt 'fim de pagina intermedia
PrWIN FP                                           'fim de pagina
end sub


SUB Bmg1_CabCol
yZt=cabY1+dimLinCab
xZ1= 97.4
xZ2=133.1
xZ3=168.8
xZ4=204.5
xZ5=240.2

PrWIN TX_CTR,  5.0,cabY1, 32.3,cabY2,"Conta"
PrWIN TX_CTR, 32.3,cabY1, 97.4,cabY2,"Nome"
PrWIN TX_CTR,xZ1,cabY1,xZ3,yZT  ,"Movimento do Mês"
PrWIN TX_CTR,xZ1,yZT  ,xZ2,cabY2,"Débito"
PrWIN TX_CTR,xZ2,yZT  ,xZ3,cabY2,"Crédito"
PrWIN TX_CTR,xZ3,cabY1,xZ5,yZT  ,"Acumulados Actuais"
PrWIN TX_CTR,xZ3,yZT,xZ4  ,cabY2,"Débito"
PrWIN TX_CTR,xZ4,yZT,xZ5  ,cabY2,"Crédito"
PrWIN TX_CTR,240.2,cabY1,281.8,cabY2,"Saldos"

PrWIN GR_LI, xZ1,yZT,xZ5,yZT,2
PrWIN GR_LI, 32.3,cabY1, 32.3,cabYm,2
PrWIN GR_LI, 97.4,cabY1, 97.4,cabYm,2
PrWIN GR_LI,133.1,yzT  ,133.1,cabYm,2
PrWIN GR_LI,168.8,cabY1,168.8,cabYm,2
PrWIN GR_LI,204.5,yZT  ,204.5,cabYm,2
PrWIN GR_LI,240.2,cabY1,240.2,cabYm,2
end sub


SUB Bmg1_LinPos 'posicao de linha
'PrWIN AJT_B,  8, 31+Doc_CntLin*4.4                 'posicao base
'PrWIN TX_N,  -3,  0,Doc_CntLin                     'numero da linha - DEBUG
PrWIN AJT_B,  8, 35+Doc_CntLin*4.4                 'posicao base
end sub
##
