'Nome       : ImoSncValor.sql
'Tipo       : LST
'Data       : 2011/04/01
'Versao     : 1.0
'Descricao  : Listagem de Valores do Imobilizado

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.0   2015/11/04 --------------------------------------------------
'Versao para consulta de valor ordenado por código para consulta de bens (XLS)

'- Versao : 1.0   2011/04/01 --------------------------------------------------
'Versao base
'Adaptacao de ValorImo.sql


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


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


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
Base de dados           [BD]=EmpFic$("EMP","Imo,Imo.mdb")

'------------------------------------------------------------------------------
' Valores do Imobilizado - ordenacao por Codigo
'------------------------------------------------------------------------------
Dados a listar [Cmd]=ImoValCOD=+
+SELECT ImoMst.[Cod$]    AS C01, +
+       ImoMst.[Nome$]   AS C02, +
+       ImoMst.[EqLeg$]  AS C03, +
+       ImoMst.[CtSnc$]  AS C04, +
+       ImoMst.[UsoIni]  AS C05, +
+       ImoMst.[UsoAnos] AS C06, +
+       ImoMst.[AmoVpa]  AS C07, +
+       ImoMst.[ReaVl]   AS C08, +
+       ImoMst.[AmoV]    AS C09, +
+       ImoMst.[VacImo]  AS C10  +
+FROM   ImoMst +
+WHERE  ImoMst.[AliDt] = 0 AND ImoMst.[AbaDt] = 0 +
+AND    ImoMst.[Cod$]    BETWEEN '{Opc_Cod.Ini}'   AND '{Opc_Cod.Fim}'   +
+AND    ImoMst.[CtSnc$]  BETWEEN '{Opc_CtBem.Ini}' AND '{Opc_CtBem.Fim}' +
+AND    ImoMst.[UsoIni]  BETWEEN  {Opc_Dt.Ini}     AND  {Opc_Dt.Fim}     +
+ORDER BY + 
+       ImoMst.[Cod$]


'------------------------------------------------------------------------------
' Valores do Imobilizado - ordenação por Conta/Codigo
'------------------------------------------------------------------------------
Dados a listar [Cmd]=ImoValCT=+
+SELECT ImoMst.[Cod$]    AS C01, +
+       ImoMst.[Nome$]   AS C02, +
+       ImoMst.[EqLeg$]  AS C03, +
+       ImoMst.[CtSnc$]  AS C04, +
+       ImoMst.[UsoIni]  AS C05, +
+       ImoMst.[UsoAnos] AS C06, +
+       ImoMst.[AmoVpa]  AS C07, +
+       ImoMst.[ReaVl]   AS C08, +
+       ImoMst.[AmoV]    AS C09, +
+       ImoMst.[VacImo]  AS C10  +
+FROM   ImoMst +
+WHERE  ImoMst.[AliDt] = 0 AND ImoMst.[AbaDt] = 0 +
+AND    ImoMst.[Cod$]    BETWEEN '{Opc_Cod.Ini}'   AND '{Opc_Cod.Fim}'   +
+AND    ImoMst.[CtSnc$]  BETWEEN '{Opc_CtBem.Ini}' AND '{Opc_CtBem.Fim}' +
+AND    ImoMst.[UsoIni]  BETWEEN  {Opc_Dt.Ini}     AND  {Opc_Dt.Fim}     +
+ORDER BY + 
+       ImoMst.[CtSnc$], +
+       ImoMst.[Cod$]


'------------------------------------------------------------------------------
' Valores do Imobilizado - ordenacao por Ano/Codigo
'------------------------------------------------------------------------------
Dados a listar [Cmd]=ImoValANO=+
+SELECT ImoMst.[Cod$]    AS C01, +
+       ImoMst.[Nome$]   AS C02, +
+       ImoMst.[EqLeg$]  AS C03, +
+       ImoMst.[CtSnc$]  AS C04, +
+       ImoMst.[UsoIni]  AS C05, +
+       ImoMst.[UsoAnos] AS C06, +
+       ImoMst.[AmoVpa]  AS C07, +
+       ImoMst.[ReaVl]   AS C08, +
+       ImoMst.[AmoV]    AS C09, +
+       ImoMst.[VacImo]  AS C10  +
+FROM   ImoMst +
+WHERE  ImoMst.[AliDt] = 0 AND ImoMst.[AbaDt] = 0 +
+AND    ImoMst.[Cod$]    BETWEEN '{Opc_Cod.Ini}'   AND '{Opc_Cod.Fim}'   +
+AND    ImoMst.[CtSnc$]  BETWEEN '{Opc_CtBem.Ini}' AND '{Opc_CtBem.Fim}' +
+AND    ImoMst.[UsoIni]  BETWEEN  {Opc_Dt.Ini}     AND  {Opc_Dt.Fim}     +
+ORDER BY + 
+       ImoMst.[UsoIni], +
+       ImoMst.[Cod$]


