'Nome       : BscCom_Asp.inc
'Tipo       : LST
'Data       : 2014/01/06
'Versao     : 1.0
'Descricao  : BSC - Funcoes comuns - Aspecto

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


'==============================================================================
#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
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario


'=============================================================================
'- Inicializacao -------------------------------------------------------------
'=============================================================================
Sub FxFim 'funcao de finalizacao
PrWIN FON, "REG"                                   'limpar registo de fontes
end sub


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
Sub Com_Prp 'preparar
'msgbox "", "COM", "PRP"

'cores
corNorF$ = ""                                      'cor normal - fundo
corNorT$ = "0"                                     'cor normal - traco

corCla$  = "215,215,215"                           'cor clara
corEsc$  = "140,140,140"                           'cor escura

corDbgF$ = ""                                      'cor debug - fundo
corDbgT$ = "12"                                    'cor debug - traco
end sub


Sub Com_Prp_Per 'preparar periodo/data
docDtu$ = VarCom$("PER_DT")                        'data a usar

xAno$ = FrmDt$("A4", docDtu$)                      'separar ano da data
xMes$ = FrmDt$("M", docDtu$)                       'separar mes da data
vAno  = Val(xAno$)                                 'ano em numero
vMes  = Val(xMes$)                                 'mes em numero
end sub


Sub Com_Prp_Opc 'funcao de inicializacao - opcoes
'msgbox "","COM/PRP","OPC"

dbaSrv$     = SigPath$("SRV","A1","A2")               'directorio SRV
dbaLoc$     = SigPath$("LOC","A1","A2")               'directorio SRV

dbaEmp$     = SigPath$("EMP","","A2")                 'directorio EMP
dbaEmpNum$  = SigPath$("EMP",1,"A2")                  'directorio EMP/NUM

dbaCfg$     = SigPath$("CFG","A1","A2")               'directorio CFG
dbaCfgGrp$  = SigPath$("CFG.GRP","","A2")             'directorio CFG/GRP
dbaCfgGrpN$ = SigPath$("CFG.GRP","$_Olisoft","A2")    'directorio CFG/GRP/Nome
dbaCfgGlb$  = SigPath$("CFG.GLB","","A2")             'directorio CFG/GLB
dbaCfgGlbN$ = SigPath$("CFG.GLB","GlbXxx","A2")       'directorio CFG/GLB/Nome

dbaUtz$     = SigPath$("UTZ","","A2")                 'directorio UTZ
dbaUtzAdm$  = SigPath$("UTZ","Admin","A2")            'directorio UTZ/Nome

dbaChv$     = SigPath$("CHV","BSC_LST_DIRLST","A2")      'directorio por chave
dbaSbr$     = SigPath$("SBR","[DIA]\Xyz\[MES]\123","A2") 'directorio por chave

'imagens
imgDba$     = SigPath$("CFG.GRP","","Mod\Bsc\Img")    'directorio de imagens
end sub


Sub Com_Prp_Dim 'funcao de inicializacao - dimensoes
'msgbox "","COM/PRP","DIM"

pbaX  = VBS_DimCon("Pba.X")                        'posicao base X
pbaY  = VBS_DimCon("Pba.Y")                        'posicao base Y

'- (52) ------------------------------------------>'Comentario
pagDx = VBS_DimCon("Pag.Dx")                       'pagina - dimensao X
pagDy = VBS_DimCon("Pag.Dy")                       'pagina - dimensao Y
pagX1 = VBS_DimCon("Pag.X1")                       'pagina - margem esquerda
pagY1 = VBS_DimCon("Pag.Y1")                       'pagina - margem topo
pagX2 = VBS_DimCon("Pag.X2")                       'pagina - margem direita
pagY2 = VBS_DimCon("Pag.Y2")                       'pagina - margem baixo

'zonas da pagina
cabDy = VBS_DimCon("Zon.Cab.Dy")                   'cabecalho - dimensao Y
cabY1 = VBS_DimCon("Zon.Cab.Y1")                   'cabecalho - inicio
cabY2 = VBS_DimCon("Zon.Cab.Y2")                   'cabecalho - fim

