'Nome       : Bens.mst
'Tipo       : CFR
'Data       : 2007/02/09
'Versao     : 1.0
'Descricao  : Listagem de Bens XLS

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


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


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

Dados a listar [Cmd]=GerDli=+
+SELECT ImoMst.Local$ AS C01,ImoMst.EqLeg$ AS C02,ImoMst.cod$ AS C03,ImoMst.Nome$ AS C04, +
+ImoMst.UsoIni AS C05,ImoMst.VacImo AS C06, AqiFor$ as vAQI +
+FROM ImoMst +
+ORDER BY ImoMst.Local$,ImoMst.cod$
##


'-------------------------------------------------------------------------------
#DOC - Configuracao do documento
'-------------------------------------------------------------------------------
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=Bens,Listagem de Bens (XLS)

'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]=Bens
Listar cabecalho            [FxCAB]=Bens_Cab
Listar linhas               [FxLIN]=Bens_Lin
Listar fim                  [FxFIM]=Bens_Fim

Matriz auxiliar            [DocMat]=Bens.xls

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


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


TotNr    = FrmNum$(6.0,TotNr)
SbtId    = SbtIde$
SbtNr    = FrmNum$(6.0,SbtNr)

'Campos
C01 = left$(SqlCmp$("C01"), 20)
C02 = left$(SqlCmp$("C02"), 4)
C03 = left$(SqlCmp$("C03"), 10)
C04 = left$(SqlCmp$("C04"), 28)
C05 = FrmDt$("",SqlCmp("C05"))
C06 = FrmMoe$("", 13,SqlCmp("C06"))
C06_T0=FrmNum$( 10.2,Total(C06,0))
C06_N0=FrmNum$(6.0,TotCnt("C01",0))
T06   =FrmNum$( 10.2,Total(C06,0))

'Subtotais
##


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



'=============================================================================
' Listagem de Bens
'=============================================================================
Sub Bens_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:ImoBens.xls"         'nome do ficheiro a gerar
xlsOpcWks$ = ""                        'nome da woorksheet

call XlsComDoc_IniMat                  'inicializar documento por matriz

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

'preparar 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$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data

'res = XlsIdeLst("Lst_Tit", "")                     'anular titulo da listagem
call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coLoc = 3                                          'localizacao
coEql = 4                                          'enquadramento legal
coCod = 5                                          'codigo do bem
coNom = 6                                          'nome do bem
coFor = 7                                          'fornecedor
coDti = 8                                          'data de inicio
coAqi = 9                                          'valor de aquisicao

'incializar contadores/acumuladores
cntDoc=0
UsaTot=1
end sub


Sub Bens_DocFim 'terminar documento
'XlsMat$=""                                        '#DBG#

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


Sub Bens_Cab 'cabecalho de listagem
'nada a executar
end sub


Sub Bens_IncLin 'incrementar linha	
call XlsComLin_IncRep                              'incrementar linha + repor formato normal
end sub


SUB Bens_Lin 'linha de valores
call Bens_IncLin                                   'incrementar linha	

vAqi$ = SqlCmp$("vAQI")                            'dados de aquisicao
nfo   = ImoAqiPrp(vAqi$)                           'preparar dados de aquisicao
for$  = ""                                         'limpar fornecedores
for i = 1 to nfo
tmp$  = ImoAqiCon$(i, "CT")                        'fornecedor
if i > 1 then
   for$ = for$ +", "                               'juntar separacao
end if
for$ = for$ + tmp$                                 'juntar fornecedor
next

'listar
res = XlsLst(liUsa, coLoc, @C01)                     'localizacao
res = XlsLst(liUsa, coEql, @C02)                     'enquadramento legal
res = XlsLst(liUsa, coCod, @C03)                     'codigo do bem
res = XlsLst(liUsa, coNom, @C04)                     'nome do bem
res = XlsLst(liUsa, coFor, for$)                     'fornecedor
res = XlsLst(liUsa, coDti, @C05)                     'data de inicio
res = XlsLst(liUsa, coAqi, @C06)                     'valor de aquisicao

'acumular
'res = AcmExe("STQU", qua)                            'acumular quantidades (sub-totais)
'res = AcmExe("STVT", vto)                            'acumular valores (sub-totais)
end sub


Sub Bens_Fim 'fim de listagem
call XlsComLin_Fim                                   'fim de linhas

'valores a listar
TotNr=TotCnt("C01",0)                                'numero de registos

'TotQu = Total("STQU",0)                             'quantidades totais finais
'TotVl = Total("STVT",0)                             'valor total final
'TotVl = AcmCon("STQU",0)                             'valor total final
'TotQu = Total("Qu",0)                                'quantidades totais finais
'TotVl = Total("Vt",0)                                'valor total final


'listar
liUsa = linFim                                      'linha a usar
res = XlsLst(liUsa, coEql, TotNr)                   'numero de registos
end sub

##


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