'------------------------------------------------------------------------------
' Valores do Imobilizado - ordenacao por Enquadramento Legal/Codigo
'------------------------------------------------------------------------------
Dados a listar [Cmd]=ImoValEQLEG=+
+SELECT ImoMst.[Cod$]    AS C01, +
+       ImoMst.[Nome$]   AS C02, +
+       ImoMst.[EqLeg$]  AS C03, +
+       ImoMst.[CtSnc$]  AS C04, +
+       ImoMst.[UsoIni]  AS C05, +
+       ImoMst.[UsoAnos] AS C06, +
+       ImoMst.[AmoVpa]  AS C07, +
+       ImoMst.[ReaVl]   AS C08, +
+       ImoMst.[AmoV]    AS C09, +
+       ImoMst.[VacImo]  AS C10  +
+FROM   ImoMst +
+WHERE  ImoMst.[AliDt] = 0 AND ImoMst.[AbaDt] = 0 +
+AND    ImoMst.[Cod$]    BETWEEN '{Opc_Cod.Ini}'   AND '{Opc_Cod.Fim}'   +
+AND    ImoMst.[CtSnc$]  BETWEEN '{Opc_CtBem.Ini}' AND '{Opc_CtBem.Fim}' +
+AND    ImoMst.[UsoIni]  BETWEEN  {Opc_Dt.Ini}     AND  {Opc_Dt.Fim}     +
+AND    ImoMst.[EqLeg$]  BETWEEN '{Opc_Div.Ini}'   AND '{Opc_Div.Fim}'   +
+ORDER BY + 
+       ImoMst.[EqLeg$], +
+       ImoMst.[Cod$]

##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=Doc1,Val.Imob - Ord. Código
Vias                       [DocVia]=Original

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc1_Cab
Listar linhas               [FxLIN]=Doc1_Lin
Listar fim                  [FxFIM]=Doc1_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValCOD
Subtotalizadores           [SQLSbt]=
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=Doc2,Val.Imob. - Ord. Conta
Vias                       [DocVia]=Original

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc1_Cab
Listar linhas               [FxLIN]=Doc1_Lin
Listar fim                  [FxFIM]=Doc1_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValCT
Subtotalizadores           [SQLSbt]=C04
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=Doc3,Val.Imob. - Ord. Ano
Vias                       [DocVia]=Original

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc1_Cab
Listar linhas               [FxLIN]=Doc1_Lin
Listar fim                  [FxFIM]=Doc1_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValANO
Subtotalizadores           [SQLSbt]=C05:4
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=Doc4,V.Imob.-Ord. Enq.Legal
Vias                       [DocVia]=Original

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc1_Cab
Listar linhas               [FxLIN]=Doc1_Lin
Listar fim                  [FxFIM]=Doc1_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValEQLEG
Subtotalizadores           [SQLSbt]=C03
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=DocG1_G,Val.Imob. - Ord. Código
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc2_Cab
Listar linhas               [FxLIN]=Doc2_Lin
Listar fim                  [FxFIM]=Doc2_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValCOD
Subtotalizadores           [SQLSbt]=
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=DocG2_G,Val.Imob. - Ord. Conta
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc2_Cab
Listar linhas               [FxLIN]=Doc2_Lin
Listar fim                  [FxFIM]=Doc2_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValCT
Subtotalizadores           [SQLSbt]=C04
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=DocG3_G,Valor Imob. - Ord. Ano
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc2_Cab
Listar linhas               [FxLIN]=Doc2_Lin
Listar fim                  [FxFIM]=Doc2_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValANO
Subtotalizadores           [SQLSbt]=C05:4
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=DocG4_G,V.Imob.-Ord. Enq.Legal
Vias                       [DocVia]=Original
Personalizacao             [DocPer]=

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Doc2_Cab
Listar linhas               [FxLIN]=Doc2_Lin
Listar fim                  [FxFIM]=Doc2_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValEQLEG
Subtotalizadores           [SQLSbt]=C03
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=Xls_Doc1,Val.Imob - Ord. Código (XLS)
Vias                       [DocVia]=Original

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsDoc1
Listar cabecalho            [FxCAB]=XlsDoc1_Cab
Listar linhas               [FxLIN]=XlsDoc1_Lin
Listar fim                  [FxFIM]=XlsDoc1_Fim