rpeDy = VBS_DimCon("Zon.Rpe.Dy")                   'rodape - dimensao Y
rpeY1 = VBS_DimCon("Zon.Rpe.Y1")                   'rodape - inicio
rpeY2 = VBS_DimCon("Zon.Rpe.Y2")                   'rodape - fim

linDy = VBS_DimCon("Zon.Lin.Dy")                   'linhas - dimensao Y
linY1 = VBS_DimCon("Zon.Lin.y1")                   'linhas - inicio
linY2 = VBS_DimCon("Zon.Lin.y2")                   'linhas - fim

'diversos
'res = VBS_DbgPrp("")                               'DBG - marcar zona
end sub


Sub Com_Asp 'preparar aspecto
'msgbox "","COM/ASP","PRP"

call Com_Prp_Dim                                   'inicializar - dimensoes

PrWIN PAG_PRP                                      'preparar pagina
call Com_PosBas                                    'activar posicao base
call Com_PagEnv                                    'envolvente de pagina

'- (52) ------------------------------------------>'Comentario
PrWIN COR_T, corNorT$                              'cor normal

'msgbox "", "COM/ASP X2=",pagX2

'cabecalho
'PrWIN FON, 16, 1                                              'activar fonte
'PrWin FON, "BOLD+"                                            'activar bold
'PrWIN GR_CX, pagX1, cabY1, pagX2, cabY2, 2                    'envolvente
'PrWIN TX_AHV, 5, pagX1, cabY1, pagX2, cabY2,comCabTit$        'listar identificacao
'PrWin FON, "BOLD-"                                            'desactivar bold
'PrWIN FON, 10, 1                                              'activar fonte
call Com_PagTit                                               'titulo
call Com_PagSbt

ideEmp$ = Emp_Inf_Nome$                                       'identificacao da empresa
PrWIN TX_AHV, 1, pagX1+1, cabY1, pagX2, cabY2,ideEmp$         'listar empresa

ideAno$ = FrmDt$("A4", docDtu$)                               'identificacao do ano
ideMes$ = FrmDt$("MES", docDtu$)                              'iddentificacao do mes

idePer$ = ideMes$ + "/" + ideAno$                             'identificacao do periodo
PrWIN TX_AHV, 3, pagX1, cabY1, pagX2-1, cabY2,idePer$         'listar periodo

'rodape
rpeIde$ = "(c) OLISOFT - Soluções Informáticas, Lda."         'identificador
PrWIN GR_LI, pagX1, rpeY1, pagX2, rpeY1, 2                    'separador

py = rpeY1 + 1.0                                   'posicao Y
PrWIN TX_N, 1.0, py,rpeIde$                        'listar identificador
end sub


Sub Com_PagTit 'titulo
call Com_PosBas                                    'activar posicao base

PrWIN FON, 16, 1                                              'activar fonte
PrWin FON, "BOLD+"                                            'activar bold
PrWIN TX_AHV, 5, pagX1, cabY1, pagX2, cabY2,comCabTit$        'listar identificacao
PrWin FON, "BOLD-"                                            'desactivar bold
PrWIN FON, 10, 1                                              'activar fonte
end sub

Sub Com_PagSbt 'subtitulo
call Com_PosBas                                    'activar posicao base

PrWIN FON, 12, 1                                              'activar fonte
'PrWin FON, "BOLD+"                                            'activar bold
PrWIN TX_AHV, 5, pagX1, cabY1+12, pagX2, cabY2,comCabSbt$        'listar identificacao
PrWin FON, "BOLD-"                                            'desactivar bold
PrWIN FON, 10, 1                                              'activar fonte
end sub

Sub Com_LtxCtr 'linha de texto centrado
dLin = 4.0                                         'dimensao da linha
call DocLinPos                                     'posicionar linha

PrWIN TX_AHV, 5, pagX1, 0, pagX2, dLin,ltx$        'listar
tmp = CntLin("INC", dLin)                          'contar linhas (MM)
call DocLinPos                                     'posicionar linha
end sub


