'Nome       : BscCom_Vbs.inc
'Tipo       : LST
'Data       : 2013/10/29
'Versao     : 1.0
'Descricao  : BSC - Funcoes comuns - VB Script

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   ____/__/__ --------------------------------------------------
'Versao base


'==============================================================================
#VBS - VB Script
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario


'------------------------------------------------------------------------------
'#ASP - Aspecto
'------------------------------------------------------------------------------
Function AspVtx(asp) 'aspecto para texto
'asp        - aspecto

with DocAsp
res = .AspVtx(asp)                     'aspecto para texto
end with

'terminar
AspVtx = res                           'devolver resultado
end function


Function AspCorT(cor) 'aspecto para cor de texto
'cor        - cor para texto

res = AspCor(cor, "-")                 'aspecto para cor

'terminar
AspCorT = res                          'devolver resultado
end function


Function AspCor(fg, bg) 'aspecto para cor
'fg         - foreground (texto)
'bg         - background (fundo)

with DocAsp
res = .AspCor(fg, bg)                  'aspecto para cor
end with

'terminar
AspCor = res                           'devolver resultado
end function


Function FrmNum(asp, frm, num) 'formatar numero
'asp        - aspecto
'frm        - formato
'num        - numero

with DocAsp
res = .FRM_Num(asp, frm, num)          'formatar numero
end with

'terminar
FrmNum = res                           'devolver resultado
end function


Function FrmDsv(asp, dsv, dsp) 'formatar desvio
'asp        - aspecto
'dsv        - desvio - valor
'dsp        - desvio - %


with DocAsp
res = .FRM_Dsv(asp, dsv, dsp)          'formatar desvio
end with

'terminar
FrmDsv = res                           'devolver resultado
end function


'------------------------------------------------------------------------------
'#IDE - Identificar
'------------------------------------------------------------------------------
Function IdeZon(asp, ide) 'identificar zona
'asp        - aspecto
'ide        - identificacao

with DocAsp
res = .IdeZon(asp, ide)                'identificar zona
end with

'terminar
IdeZon = res                           'devolver resultado
end function


Function IdeInd(asp, py, des) 'identificar identificador
'asp        - aspecto
'py         - posicao Y
'des        - descricao

with DocAsp
res = .IdeInd(asp, py, des)            'identificar identificador
end with

'terminar
IdeInd = res                           'devolver resultado
end function


Function IdeGrp(asp, grp, des) 'identificar grupo
'asp        - aspecto
'grp        - codigo do grupo
'des        - descricao

with DocAsp
res = .IdeGrp(asp, grp, des)           'identificar grupo
end with

'terminar
IdeGrp = res                           'devolver resultado
end function


Function IdeLtx(asp, py, vtx) 'identificar linha de texto
'asp        - aspecto
'py         - posicao
'vtx        - texto

with DocAsp
res = .IdeLtx(asp, py, vtx)            'identificar linha de texto
end with

'terminar
IdeLtx = res                           'devolver resultado
end function


Function IdeZtx(asp, py, vtx) 'identificar em zona de texto
'asp        - aspecto
'py         - posicao
'vtx        - texto

with DocAsp
res = .IdeZtx(asp, py, vtx)            'identificar em zona de texto
end with

'terminar
IdeZtx = res                           'devolver resultado
end function


'------------------------------------------------------------------------------
'#SUP - Funcoes de suporte
'------------------------------------------------------------------------------
Function ZonEnv(asp, x1, y1, x2, y2) 'envolvente de zona
'asp        - aspecto
'x1         - posicao X1
'y1         - posicao Y1
'x2         - posicao X2
'y2         - posicao Y2


with DocAsp
res = .ZonEnv(asp, x1, y1, x2, y2)     'envolvente de zona
end with

'terminar
ZonEnv = res                           'devolver resultado
end function


'------------------------------------------------------------------------------
'#DPG - Documento por tipo de pagina
'------------------------------------------------------------------------------
Function DpgIni(tip) 'inicializar
'tip        - tipo

with VbsPub
docPagTip = .TXT_Ajc(tip)              'tipo de pagina
end with

'msgbox "DPG/INI >" & docPagTip & "<"


'terminar
DpgIni = docPagTip                     'devolver resultado
end function


Function DpgFx(arg) 'executar funcao
'arg        - tipo de funcao

ok = 1                                             'assume valido
tfx = arg                                          'tipo de funcao

with FxPre
select case docPagTip
case "EVO"              'evolucao
'- (25) --------------->'Comentario
'- (52) ------------------------------------------>'Comentario
   fxu = DocPagTip + "_" + tfx                     'funcao a usar 
   .FxDoc fxu                                      'executar funcao do documento

case "RES"              'resumo
   fxu = DocPagTip + "_" + tfx                     'funcao a usar 

   'msgbox "DPG/FX - RES >" & fxu & "<"


   .FxDoc fxu                                      'executar funcao do documento

case "RESEVO"              'resumo - evoluçao
   fxu = DocPagTip + "_" + tfx                     'funcao a usar 

   'msgbox "DPG/FX - RES.EVO >" & fxu & "<"


   .FxDoc fxu                                      'executar funcao do documento

case "RESOBJ"              'resumo - evoluçao
   fxu = DocPagTip + "_" + tfx                     'funcao a usar 

   'msgbox "DPG/FX - RESOBJ >" & fxu & "<"


   .FxDoc fxu                                      'executar funcao do documento

case "IND"              'individual
   fxu = DocPagTip + "_" + tfx                     'funcao a usar

   'msgbox "DPG/FX - IND >" & fxu & "<"

   .FxDoc fxu                                      'executar funcao do documento