Matriz auxiliar            [DocMat]=ImoSncValorCod.xls

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ImoValCOD
Subtotalizadores           [SQLSbt]=C07:10
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'------------------------------------------------------------------------------
'Lista de variaveis especificas
'------------------------------------------------------------------------------
Tipo     = MemTxt$(1)
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)


'------------------------------------------------------------------------------
'Formatacao de valores
'------------------------------------------------------------------------------
TotNr    = FrmNum$(6.0,TotNr)
SbtId    = SbtIde$
SbtNr    = FrmNum$(6.0,SbtNr)

'Campos
C01   =left$(SqlCmp$("C01"), 10)
C02   =left$(SqlCmp$("C02"), 30)
C02T  =left$(SqlCmp$("C02"), 40)
C03   =left$(SqlCmp$("C03"), 4)
C04   =left$(SqlCmp$("C04"), 12)
C05   =FrmDt$("",SqlCmp("C05"))
C06   =FrmNum$( 4,SqlCmp("C06"))
C07   =FrmMoe$("", 13,SqlCmp("C07"))
C07_T0=FrmNum$( 10.2,Total(C07,0))
C07_N0=FrmNum$(6.0,TotCnt("C01",0))
T07   =FrmNum$( 10.2,Total(C07,0))
C08   =FrmMoe$("", 13,SqlCmp("C08"))
C08_T0=FrmNum$( 10.2,Total(C08,0))
C08_N0=FrmNum$(6.0,TotCnt("C01",0))
T08   =FrmNum$( 10.2,Total(C08,0))
C09   =FrmMoe$("", 13,SqlCmp("C09"))
C09_T0=FrmNum$( 10.2,Total(C09,0))
C09_N0=FrmNum$(6.0,TotCnt("C01",0))
T09   =FrmNum$( 10.2,Total(C09,0))
C10   =FrmMoe$("", 13,SqlCmp("C10"))
C10_T0=FrmNum$( 10.2,Total(C10,0))
C10_N0=FrmNum$(6.0,TotCnt("C01",0))
T10   =FrmNum$( 10.2,Total(C10,0))

'Subtotais
C07_T1=FrmNum$( 10.2,Total(C07,1))
C08_T1=FrmNum$( 10.2,Total(C08,1))
C09_T1=FrmNum$( 10.2,Total(C09,1))
C10_T1=FrmNum$( 10.2,Total(C10,1))
##


'==============================================================================
#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 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

cnt=0                                              'limpar contador
end sub


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


SUB Lst_AJT 'ajuste
'nada a executar
end sub


'------------------------------------------------------------------------------
'- Doc1 - Texto ---------------------------------------------------------------
'------------------------------------------------------------------------------
SUB Doc1_CabIni 'inicializar listagem
cntDoc=0
UsaTot=1
end sub


SUB Doc1_Cab 'cabecalho de listagem
FxDiv LstIde,16CPI,0
print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))
?Data : @DataExt                                                                                                     Folha No : @Pag#
'123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.12
?====================================================================================================================================
?  Código         Designação do Bem        Grupo    Conta     Inicio Uso Anos V. Aquisição  Valor Reavali Am. Acumulada Valor Actual
?====================================================================================================================================
'AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAA AAAAAAAAAAAA AAAA/MM/DD 9990 99,999,990.00 99,999,990.00 99,999,990.00 99,999,990.00
'<--------> <----------------------------> <---> <----------> <--------> <--> <-----------> <-----------> <-----------> <----------->
end sub