Sub Com_PagFim 'forcar fim de pagina
tmp = CntLin("INC", -500)                          'contar linhas (MM)
end sub


Sub Com_PagEnv 'envolvente de pagina
'PrWIN COR_T,  0                                    'cor da envolvente
PrWIN COR_T, corNorT$                              'cor normal

'envolvente
de = 1                                             'distancia da envolvente
x1 = pagX1 - de                                    'posicao X1
x2 = pagX2 + de                                    'posicao X2
y1 = pagY1 - de                                    'posicao Y1
y2 = pagY2 + de                                    'posicao Y2

PrWIN GR_CX, x1, y1, x2, y2, 2                     'envolvente

'terminar
PrWIN COR_T, corNorT$                              'cor normal
end sub


'------------------------------------------------------------------------------
'- [PRP] ----------------------------------------------------------------------
'------------------------------------------------------------------------------
Sub PrpVar_Lin 'preparar variaveis para linha
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario
'- (52) ------------------------------------------>'Comentario

'periodo
uBscPer$   = VarCom$("PER_DT")                     'periodo
uBscAno$   = VarCom$("PER_ANO")                    'periodo - ano
uBscMes$   = VarCom$("PER_MES")                    'periodo - mes
uBscDia$   = VarCom$("PER_DIA")                    'periodo - dia

'dados BSC
uBscCod$   = VarCom$("BSC_COD")                    'codigo
uBscDes$   = VarCom$("BSC_DES")                    'descricao

'dados da linha
uLinTip$   = VarCom$("LIN_TIP")                    'tipo
uLinDes$   = VarCom$("LIN_DES")                    'descricao
uLinAbv$   = VarCom$("LIN_ABV")                    'abreviatura
uLinRub$   = VarCom$("LIN_ABV")                    'rubrica
uLinNiv    = VarCom("LIN_NIV")                     'nivel
uLinOpc$   = VarCom$("LIN_OPC")                    'opcoes da linha

'msgbox "", "VAR/LIN",uLinOpc$
end sub


'-----------------------------------------------------------------------------
'- [GRF] - Listar em modo grafico --------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Grf_Cab 'cabecalho
call Com_Asp                           'preparar aspecto
end sub


Sub Com_Grf_Fim 'terminar
'- (40) ------------------------------>'Comentario
PrWIN FP                               'fim de pagina
end sub


Sub Com_Grf_NpgAut 'numero de pagina - automatica
cabPagNum = Doc_CntPag                 'numero da pagina

call Com_Grf_Npg                       'listar numero de pagina
end sub


Sub Com_Grf_NpgDoc 'numero de pagina - documento
cabPagNum = DocPagNum                  'numero da pagina
call Com_Grf_Npg                       'listar numero de pagina
end sub


Sub Com_Grf_Npg 'numero de pagina
call Com_PosBas                        'activar posicao base
'- (40) ------------------------------>'Comentario

'PrWIN FON, 16, 1                      'activar fonte
'PrWin FON, "BOLD+"                    'activar bold
'PrWin FON, "BOLD-"                    'desactivar bold
'PrWIN FON, 10, 1                      'activar fonte

txPag$ = "Pag: " + str$(cabPagNum)     'valor a listar

px = pagX2 - 20.0                      'posicao X
py = cabY1 +  2.0                      'posicao Y
PrWIN TX_N, px, py,txPag$              'listar identificador
end sub



'==============================================================================
'- [GRF] - Listar em modo grafico ---------------------------------------------
'==============================================================================
Sub Com_PosBas 'activar posicao base
PrWIN AJT_B, pbaX, pbaY                            'posicao base
end Sub


Sub DocLinIncNor 'incrementar linha normal
call DocLinPos                                     'posicionar linha
end Sub


Sub DocLinPos 'posicionar linha
spy =  1                                           'separacao Y (MM)
nlp = Doc_CntLin - 1                               'numero para posicao da linha
dli = nlp * spy                                    'dimensao de linhas

pbx = pbaX                                         'posicao base X
pby = pbaY + linY1 + dli                           'posicao base Y
'- (52) ------------------------------------------>'Comentario