case "PER"              'periodo
   fxu = DocPagTip + "_" + tfx                     'funcao a usar 
   .FxDoc fxu                                      'executar funcao do documento

case else               'outros - invalido
   ok = 0                                          'nada a executar
end select
end with

'terminar
DpgFx = ok                                         'devolver resultado
end function


'------------------------------------------------------------------------------
'= SUP - Funcoes de suporte ===================================================
'------------------------------------------------------------------------------


'------------------------------------------------------------------------------
'= SUP - Funcoes de suporte ===================================================
'------------------------------------------------------------------------------
Function DtMesIde(asp, mes) 'identificar mes
'asp        - aspecto
'mes        - numero do mes (1 a 12)

select case mes
case 1                  'mes 1
   ide = "Janeiro"                     'identificacao

case 2                  'mes 2
   ide = "Fevereiro"                   'identificacao

case 3                  'mes 3
   ide = "Março"                       'identificacao

case 4                  'mes 4
   ide = "Abril"                       'identificacao

case 5                  'mes 5
   ide = "Maio"                        'identificacao

case 6                  'mes 6
   ide = "Junho"                       'identificacao

case 7                  'mes 7
   ide = "Julho"                       'identificacao

case 8                  'mes 8
   ide = "Agosto"                      'identificacao

case 9                  'mes 9
   ide = "Setembro"                    'identificacao

case 10                 'mes 10
   ide = "Outubro"                     'identificacao

case 11                 'mes 11
   ide = "Novembro"                    'identificacao

case 12                 'mes 12
   ide = "Dezembro"                    'identificacao

case else               'outros - invalido
   ide = ""                            'identificacao
end select

'gerar identificacao
select case asp
case "ABV"              'abreviatura
   res = left(ide, 3)                  'resultado

case else               '<DES>, outros - descricao
   res = ide                           'resultado
end select

'terminar
DtMesIde = res                         'devolver resultado
end function


'------------------------------------------------------------------------------
'- NUM - Numero ---------------------------------------------------------------
'------------------------------------------------------------------------------
Sub NumCnv(vtx, num) 'conversao em numero
'vtx        - valor/texto
'num        - valor numero

on error resume next                   'controlar erros

'msgbox "NumCnv >"+vtx+"<"

num=0                                  'assume valor zero
if vtx = "" then                       'sem valor ?
   num = 0                             'usar valor zero
else
   num = cDbl(vtx)                     'conversao em numero
end if

on error goto 0                        'terminar controlo de erros
end sub


Sub NumInt(vtx, num) 'conversao em numero inteiro
'vtx        - valor/texto
'num        - valor numero

on error resume next                   'controlar erros

num=0                                  'assume valor zero
if vtx = "" then                       'sem valor ?
   num = 0                             'usar valor zero
else
   num = cInt(vtx)                     'conversao em numero
end if

on error goto 0                        'terminar controlo de erros
end sub


'------------------------------------------------------------------------------
'- TXT - Texto ----------------------------------------------------------------
'------------------------------------------------------------------------------
Function TxtAjc(tx) 'ajustar texto para comparar
'tx         - texto base

res = trim(ucase(tx))                  'ajustar

'terminar
TxtAjc = res                           'retornar valor
end function


Function TxtCv(vl) 'conversao em texto
'vl         - valor a converter

call TxtCnv(vl, res)                   'conversao em texto

'terminar
TxtCv = res                            'retornar valor
end function


Sub TxtCnv(vl, vtx) 'conversao em texto
'vl         - valor a converter
'vtx        - valor em texto

on error resume next                   'controlar erros

'msgbox "NumCnv >"+vtx+"<"

vtx = ""                               'assume nulo
vtx = Trim(cStr(vl))                   'converter para texto

on error goto 0                        'terminar controlo de erros
end sub


Sub TxtSepNum(tx, sp, num) 'separar texto para numero
'tx         - texto original/residual
'sp         - separador
'num        - numero separado

call TxtSep(tx, sp, txs)               'separar texto
call NumCnv(txs, num)                  'conversao em numero
end sub


'------------------------------------------------------------------------------
'- DBG - Debug ----------------------------------------------------------------
'------------------------------------------------------------------------------
Function DbgZon(x1,y1,x2,y2) 'marcar zona
'x1         - posicao X1
'y1         - posicao Y1
'x2         - posicao X2
'y2         - posicao Y2

with DocAsp
res = .DbgZon(x1,y1,x2,y2)             'marcar zona
end with

'terminar
DbgZon = res                           'devolver resultado
end function


Function DBG_EnvDY(cor, dy, spx, spy) 'envolvente por dimensao Y
'cor        - cor da envolvente
'dy         - dimensao Y
'spx        - separacao X
'spy        - separacao Y

with DocAsp
res = .DBG_EnvDY(cor, dy, spx, spy)    'envolvente por dimensao Y
end with

'terminar
'- (40) ------------------------------>'Comentario
Dbg_EnvDY = res                        'devolver resultado
end function


Function DBG_Env(cor, x1, y1, x2, y2, spx, spy) 'envolvente
'cor        - cor da envolvente
'x1         - posicao X1
'y1         - posicao Y1
'x2         - posicao X2
'y2         - posicao Y2
'spx        - separacao X
'spy        - separacao Y

with DocAsp
res = .DBG_Env(cor, x1, y1, x2, y2, spx, spy)      'envolvente
end with

'terminar
Dbg_Env = res                          'devolver resultado
end function

##