SUB Doc1_Lin 'linha de valores
?@C01       @C02                           @C03  @C04         @C05       @C06 @C07          @C08          @C09          @C10        #
end sub


Sub Doc1_LinTit1 'linha de titulo de grupo
tmp=CntLin("MIN",5)                                'minimo de linhas
tmp=CntLin("INC",1)                                'contar linha

grp$=SbtInf$("ACT",1)                              'grupo
tmp =SqlOpcAct("Grp",grp$)                         'actualizar valor do grupo
grVer$=grp$                                        'copiar

'ide$=SqlCalc$("GrpIde")                            'pesquisar identificador de grupo
ide$ = ""                                          'sem identificador de grupo
print tab(5) "Grupo : " grVer$ "     " ide$        'identificar grupo

'tmp=CntLin("INC",1)                               'contar linha
'print                                             'separar
end sub


Sub Doc1_LinSbt1 'linha de subtotais do grupo
grp$   =SbtInf$("ANT",1)                           'grupo
grVer$ =grp$                                       'copiar
SbtIde$=grVer$                                     'identificacao de subtotal
SbtNr  =TotCnt("C01",1)                            'numero de registos

?  Subtotal :          @SbtNr                                                 @C07_T1       @C08_T1       @C09_T1       @C10_T1     #
?

tmp=CntLin("INC",2)                                'contar linhas
x=TotLpz(1)                                        'limpar totais
end sub


SUB Doc1_FimAjt 'fim de pagina intermedia
'TotNr=TotCnt("C01",0)                             'numero de registos
?====================================================================================================================================
'if UsaTot > 0 then
'?  Total   :           @TotNr                                                 @T07          @T08          @T09          @T10        #
'?====================================================================================================================================
'print "Linhas:" Doc_CntLin                        'numero da linha - DEBUG
'end if

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


SUB Doc1_Fim 'fim de listagem
TotNr=TotCnt("C01",0)                              'numero de registos
?====================================================================================================================================
if UsaTot > 0 then
?  Total   :           @TotNr                                                 @T07          @T08          @T09          @T10        #
?====================================================================================================================================
'print "Linhas:" Doc_CntLin                        'numero da linha - DEBUG
end if

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


'------------------------------------------------------------------------------
'- Doc2 - Grafico -------------------------------------------------------------
'------------------------------------------------------------------------------
SUB Doc2_CabIni 'inicializar listagem
cntDoc=0                                           'limpar contador
UsaTot=1                                           'usar totais
UsaEnv=1                                           'usar envolvente
UsaSpc=0                                           'usar separador de colunas
end sub


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

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

PrWIN COR_F, 15                                    'cor de fundo
PrWIN FON, 06.5, 1                                 'activar fonte
PrWIN TX_N, 5        , 10,EmpCurIde$("IDE")        'nome da empresa
PrWIN FON, 11, 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, 07, 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

if UsaEnv=1 then
   PrWIN GR_CX,  cabX1, cabY1, cabX2, cabYm, 2     'caixa envolvente
end if
End Sub


SUB Doc2_Cab 'cabecalho
CabLin = 1                                         'linhas de cabecalho
call Cab132                                        'listar cabecalho
PrWIN AJT_B,  8.0, 0.0                             'posicao base

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


SUB Doc2_CabCol
PrWIN TX_CTR,  5.0,cabY1, 20.8,cabY2,"Código"
PrWIN TX_CTR, 20.8,cabY1, 65.4,cabY2,"Designação do Bem"
PrWIN TX_CTR, 76.5,cabY1, 77.0,cabY2,"Grupo"
PrWIN TX_CTR, 85.0,cabY1, 85.0,cabY2,"Conta"
PrWIN TX_CTR, 101.0,cabY1,101.0,cabY2,"Inicio Uso"
PrWIN TX_CTR,115.0,cabY1,115.0,cabY2,"Ut."
PrWIN TX_CTR,120.0,cabY1,139.0,cabY2,"V.Aquisição"
PrWIN TX_CTR,139.0,cabY1,158.0,cabY2,"V.Reavaliação"
PrWIN TX_CTR,158.0,cabY1,177.0,cabY2,"A.Acumuladas"
PrWIN TX_CTR,177.0,cabY1,195.0,cabY2,"Valor Actual"
end sub