PrWIN AJT_B, pbx, pby                              'posicao base - activar
linPos = pby                                       'guardar posicao da linha
linDim = dli                                       'guardar dimensao de linhas
end Sub


Sub DocLinPba 'posicionar linha - base
pbx = pbaX                                         'posicao base X
pby = pbaY + linY1                                 'posicao base Y
PrWIN AJT_B, pbx, pby                              'posicao base - activar
end Sub


'==============================================================================
'- [VAR] ----------------------------------------------------------------------
'==============================================================================
'- [IND] - Valores de indicador ----------------------------------------------
Sub Com_Var_IndPer 'preparar valores para inicador/periodo
'periodo
anoUsa  = vAno                                     'ano a usar
perUsa  = vMes                                     'usar periodo corrente

call Com_Var_IndPerExe                             'preparar valores para inicador/periodo
end sub


Sub Com_Var_IndPerExe 'preparar valores para indicador/periodo - executar
xAno$   = NumTxt$(anoUsa, 4)                       'ano em texto
xMes$   = VBS_DtMesIde$("ABV", perUsa)             'identificar mes
perIde$ = xMes$ + "/" + xAno$                      'identificacao do periodo

'msgbox "",anoUsa,perUsa

'res = BscDocPrpPer(anoUsa)                         'preparar periodo
'res = BscDocIndPrp(uLinIndUsa$)                    'preparar indicador
vCla$ = BscDocIndCon$(perUsa, "USA.CLA")           'modo de classificacao

'- ano anterior -
paaTms$  = BscDocIndCon$(perUsa, "PAA-TMS")        'time stamp do ano anterior
paaIde$  = BscDocIndCon$(perUsa, "IDP_PAA.DES")    'identificacao do periodo
paaVlu   = BscDocIndCon(perUsa,  "PAA-PV")         'valor do indicador
paaDvv   = BscDocIndCon(perUsa,  "DSV-PAA.PV")     'desvio V
paaDvp   = BscDocIndCon(perUsa,  "DSV-PAA.P%")     'desvio %
paaEvo   = BscDocIndCon(perUsa,  "EVO-PAA")        'evolucao
paaPon   = BscDocIndCon(perUsa,  "PAA-PON")        'pontos

paaDvP   = BscDocIndCon(perUsa,  "DSV-PAA.PV")     'desvio V - valor do periodo
paaDpP   = BscDocIndCon(perUsa,  "DSV-PAA.P%")     'desvio % - valor do periodo
paaDvA   = BscDocIndCon(perUsa,  "DSV-PAA.AV")     'desvio V - valor acumulado
paaDpA   = BscDocIndCon(perUsa,  "DSV-PAA.A%")     'desvio % - valor acumulado

paaPox$  = trim$(FrmNum$(4.3, paaPon))             'formatar pontos
paaVluX$ = trim$(FrmNum$(8.3, paaVlu))             'formatar valor
paaDvvX$ = trim$(FrmNum$(5.2, paaDvv))             'formatar valor
paaDvpX$ = trim$(FrmNum$(5.2, paaDvp))             'formatar valor

'- periodo anterior -
pmaTms$  = BscDocIndCon$(perUsa, "PMA-TMS")        'time stamp do periodo anterior
pmaIde$  = BscDocIndCon$(perUsa, "IDP_PMA.DES")    'identificacao do periodo
pmaVlu   = BscDocIndCon(perUsa,  "PMA-PV")         'valor do indicador
pmaDvv   = BscDocIndCon(perUsa,  "DSV-PMA.PV")     'desvio V
pmaDvp   = BscDocIndCon(perUsa,  "DSV-PMA.P%")     'desvio %
pmaEvo   = BscDocIndCon(perUsa,  "EVO-PMA")        'evolucao
pmaPon   = BscDocIndCon(perUsa,  "PMA-PON")        'pontos

pmaDvP   = BscDocIndCon(perUsa,  "DSV-PMA.PV")     'desvio V - valor do periodo
pmaDpP   = BscDocIndCon(perUsa,  "DSV-PMA.P%")     'desvio % - valor do periodo
pmaDvA   = BscDocIndCon(perUsa,  "DSV-PMA.AV")     'desvio V - valor acumulado
pmaDpA   = BscDocIndCon(perUsa,  "DSV-PMA.A%")     'desvio % - valor acumulado

