'Nome       : CobOrc_VTO.par
'Tipo       : LST
'Data       : 2009/03/23
'Versao     : 1.0
'Descricao  : Orcamento com valor total

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2008/??/?? --------------------------------------------------
'Versao base


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


'==============================================================================
#DOC - Documento
'==============================================================================
Tipo                       [DocTip]=VBS_ESP
Nome                       [DocNom]=CobOrc,Orcamento

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

'funcoes de listagem
Funcao VBS                  [FxVbs]=DocCri
Listar cabecalho            [FxCAB]=
Listar linhas               [FxLIN]=
Listar fim                  [FxFIM]=

'Matriz auxiliar            [DocMat]=CobOrc.doc
Matriz auxiliar            [DocMat]=CobOrc_VTO.doc

'parametros especificos
Grupo de documentos        [DocEsp]=DocGrp=CON
Saida - Directorio         [DocEsp]=SaiDir=[EMP_EXT]\dWord\Cob
Saida - Nome               [DocEsp]=SaiNom=[NUM:6]_[SER]_Orc.doc
##


'==============================================================================
#DOC - Documento
'==============================================================================
Tipo                       [DocTip]=VBS_ESP
Nome                       [DocNom]=CobOrc2,Orcamento 2

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

'funcoes de listagem
Funcao VBS                  [FxVbs]=DocCri
Listar cabecalho            [FxCAB]=
Listar linhas               [FxLIN]=
Listar fim                  [FxFIM]=

'Matriz auxiliar            [DocMat]=CobOrc.doc
Matriz auxiliar            [DocMat]=CobOrc_VTO.doc

'parametros especificos
Grupo de documentos        [DocEsp]=DocGrp=CON
Saida - Directorio         [DocEsp]=SaiDir=[EMP_EXT]\dWord\Cob
Saida - Nome               [DocEsp]=SaiNom=[SER]_[NUM:6]_Orc.doc
##


'==============================================================================
#DOC - Documento
'==============================================================================
Tipo                       [DocTip]=VBS_ESP
Nome                       [DocNom]=CobCon3,Orcamento 3

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

'funcoes de listagem
Funcao VBS                  [FxVbs]=DocCri
Listar cabecalho            [FxCAB]=
Listar linhas               [FxLIN]=
Listar fim                  [FxFIM]=

'Matriz auxiliar            [DocMat]=CobOrc.doc
Matriz auxiliar            [DocMat]=CobOrc_VTO.doc

'parametros especificos
Grupo de documentos        [DocEsp]=DocGrp=CON
Saida - Directorio         [DocEsp]=SaiDir=[EMP_EXT]\dWord\Cob
Saida - Nome               [DocEsp]=SaiNom=Orc[SER]_[NUM:6].doc
##


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


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

Sub FxIni 'inicializacao base
cnt=0                                  'limpar contador
end sub


'------------------------------------------------------------------------------
'- Orcamento ------------------------------------------------------------------
'------------------------------------------------------------------------------
Sub OrcDocCri 'criar documento
mat$ = DocFicMat$("AUT")               'endereco do ficheiro matriz
doc$ = VBS_DocFicCri$("")              'documento a criar

res = WordPrp(0)                       'preparar WORD
res = WordOpcVis(0, 0)                 'registar opcoes de visualizacao
res = WordDocCriCop(mat$, doc$, 1)     'criar documento

call LstSisRub                         'listar rubricas

'terminar
res = WordDocGrv(doc$)                 'guardar
res = WordVer(1)                       'mostrar maximizado
res = WordLib(0)                       'terminar acesso a WORD
end sub


Sub LstSisRub 'listar rubricas
res = WordDocMvp("F")                              'mover posicao
res = WordInsPag(1)                                'criar nova pagina

res = WordInsLin(1)                                'inserir linhas
nli = 2                                            'numero de linhas
nco = 3                                            'numero de colunas

'usaLinDes = 1                                      'usar linha de descricao
usaLinDes = 0                                      'nao usar linha de descricao

fon$ = ",,B+"                                      'fonte
tit$="Orçamento"                                   'titulo
res = WordTabCri(tit$, nli, nco)                   'criar tabela

res = WordTabColDx(1, 1.5)                         'largura da coluna - rubrica
res = WordTabColDx(2, 4.5)                         'largura da coluna - descricao
res = WordTabColDx(3, 1.0)                         'largura da coluna - valor total

res = WordTabTit(1, tit$)                          'titulo
res = WordTabCelFon(1, 1, ",20,")                  'fonte para titulo

num = CobLstRubPrp("")                             'numero de rubricas

'linha de titulos de colunas
res = WordTabInsLin(1)                             'juntar linha
li = 2                                             'linha a usar

for co = 1 to nco
res = WordTabCelFon(li, co, fon$)                  'fonte
res = WordTabCelAli(li, co, "|")                   'alinhamento
res = WordTabCelFun(li, co, "20%")                 'fundo da celula
next