SUB Doc2_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
end sub


SUB Doc2_Lin 'linha
call Doc2_LinPos                                   'posicionar linha
call Doc2_LinCol                                   'listar colunas
end sub


SUB Doc2_LinCol
PrWIN TX_N,   6.0,0,@C01
PrWIN FON, 06.5, 1                                   'activar fonte
PrWIN TX_N,  22.0,0,@C02T
PrWIN FON, 07.0, 1                                   'activar fonte
PrWIN TX_N,  77.0,0,@C03
PrWIN TX_N,  85.0,0,@C04
PrWIN TX_N, 101.0,0,@C05
PrWIN TX_NP,113.0,0,"N",@C06
PrWIN TX_NP,120.0,0,"N",@C07
PrWIN TX_NP,139.0,0,"N",@C08
PrWIN TX_NP,158.0,0,"N",@C09
PrWIN TX_NP,177.0,0,"N",@C10
end sub


SUB Doc2_LinTit1 'titulo de subtotal 1
tmp=CntLin("MIN",5)                                'minimo de linhas
tmp=CntLin("INC",1)                                'contar linha

grp$=SbtInf$("ACT",1)                     'grupo
tmp =SqlOpcAct("Grp",grp$)                         'actualizar valor do grupo
grVer$=grp$                                        'copiar

'ide$=SqlCalc$("GrpIde")                            'pesquisar identificador de grupo
ide$ = ""                                          'sem identificador de grupo
txi$="Grupo : "+grVer$+"     "+ide$                'identificar grupo

call Doc2_LinPos                                   'posicionar linha
PrWIN TX_N, 06,  0,txi$                            'listar identificacao de grupo
end sub


SUB Doc2_LinSbt1 'valor de subtotal 1
grp$   =SbtInf$("ANT",1)                           'grupo
grVer$ =grp$                                       'copiar
SbtIde$=grVer$                                     'identificacao de subtotal
SbtNr  =TotCnt("C01",1)                            'numero de registos

tmp=CntLin("INC",1)                                'contar linha
call Doc2_LinPos                                   'posicionar linha
call Doc2_LinSbt1Col                               'listar valores

tmp=CntLin("INC",1)                                'contar linha
x=TotLpz(1)                                        'limpar totais
end sub


SUB Doc2_LinSbt1Col 'valores de subtotal 1
PrWIN TX_NP, 10.0,0,"N",@SbtNr
PrWIN TX_N, 31.1,0,"Subtotais:"
PrWIN TX_NP,120.0,   0+2,"N",@C07_T1
PrWIN TX_NP,139.0,   0+2,"N",@C08_T1
PrWIN TX_NP,158.0,   0+2,"N",@C09_T1
PrWIN TX_NP,177.00,  0+2,"N",@C10_T1
end sub


SUB Doc2_FimAjt 'fim de pagina intermedia
'TotNr=TotCnt("C01",0)                             'numero de registos
'tmp=CntLin("INC",-1)                              'contar linha (sem nova pagina)
'call Doc2_LinPos                                  'posicionar linha
'if UsaTot > 0 then
'   call Doc2_FimCol                               'listar totais
'end if

PrWIN FP                                           'fim de pagina
end sub


SUB Doc2_Fim 'fim de listagem
TotNr=TotCnt("C01",0)                              'numero de registos
tmp=CntLin("INC",-2)                               'contar linha (sem nova pagina)
call Doc2_LinPos                                   'posicionar linha
if UsaTot > 0 then
   call Doc2_FimCol                                'listar totais
end if

PrWIN FP                                           'fim de pagina
end sub


SUB Doc2_FimCol
PrWIN TX_N, 22.0,    0+2,"N.º de Bens"             'numero de bens - total - titulo
PrWIN TX_NP,33.0,    0+2,"N",@TotNr                'numero de bens - total
PrWIN TX_N, 77.0,    0+2,"Totais:                  'titulo
PrWIN TX_NP,120.0,   0+2,"N",@T07                  'total valor aquisicao 
PrWIN TX_NP,139.0,   0+2,"N",@T08                  'total valor realizacao
PrWIN TX_NP,158.0,   0+2,"N",@T09                  'total amortizacoes acumuladas
PrWIN TX_NP,177.00,  0+2,"N",@T10                  'total
end sub