pmaPox$  = trim$(FrmNum$(4.3, pmaPon))             'formatar pontos
pmaVluX$ = trim$(FrmNum$(8.3, pmaVlu))             'formatar valor
pmaDvvX$ = trim$(FrmNum$(5.2, pmaDvv))             'formatar valor
pmaDvpX$ = trim$(FrmNum$(5.2, pmaDvp))             'formatar valor

'- periodo actual -
pecTms$  = BscDocIndCon$(perUsa, "PEC-TMS")        'time stamp do periodo
pecIde$  = BscDocIndCon$(perUsa, "IDP_PEC.DES")    'identificacao do periodo
pecDes$  = BscDocIndCon$(perUsa, "DES")            'descricao
pecObs$  = BscDocIndCon$(perUsa, "OBS")            'observacoes
pecVlu   = BscDocIndCon(perUsa,  "PV")             'valor do indicador
pecPon   = BscDocIndCon(perUsa,  "PEC-PON")        'pontos
pecObj   = BscDocIndCon(perUsa,  "PEC-POB")        'objectivo

pecVluX$ = trim$(FrmNum$(8.3, pecVlu))             'formatar valor
pecPox$  = trim$(FrmNum$(4.3, pecPon))             'formatar pontos

'res      = VBS_ClaPrpPon(vCla$, pecPon)            'preparar classificacao para pontos
res      = BscClaPonPrp(vCla$, pecPon)             'preparar classificacao para pontos
pecCla$  = BscClaPonCon$("RC")                     'resumo de classificcao

ponCla$  = pecCla$                                 'resumo de classificcao (a eliminar)

'pontos
acmPon   = acmPon + pecPon                         'acumular pontos
end sub


'- [RNK] - Ranking -----------------------------------------------------------
Sub Com_Var_RnkPer 'preparar valores do ranking para periodo corrente
res        = BscGrpIndUsa(2, anoUsa)               'activar indicador
rnkPec     = BscDocIndCon(perUsa, "PV")            'valor realizado - ranking
rnkPecVtx$ = TxtCv$(rnkPec)                        'conversao em texto
rnkPecVmx$ = FrmNum$(4.0, rnkPec)                  'conversao em texto/formatar
end sub


Sub Com_Var_RnkVme 'preparar valores do ranking medio
'ano corrente
rnkAno = vAno                                      'ano de calculo
call Com_Var_RnkVmeAno                             'preparar valores do ranking medio do ano
rnkAnoVme  = rnkVme                                'guardar informacao
rnkAnoVmx$ = rnkVmx$                               'guardar informacao

'ano anterior
rnkAno = vAno - 1                                  'ano de calculo
call Com_Var_RnkVmeAno                             'preparar valores do ranking medio do ano
rnkAnaVme  = rnkVme                                'guardar informacao
rnkAnaVmx$ = rnkVmx$                               'guardar informacao
end sub


Sub Com_Var_RnkVmeAno 'preparar valores do ranking medio do ano
rnkCnt = 0                                         'ranking - contagem
rnkAcm = 0                                         'ranking - acumulado

for npr = 1 to 12
res = BscGrpIndUsa(2, rnkAno)                      'activar indicador
rnkPer = BscDocIndCon(npr, "PV")                   'valor realizado - ranking do periodo
if rnkPer > 0 then                                 'ha valor de ranking ?
   rnkCnt = rnkCnt + 1                             'contar
   rnkAcm = rnkAcm + rnkPer                        'acumular
end if
next

'valor medio
if rnkCnt > 0 then                                 'ha ranking ?
   rnkVme  = rnkAcm / rnkCnt                       'calcular media
else
   rnkVme  = 0                                     'anular valor
end if
rnkVmx$ = FrmNum$(4.2, rnkVme)                     'conversao em texto/formatar
end sub