res = WordTabCelTxt(li, 1, "Rubrica")              'listar rubrica
res = WordTabCelTxt(li, 2, "Descrição")            'listar identificacao
'res = WordTabCelTxt(li, 3, "Quant.")               'listar identificacao
'res = WordTabCelTxt(li, 4, "Uni.")                 'listar identificacao
'res = WordTabCelTxt(li, 5, "V. Unit.")             'listar valor
res = WordTabCelTxt(li, 3, "V. Total")             'listar valor

'linhas de dados
'li = 2                                             'linha a usar
for i = 1 to num
exi = CobLstRubPrpIdx(i)                           'preparar rubrica

if exi = 1 then                                    'existe ?
   'fon$ = ",,B+"                                   'fonte
   fon$ = ",,"                                   'fonte   

   niv  = Cob_OrcRub_Niv                           'nivel da rubrica
   rub$ = Cob_OrcRub_Rub$                          'rubrica
   ide$ = CobLstRubIde$(i)                         'identificacao da rubrica
   des$ = Cob_OrcRub_Des$                          'descricao
   uni$ = Cob_OrcRub_Uni$                          'unidade
   qua  = Cob_OrcRub_OrcMaQu                       'quantidade
   vun  = Cob_OrcRub_CliMaVu                       'valor unitario
   vto  = Cob_OrcRub_CliMaVt                       'valor total


   'formatar
   xQua$ = FrmNum$(12.2, qua)                      'quantidade
   xVun$ = FrmNum$(12.2, vun)                      'valor unitario
   xVto$ = FrmNum$(12.2, vto)                      'valor total

   if qua = 0 then                                 'sem quantidade ?
      xQua$ = ""                                   'quantidade
      xVun$ = ""                                   'valor unitario
   end if


   'listar
   res = WordTabInsLin(1)                          'juntar linha
   li = li + 1                                     'contar linha

   for co = 1 to nco
       res = WordTabCelFon(li, co, fon$)           'fonte
   next


   res = WordTabCelAli(li, 3, ">")                 'alinhamento
   res = WordTabCelAli(li, 4, "|")                 'alinhamento
   res = WordTabCelAli(li, 5, ">")                 'alinhamento
   res = WordTabCelAli(li, 6, ">")                 'alinhamento

   res = WordTabCelTxt(li, 1, rub$)                'listar rubrica
   res = WordTabCelTxt(li, 2, ide$)                'listar identificacao
   'res = WordTabCelTxt(li, 3, xQua$)               'listar quantidade
   'res = WordTabCelTxt(li, 4, uni$)                'listar unidade
   'res = WordTabCelTxt(li, 5, xVun$)               'listar valor unitario
   res = WordTabCelTxt(li, 3, xVto$)               'listar valor total

   if usaLinDes = 1 then                           'linha de descricao ?
      res = WordTabInsLin(1)                       'juntar linha
      li = li + 1                                  'contar linha

      res = WordTabCelLinMrg(li, 2, nco)           'merge de colunas 
      res = WordTabCelTxt(li, 2, des$)             'listar descricao
   end if
end if
next


'total
fon$ = ",,B+"                                      'fonte
res = WordTabInsLin(1)                             'juntar linha
li = li + 2                                        'linha a usar
for co = 1 to nco
res = WordTabCelFon(li, co, fon$)                  'fonte
next

fon$ = ",12,B+I+"                                  'fonte
exi = CobLstRubPrpIdx(0)                           'preparar rubrica (totais)

vto = Cob_OrcRub_CliVto                            'valor do orcamento
vtx$= FrmNum$(12.2, vto)                           'formatar  valor

res = WordTabCelAli(li, 3, ">")                    'alinhamento

res = WordTabCelTxt(li, 1, "")                     'limpar celula
res = WordTabCelTxt(li, 2, "Total do Orçamento")   'listar identificacao
res = WordTabCelTxt(li, 3, vtx$)                   'listar total

res = WordInsLin(1)                                'inserir linha

txt$="Todos os artigos à taxa de IVA normal"       'texto
res=WordInsTxt(txt$,1)                             'listar texto
end sub

##


'==============================================================================
#VBS - VbScript
'==============================================================================
'------------------------------------------------------------------------------
'FXDOC - Funcoes para documento
'------------------------------------------------------------------------------
Sub FxIni 'inicializar
msgbox "FxIni >?<"
end sub


Sub FxFim 'terminar
'msgbox "FxFim >?<"
end sub


Sub DocCri 'criar documento
with CobDoc
.VbsDocFic fic                         'ficheiro do documento
end with

'msgbox "DocCri >" & fic & "<"

with FxPre
.FxDoc "OrcDocCri"                     'criar documento
end with
end sub


Function DocFicCri(arg) 'ficheiro para documento a criar
'arg        - argumento (nao usado)

with CobDoc
.VbsDocFic fic                         'ficheiro do documento
end with

DocFicCri = fic                        'devolver resultado
end function

##