'==============================================================================
'- [XLS] - Listar para XLS ----------------------------------------------------
'==============================================================================
Sub Com_Xls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:ImoSncValorCod.xls"              'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

call XlsComDoc_IniMat                              'inicializar documento por matriz

'preparacao especifica
res = XlsWks("Valores")                            'activar worksheet
end sub


Sub Com_Xls_DocFim 'terminar documento
res = XlsWksAct("A", 1)                            'activar worksheet
call XlsComDoc_Fim                                 'terminar/mostrar documento
end sub


Sub Com_Xls_IncLin 'incrementar linha
call XlsComLin_IncRep                              'incrementar linha + repor formato normal

zon$ = XlsZon$(liUsa, coCod,liUsa, coNom)          'zona
res = XlsAli(zon$, "<")                            'alinhamento
end sub


Sub Com_Xls_LinSep 'linha de separacao
call XlsVnd_IncLin                                 'incrementar linha
end sub


'Sub Com_Xls_LstLinIde 'listar linha - identificacao (codigo e nome)
'res = XlsLst(liUsa, coCod, vaCod$)                 'codigo
'res = XlsLst(liUsa, coNom, vaNom$)                 'nome
'end sub


'------------------------------------------------------------------------------
'- [XLS] - Listagem de Bens ---------------------------------------------------
'------------------------------------------------------------------------------
Sub XlsDoc1_DocIni 'inicializar documento
call Com_Xls_DocIni                                'inicializar documento
end sub


Sub XlsDoc1_Cab 'cabecalho
'preparar cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
'lstTit$ = comCabTit$                               '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$)               'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data

call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coCod =  2                                         'codigo
coNom =  3                                         'nome
coGrp =  4                                         'grupo
coCTi =  5                                         'conta do bem
coDtc =  6                                         'data inicio uso
coBut =  7                                         'utilizacao
coVaq =  8                                         'valor aquisicao
CoVre =  9                                         'valor reavaliacao
coAAc = 10                                         'amortizacoes acumuladas
coVal = 11                                         'valor actual
end sub


Sub XlsDoc1_Lin 'linha
call Com_Xls_IncLin                                'incrementar linha	

vaCod$ =left$(SqlCmp$("C01"), 10)                  'codigo
vaNom$ =left$(SqlCmp$("C02"), 30)                  'nome
vaGrp$ =left$(SqlCmp$("C03"), 4)                   'grupo
vaCti$ =left$(SqlCmp$("C04"), 12)                  'conta
vaDtc$ =FrmDt$("",SqlCmp("C05"))                   'data inicio uso
vaBut$ =FrmNum$( 4,SqlCmp("C06"))                  'anos
vaVaq$ =FrmMoe$("", 13,SqlCmp("C07"))              'valor aquisicao
vaVre$ =FrmNum$( 10.2,Total(C08,0))                'valor realizacao
vaAac$ =FrmMoe$("", 13,SqlCmp("C09"))              'amortizacoes acumuladas
vaVal$ =FrmMoe$("", 13,SqlCmp("C10"))              'total

'listar
res = XlsLst(liUsa, coCod, vaCod$)                 'codigo
res = XlsLst(liUsa, coNom, vaNom$)                 'nome
res = XlsLst(liUsa, coGrp, vaGrp$)                 'grupo
res = XlsLst(liUsa, coCti, vaCti$)                 'conta
res = XlsLst(liUsa, coDtc, vaDtc$)                 'inicio uso
res = XlsLst(liUsa, coBut, vaBut$)                 'anos
res = XlsLst(liUsa, coVaq, vaVaq$)                 'valor aquisicao
res = XlsLst(liUsa, coVre, vaVre$)                 'valor reavaliação
res = XlsLst(liUsa, coAac, vaAac$)                 'amortizacoes acumuladas
res = XlsLst(liUsa, coVal, vaVal$)                 'valor total
end sub


Sub XlsDoc1_Fim 'terminar
call Com_Xls_DocFim                                'listar 
end sub
##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                         =[SIG_Dir.Div],LsComPgm.std
Funcoes comuns XLS                     =[SIG_LST_DIR.XLS],XlsCom_Pgm.inc
##