'- [DIV] - Valores diversos --------------------------------------------------
Sub Com_Var_DsvPer 'preparar valores para desvio do periodo
asp$  = "V"                                        'aspecto
dsvPaa$ = VBS_FrmDsv$(asp$, paaDvv, paaDvp)        'desvio a usar para ano anterior
dsvPma$ = VBS_FrmDsv$(asp$, pmaDvv, pmaDvp)        'desvio a usar para mes anterior
end sub


Sub Com_Var_Cmv 'preparar valores para comissao de venda
cmvTot = vCmvTot
cmvDoc = vCmvDoc
cmvPco = BscPco("%", cmvDoc, cmvTot)               'percentagem de cumprimento
end sub


'==============================================================================
'- [DBG] ----------------------------------------------------------------------
'==============================================================================
Sub Com_Dbg_Zon 'envolvente de zonas
call Com_Dbg_EnvPag                                'envolvente de pagina
call Com_Dbg_EnvLin                                'envolvente de linhas
call Com_Dbg_EnvRpe                                'envolvente de rodape
end sub


Sub Com_Dbg_EnvPag 'envolvente de pagina
PrWIN COR_T, 10                                    'cor da envolvente

'envolvente
de = 2                                             'distancia da envolvente
x1 = pagX1 - de                                    'posicao X1
x2 = pagX2 + de                                    'posicao X2
y1 = pagY1 - de                                    'posicao Y1
y2 = pagY2 + de                                    'posicao Y2

PrWIN GR_CX, x1, y1, x2, y2, 2                     'envolvente

'terminar
PrWIN COR_T, corNorT$                              'cor normal
end sub


Sub Com_Dbg_EnvLin 'envolvente de linhas
PrWIN COR_T, 11                                    'cor da envolvente

'envolvente
x1 = -5                                            'posicao X1
x2 = pagDx + 5                                     'posicao X2
y1 = cabY2 + 1                                     'posicao Y1
'y2 = cabY2 + pagDy - 40                            'posicao Y2

y1 = linY1 + 1                                     'posicao Y1
y2 = linY2 - 1                                     'posicao Y2


PrWIN GR_CX, x1, y1, x2, y2, 2                     'envolvente

'terminar
PrWIN COR_T, corNorT$                              'cor normal
end sub


Sub Com_Dbg_EnvRpe 'envolvente de rodape
PrWIN COR_T, corDbgT$                              'cor da envolvente

'envolvente
de = 1                                             'distancia da envolvente
x1 = pagX1 + 0                                     'posicao X1
x2 = pagX2 - 0                                     'posicao X2
y1 = rpeY1 + de                                    'posicao Y1
y2 = rpeY2 - 0                                     'posicao Y2

'PrWIN GR_CX, pagX1, rpeY1, pagX2, rpeY2, 2         'envolvente
PrWIN GR_CX, x1, y1, x2, y2, 2                     'envolvente

'terminar
PrWIN COR_T, corNorT$                              'cor normal
end sub


Sub Com_Dbg_PosY 'mostrar posicao Y
ntx$ = str$(Doc_CntLin)
vtx$ = uLinTip$ + " - " + uLinDes$                 'descricao
vtx$ = vtx$ + " " + ntx$
'PrWIN LIS_V,0, 0,vtx$                               'identificador

txp$ = "TXP=>" + vtx$                               'identificador
'call DocLinPos                                     'posicionar linha
'PrWIN LIS_V,0, 0,txp$                               'identificador

sli$ = chr$(13) + chr$(10)
vCnt$ = " CNT:" + str$(Doc_CntLin) + sli$
vPoX$ =  " PX:" + str$(pbx) + sli$
vPoY$ =  " PY:" + str$(pby) + sli$
vPy1$ =  "PY1:" + str$(linY1) + sli$
vDli$ =  "DLI:" + str$(dli) + sli$

dbgMsg$ = vCnt$ + vPoY$ + vPoX$ + vPy1$ + vDli$

'mensagem
msgbox "","POS LIN", dbgMsg$
end sub

##


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


'- variaveis globais ----------------------------------------------------------
dim obZon                                          'acesso a zona
dim obGra                                          'acesso a grafico

'dimensoes 
dim dimPagX1                                       'pagina - X1
dim dimPagY1                                       'pagina - Y1
dim dimPagX2                                       'pagina - X2
dim dimPagY2                                       'pagina - Y2

'dimensao de zona
dim dimZonX1                                       'posicao - X1
dim dimZonY1                                       'posicao - Y1
dim dimZonX2                                       'posicao - X2
dim dimZonY2                                       'posicao - Y2

'cores
dim corNorF                                        'cor normal - fundo
dim corNorT                                        'cor normal - traco

dim corDbgF                                        'cor debug - fundo
dim corDbgT                                        'cor debug - traco

dim corCla                                         'cor clara
dim corEsc                                         'cor escura

dim corZI                                          'cor zebra - linha impar
dim corZP                                          'cor zebra - linha par

dim corPonNeg                                      'cor de simbolos - negativo
dim corPonNor                                      'cor de simbolos - normal
dim corPonPos                                      'cor de simbolos - positivo

'classificacao
dim claTip                                         'tipo
dim claRep                                         'repeticao

'documento
dim docPagTip                                      'tipo de pagina

'opcoes do documento
dim docOpcAno                                      'ano


'------------------------------------------------------------------------------
'#SUP - Funcoes de suporte
'------------------------------------------------------------------------------


'==============================================================================
'= PRP ========================================================================
'==============================================================================
Function PrpExe(arg) 'Preparar
'arg        - argumento (nao usado)

'msgbox "PRP/EXE " & arg

'- (52) ------------------------------------------>'Comentario
with DocPub
'.ClsMsg                                            'executar mensagem

res = .RobCri("DocAsp", obAsp)                     'requisitar objecto 
end with

'terminar
'- (52) ------------------------------------------>'Comentario
res = 1                                            'resultado
PrpExe = res                                       'devolver resultado
end function


Function PrpAsp(ori) 'preparar aspecto
'ori        - orientacao

'msgbox "PrpAsp " & ori

'- (52) ------------------------------------------>'Comentario
with DocAsp
res = .PagPrp(ori)                                 'preparar
end with

'terminar
PrpAsp = res                                       'devolver resultado
end function


Function DocRegOpc(ide, arg) 'registar opcao do documento
'ide        - identificador do valor
'arg        - argumento (valor)

'- (52) ------------------------------------------>'Comentario
with VbsPub
ida = .TXT_Ajc(ide)                                'ajustar identificador
end with

'msg = "IDE=>" & ide & "< IDA=" & ida & "< ARG=" & arg & "<"
'msgbox msg

select case ida
case "ANO"         'periodo anual
   docOpcAno = arg                                 'guardar

case else          'outros
   'nada a executar
end select

'terminar
'- (52) ------------------------------------------>'Comentario
DocRegOpc = arg                                    'devolver resultado
end function


'==============================================================================
'= ZON ========================================================================
'==============================================================================
Function ZonPrp(arg) 'preparar zona
'arg        - argumento (tipo de zona)

'- (52) ------------------------------------------>'Comentario
with DocAsp
'.ClsMsg                                           'executar mensagem
end with

'msgbox arg

'executar
tpz = arg                                          'tipo de zona
select case tpz
case "ANO"         'periodo anual
   with DocAsp
   res = .RobCri("DocAsp.Ano", obZon)              'requisitar objecto 
   end with

   with obZon
   res = .RegOpc("ANO", docOpcAno)                 'registar ano

   'msg = "ZonPrp=>" & tpz & "< ANO=" & docOpcAno & "< ARG=" & arg & "<"
   'msgbox msg

   res = .Zon_Prp("")                               'preparar zona
   'res = .RegOpc("LIN.DIM.Y", 5)                    'registar altura da linha
   end with

case "GRA"         'grafico
   with DocAsp
   res = .RobCri("DocAsp.Gra", obGra)              'requisitar objecto 
   end with

case "EVO"         'evolucao
   with DocAsp
   res = .RobCri("DocAsp.Evo", obZon)              'requisitar objecto 
   end with

   with obZon
   res = .Zon_Prp("")                              'preparar zona
   res = .RegOpc("LIN.DIM.Y", 5)                   'registar altura da linha
   end with

case else          'outros
   with DocAsp
   res = .RobCri("DocAsp.Zon", obZon)              'requisitar objecto 
   end with
end select

'terminar
'- (52) ------------------------------------------>'Comentario
res = 1                                            'resultado
ZonPrp = res                                       'devolver resultado
end function


Function ZonLstCab(arg) 'listar cabecalho
'arg        - argumento

'msgbox "LST"

'- (52) ------------------------------------------>'Comentario
with obZon
res = .LstCab(arg)                                 'listar cabecalho
end with


'terminar
'- (52) ------------------------------------------>'Comentario
ZonLstCab = res                                    'devolver resultado
end function


Function ZonLstLin(nli) 'listar linha
'nli        - numero da linha

'msgbox "LST"

'- (52) ------------------------------------------>'Comentario
with obZon
res = .LstLin(nli)                                 'listar linha
end with


'terminar
'- (52) ------------------------------------------>'Comentario
res = 1                                            'resultado
ZonLstLin = res                                    'devolver resultado
end function


Function ZonLst(arg) 'listar zona
'arg        - argumento (nao usado)

'msgbox "LST"

'- (52) ------------------------------------------>'Comentario
with obZon
res = .LstZon("")                                  'listar zona
end with

'terminar
'- (52) ------------------------------------------>'Comentario
ZonLst = res                                       'devolver resultado
end function


Function DimCon(ide) 'consultar dimensao
'ide        - identificador do valor

with DocAsp
res = .DimCon(ide)                                 'valor da dimensao
end with

'terminar
DimCon = res                                       'devolver resultado
end function


'==============================================================================
'= REG ========================================================================
'==============================================================================
Function RegVco(co, vco) 'registar valor para columa
'co         - coluna
'vco        - valor para coluna

with obZon
'- (52) ------------------------------------------>'Comentario
res = .Zon_RegVco(co, vco)                         'registar valor de coluna
end with

'terminar
RegVco = res                                       'devolver resultado
end function


Function RegOpc(ide, vop) 'registar valor para opcao
'ide        - identificador
'vop        - valor

with obZon
res = .RegOpc(ide, vop)                            'registar opcao
end with

'tmp = "RegOpc >" & ide & "< >" & vop & "<"
'msgbox tmp

'terminar
RegOpc = res                                       'devolver resultado
end function


Function RegIdc(co, vpo) 'registar identificador de coluna
'co         - coluna
'vpo        - valor

'msgbox "RegIdc: " & co & " >" & vpo

with obZon
res = .RegIdc(co, vpo)                             'registar valor
end with

'terminar
RegIdc = res                                       'devolver resultado
end function


Function RegVpo(li, co, vpo) 'registar valor para posicao
'li         - linha
'co         - coluna
'vpo        - valor

with obZon
'- (52) ------------------------------------------>'Comentario
res = .RegVpo(li, co, vpo)                         'registar valor
end with

'terminar
RegVpo = res                                       'devolver resultado
end function


'==============================================================================
'= OPC ========================================================================
'==============================================================================
Function OpcReg(ide, vop) 'registar valor para opcao
'ide        - identificador
'vop        - valor

with DocAsp
res = .OpcReg(ide, vop)                'registar opcao
end with

'terminar
OpcReg = res                           'devolver resultado
end function


Function OpcCon(ide) 'consultar valor de opcao
'ide        - identificador

with DocAsp
res = .OpcCon(ide)                     'registar opcao
'- (40) ------------------------------>'Comentario
end with

'terminar
OpcCon = res                           'devolver resultado
end function


'==============================================================================
'= DIV ========================================================================
'==============================================================================
Function LstResPon(asp, pon, vmi) 'listar resumo de pontos
'asp        - aspecto (ainda nao usado)
'pon        - pontuacao
'vmi        - pontuacao minima

with DocAsp
res = .ZonResPon(asp, pon, vmi)                    'zona de resumo de pontos
end with

'terminar
'- (52) ------------------------------------------>'Comentario
LstResPon = res                                    'devolver resultado
end function

##

