'Nome       : BscEnt.sql
'Tipo       : SQL
'Data       : 2014/01/30
'Versao     : 1.0
'Descricao  : BSC - Exportar ddaos

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


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


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


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
'Base de dados           [BD]=EmpFic$("EMP","Cemp,Emp_Dat.mdb")
'Base de dados           [BD]=EmpFic$("EMP","Bsc,Bsc.mdb")
'Base de dados           [BD]=DbReg("CFG_GRP")
Base de dados           [BD]=DbReg("EMP_BSC")



'------------------------------------------------------------------------------
'- Entidades - Lista ----------------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=EntLis=+
   +SELECT * +
   +FROM BscEnt AS ENT +
   +WHERE ENT.RecVal    <> 255 +
   +AND   ENT.[EntCod$] <> '#' +
   +AND   ENT.[EntTip$] = '{Opc_EntT}' +
   +ORDER BY ENT.[EntCod$]


'------------------------------------------------------------------------------
'- Entidades - Individual -----------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=EntInd=+
   +SELECT * +
   +FROM BscEnt AS ENT +
   +WHERE ENT.RecVal    <> 255 +
   +AND   ENT.[EntCod$] = '{Opc_EntC}' +
   +AND   ENT.[EntTip$] = '{Opc_EntT}' +
   +ORDER BY ENT.[EntCod$]


'------------------------------------------------------------------------------
'- Indicadores - Grupo --------------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=IndGrp=+
   +SELECT * +
   +FROM BscInd_Grp AS GRP +
   +WHERE GRP.RecIde    > 0 +
   +AND   GRP.[EntTip$] = '{Opc_EntT}' +
   +AND   GRP.[Grp$]    = '{Opc_Grp}' +
   +AND   GRP.[Tpr$]    = 'SGR' +
   +ORDER BY GRP.[Rub$]


'------------------------------------------------------------------------------
'- Indicadores - Lista --------------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=IndLis=+
   +SELECT * +
   +FROM BscInd AS IND +
   +WHERE IND.RecVal    <> 255 +
   +AND   IND.[EntTip$] = '{Opc_EntT}' +
   +AND   IND.[Tpr$]    = 'GRP' +
   +ORDER BY IND.[Rub$]


'==============================================================================

'------------------------------------------------------------------------------
'- generico -------------------------------------------------------------------
'------------------------------------------------------------------------------
Nome da entidade [Cmd]=EntNom=+
   +SELECT Des$ AS [NOM$] +
   +FROM BscEnt +
   +WHERE EntTip$ = '{ENT.TIP}' AND EntCod$ = '{ENT.COD}'


'Nome da variavel [Cmd]=VarNom=+
'   +SELECT Des$ AS [NOM$] +
'   +FROM BscVar +
'   +WHERE EntTip$ = '{ENT.TIP}' AND Cod$ = '{VAR.COD}'

Nome da variavel [Cmd]=VarNom=+
   +SELECT Des$ AS [NOM$] +
   +FROM BscInd_Grp +
   +WHERE EntTip$ = '{ENT.TIP}' AND Cod$ = '{VAR.COD}'



'------------------------------------------------------------------------------
'- Dados por Entidade - Geral -------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=DatEntGer=+
   +SELECT ENT.[EntTip$] AS EntT, ENT.[EntCod$] as EntC, +
   +DAT.Cod$ AS COD, DAT.Ano AS ANO,+
   +DAT.VP01 AS VP01, DAT.VA01 AS VA01, DAT.VT01$ AS VT01,+
   +DAT.TPR$ AS TPR +
   +FROM BscEnt AS ENT +
   +LEFT JOIN BscDatAno AS DAT +
   +ON (ENT.[EntCod$] = DAT.[EntCod$]) AND (ENT.[EntTip$] = DAT.[EntTip$]) +
   +WHERE DAT.RecVal <> 255 +
   +ORDER BY ENT.[EntTip$], ENT.[EntCod$], DAT.Cod$


'------------------------------------------------------------------------------
'- Dados por Entidade - Limite ------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=DatEntLim=+
   +SELECT ENT.[EntTip$] AS EntT, ENT.[EntCod$] as EntC, +
   +DAT.Cod$ AS COD, DAT.Ano AS ANO,+
   +DAT.VP00 AS VP00, DAT.VA00 AS VA00, DAT.VT00$ AS VT00,+
   +DAT.VP01 AS VP01, DAT.VA01 AS VA01, DAT.VT01$ AS VT01,+
   +DAT.VP02 AS VP02, DAT.VA02 AS VA02, DAT.VT02$ AS VT02,+
   +DAT.VP03 AS VP03, DAT.VA03 AS VA03, DAT.VT03$ AS VT03,+
   +DAT.VP04 AS VP04, DAT.VA04 AS VA04, DAT.VT04$ AS VT04,+
   +DAT.VP05 AS VP05, DAT.VA05 AS VA05, DAT.VT05$ AS VT05,+
   +DAT.VP06 AS VP06, DAT.VA06 AS VA06, DAT.VT06$ AS VT06,+
   +DAT.VP07 AS VP07, DAT.VA07 AS VA07, DAT.VT07$ AS VT07,+
   +DAT.VP08 AS VP08, DAT.VA08 AS VA08, DAT.VT08$ AS VT08,+
   +DAT.VP09 AS VP09, DAT.VA09 AS VA19, DAT.VT09$ AS VT09,+
   +DAT.VP10 AS VP10, DAT.VA10 AS VA10, DAT.VT10$ AS VT10,+
   +DAT.VP11 AS VP11, DAT.VA11 AS VA11, DAT.VT11$ AS VT11,+
   +DAT.VP12 AS VP12, DAT.VA12 AS VA12, DAT.VT12$ AS VT12,+
   +DAT.VP13 AS VP13, DAT.VA13 AS VA13, DAT.VT13$ AS VT13,+
   +DAT.TPR$ AS TPR +
   +FROM BscEnt AS ENT +
   +LEFT JOIN BscDatAno AS DAT +
   +ON (ENT.[EntCod$] = DAT.[EntCod$]) AND (ENT.[EntTip$] = DAT.[EntTip$]) +
   +WHERE DAT.RecVal <> 255 +
   +AND   ANO           =  {Opc_Per.Ano} +
   +AND   ENT.[EntTip$] = '{Opc_EntT}' +
   +ORDER BY ENT.[EntTip$], ENT.[EntCod$], DAT.Cod$

##


'==============================================================================
#DOC - Configuracao do documento - Texto
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=EntLis,Lista de Entidades

'formato
Saida/Impressora           [DocPrt]=
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]=EntLis
Listar cabecalho            [FxCAB]=EntLis_Cab
Listar linhas               [FxLIN]=EntLis_Lin,0
Listar fim                  [FxFIM]=EntLis_Fim

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

Matriz auxiliar            [DocMat]=
##


'==============================================================================
#DOC - Configuracao do documento - Grafico
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=EntLis_G,Lista de Entidades

'formato
Saida/Impressora           [DocPrt]=PAG_W

'Linhas por pagina          [DocLpg]=120
'Linhas por pagina          [DocLpg]=110
Linhas por pagina          [DocLpg]=160

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]=GraEntLis
Listar cabecalho            [FxCAB]=GraEntLis_Cab
Listar linhas               [FxLIN]=GraEntLis_Lin,0
Listar fim                  [FxFIM]=GraEntLis_Fim

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

Matriz auxiliar            [DocMat]=
##




'==============================================================================
#DOC - Configuracao do documento - Texto
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=EntInd,Entidade

'formato
Saida/Impressora           [DocPrt]=
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]=EntLis
Listar cabecalho            [FxCAB]=EntLis_Cab
Listar linhas               [FxLIN]=EntLis_Lin,0
Listar fim                  [FxFIM]=EntLis_Fim

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

Matriz auxiliar            [DocMat]=
##


'==============================================================================
#DOC - Configuracao do documento - Grafico
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=EntInd_G,Entidade

'formato
Saida/Impressora           [DocPrt]=PAG_W

'Linhas por pagina          [DocLpg]=120
'Linhas por pagina          [DocLpg]=110
Linhas por pagina          [DocLpg]=160

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]=GraEntLis
Listar cabecalho            [FxCAB]=GraEntLis_Cab
Listar linhas               [FxLIN]=GraEntLis_Lin,0
Listar fim                  [FxFIM]=GraEntLis_Fim

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

Matriz auxiliar            [DocMat]=
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=EntInd,Indicadores da entidade

'formato
Saida/Impressora           [DocPrt]=
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]=EntInd
Listar cabecalho            [FxCAB]=EntInd_Cab
Listar linhas               [FxLIN]=EntInd_Lin,0
Listar fim                  [FxFIM]=EntInd_Fim

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

Matriz auxiliar            [DocMat]=
##


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

'- dados a listar -------------------------------------------------------------
vaObs    = vuUsaObs$                            'observacaoes

'entidade
vaEntTip = vuEntTip$                            'entidade - tipo
vaEntCod = vuEntCod$                            'entidade - codigo
vaEntCov = vuEntCov$                            'entidade - codigo formatado
vaEntIde = vuEntIde$                            'entidade - identificacao

'grupo de indicadores
vaGrpTpe = vuGrpTpe$                            'grupo de indicadores - tipo de entidade
vaGrpGrp = vuGrpGrp$                            'grupo de indicadores - grupo
vaGrpRub = vuGrpRub$                            'grupo de indicadores - rubrica
vaGrpTpv = vuGrpTpv$                            'grupo de indicadores - tipo de valor
vaGrpCod = vuGrpCod$                            'grupo de indicadores - codigo do indicador
vaGrpTpr = vuGrpTpr$                            'grupo de indicadores - tipo de registo
vaGrpDes = vuGrpDes$                            'grupo de indicadores - descricao
vaGrpAbv = vuGrpAbv$                            'grupo de indicadores - abreviatura

'indicador
vaIndCod = vuIndCod$                            'indicador - codigo
vaIndCov = vuIndCov$                            'indicador - codigo formatado
vaIndIde = vuGrpDes$
'vaIndIde = vuIndIde$                            'indicador - identificacao
vaIndTpr = vuIndTpr$                            'indicador - tipo de registo

'variavel
vaVarCod = vuVarCod$                            'variavel - codigo
vaVarCov = vuVarCov$                            'variavel - codigo formatado
vaVarNom = vuVarNom$                            'variavel - nome
vaVarTpr = vuVarTpr$                            'variavel - tipo de registo

'periodo
vaPerAno = vuPerAno                             'periodo - ano
vaPerNum = vuPerNum                             'periodo - numero

'valores
vaDatVp  = vuDatVp                              'valor - periodo
vaDatVa  = vuDatVa                              'valor - acumulado


'- diversos -------------------------------------------------------------------
'contagem
toNrg    = FrmNum$(9.0,TotCnt("vaEntCov",0))    'numero de registos - total
s1Nrg    = FrmNum$(9.0,TotCnt("vaEntCov",1))    'numero de registos - subtotal 1
s2Nrg    = FrmNum$(9.0,TotCnt("vaEntCov",2))    'numero de registos - subtotal 2

'valores
toDatVp  = FrmNum$(6.3,Total("vaDatVp",0))      'valor periodo - total
s1DatVp  = FrmNum$(6.3,Total("vaDatVp",1))      'valor periodo - subtotal 1
s2DatVp  = FrmNum$(6.3,Total("vaDatVp",2))      'valor periodo - subtotal 2

toDatVa  = FrmNum$(12.2,Total("vaDatVa",0))     'valor acumulado - total
s1DatVa  = FrmNum$(12.2,Total("vaDatVa",1))     'valor acumulado - subtotal 1
s2DatVa  = FrmNum$(12.2,Total("vaDatVa",2))     'valor acumulado - subtotal 2
##


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


Sub FxIni 'funcao de inicializacao
'msgbox "","FxIni",docOri$

call Com_Prp                                       'preparar opcoes comuns
call Com_Prp_Opc                                   'preparar - opcoes
call DocOri                                        'inicializar orientacao

'diversos
res = VBS_OpcReg("IMG.DBA", imgDba$)               'registar directorio de imagens
call Com_Prp_Per                                   'preparar periodo/data
end sub


Sub FxFim 'funcao de finalizacao
'nada a excutar
end sub


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


Sub DocOri 'inicializar orientacao
'pagOri$ = "P"                                      'orientacao da pagina - Portrait
pagOri$ = "L"                                      'orientacao da pagina - Landscape

res = VBS_PrpExe("")                               'preparar
res = VBS_PrpAsp(pagOri$)                          'preparar pagina
end sub


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
'-----------------------------------------------------------------------------
'- [TXT] - Listar em modo texto ----------------------------------------------
'-----------------------------------------------------------------------------
Sub Cab80Col   'cabecalho para 80 colunas
FxDiv LstIde,10CPI,0
?@Tit80                                                                     #
End Sub


Sub Cab132Col   'cabecalho para 132 colunas
FxDiv LstIde,16CPI,0
?@Tit132                                                                                                                          #
End Sub


'-----------------------------------------------------------------------------
'- [GRA] - Listar em modo grafico --------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Gra_AspIni 'inicializar aspecto
'msgbox "","COM/GRA","ASP - INI"
call Com_Prp_Per                                   'preparar periodo/data
end sub


Sub Com_Gra_PagIni 'inicializar pagina
'msgbox "","COM/GRA","PAG - INI"

'comCabTit$ = lstTit$                               'titulo

call Com_Grf_Cab                                   'listar cabecalho
call Com_Gra_Env                                   'listar envolvente

DocPagNum = DocPagNum + 1                          'contar pagina
call Com_Grf_NpgDoc                                'numero de pagina

vCntLin = 0                                        'limpar contador de linhas
call DocLinPos                                     'posicionar linha
end sub


Sub xCom_Gra_PagEnt 'forcar pagina para nova entidade
'msgbox "","PAG/LIN-CNT",Doc_CntLin

'- (52) ------------------------------------------>'Comentario
if Doc_CntLin > 40 then                            'nova pagina ?
   call Com_PagFim                                 'forcar fim de pagina
   vCntLin = 0                                     'limpar contador de linhas
end if
end sub


Sub Com_Gra_Env 'listar envolvente
call DocLinPos                                     'posicionar linha
linPy = linPos                                     'posicao Y

call Com_PosBas                                    'activar posicao base

px1 = pagX1                                        'posicao X1
px2 = pagX2                                        'posicao X2

py1 = linY1  + 2.0                                 'posicao Y1
py2 = rpeY1  - 2.0                                 'posicao Y2

'envolvente
res = VBS_ZonEnv("C", px1, py1, px2, py2)          'envolvente de zona
end sub


Sub Com_Gra_LinPrp 'preparar zona de linhas
'nada a executar
end sub


Sub Com_Gra_LinIni 'inicializar zona de linhas
tmp = CntLin("INC", 2.0)                           'contar linhas (MM)
call DocLinPos                                     'posicionar linha

dyCab = VBS_Pag_LstCab("")                         'listar cabecalho
tmp = CntLin("INC", dyCab)                         'contar linhas (MM)

vCntLin = 0                                        'limpar contador de linhas
end sub


'-----------------------------------------------------------------------------
'- [OPC] - Opcoes ------------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Opc_Ini 'inicializar opcoes
'opcoes seleccionadas
opcTpeCod$ = VarCom$("OPC_TPE.COD")                'tipo de entidade/codigo
opcTpeDes$ = VarCom$("OPC_TPE.DES")                'tipo de entidade/descricao

opcGrpCod$ = VarCom$("OPC_GRP.COD")                'grupo/codigo
opcGrpDes$ = VarCom$("OPC_GRP.DES")                'grupo/descricao

opcFrmCod$ = VarCom$("OPC_FRM.COD")                'formato/codigo
opcFrmDes$ = VarCom$("OPC_FRM.DES")                'formato/descricao
opcFrmFic$ = VarCom$("OPC_FRM.FIC")                'formato/ficheiro

'opcoes do documento (formato)
docTpeCod$ = "[AUT]"                               'tipo de entidade
docGrpCod$ = "[AUT]"                               'grupo de dados
end sub


'-----------------------------------------------------------------------------
'- [VAR] - Variaveis ---------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Var_Con 'consultar variaveis
'entidade
vuEntTip$ = SqlCmp$("ENT.EntTip$")                 'entidade - tipo
vuEntCod$ = SqlCmp$("ENT.EntCod$")                 'entidade - codigo
vuEntIde$ = SqlCmp$("ENT.Des$")                    'entidade - identificacao

'variavel
vuVarCod$ = SqlCmp$("COD")                         'variavel - codigo
vuVarTpr$ = SqlCmp$("TPR")                         'variavel - tipo de registo

'periodo
vuPerAno  = SqlCmp("ANO")                          'periodo - ano

'dados
vuDatVp   = SqlCmp(chvVp$)                         'valor do periodo
vuDatVa   = SqlCmp(chvVa$)                         'valor acumulado
vuDatVt$  = SqlCmp$(chvVt$)                        'valor em texto
end sub


Sub Com_Var_Con_Ind 'consultar variaveis - indicador
idq$ = "IND"                                       'identificador dos dados
vuIndCod$ = SqlQryCmp$(idq$, "IND.Cod$")           'indicador - codigo
vuIndIde$ = SqlQryCmp$(idq$, "IND.Des$")           'indicador - identificacao
vuIndTpr$ = SqlQryCmp$(idq$, "IND.Tpr$")           'indicador - tipo de registo
end sub


Sub Com_Var_Con_Grp 'consultar variaveis - grupo de indicadores
idq$ = idqGrp$                                     'identificador dos dados

vuGrpTpe$ = SqlQryCmp$(idq$, "GRP.EntTip$")        'tipo de entidade
vuGrpGrp$ = SqlQryCmp$(idq$, "GRP.Grp$")           'grupo
vuGrpRub$ = SqlQryCmp$(idq$, "GRP.Rub$")           'rubrica
vuGrpTpv$ = SqlQryCmp$(idq$, "GRP.Tpv$")           'tipo de valor
vuGrpCod$ = SqlQryCmp$(idq$, "GRP.Cod$")           'codigo do indicador
vuGrpTpr$ = SqlQryCmp$(idq$, "GRP.Tpr$")           'tipo de registo
vuGrpDes$ = SqlQryCmp$(idq$, "GRP.Des$")           'descricao
vuGrpAbv$ = SqlQryCmp$(idq$, "GRP.Abv$")           'abreviatura
end sub


Sub Com_Var_Prp 'preparar variaveis
vuUsaObs$ = ""                                     'anular observacoes
call Com_Var_Con                                   'consultar variaveis

'preparar valores
call Com_Var_PrpEnt                                'preparar - entidade
'call Com_Var_PrpInd                                'preparar - indicador
call Com_Var_PrpVar                                'preparar - variavel
call Com_Var_PrpVlp                                'preparar - valores
end sub


Sub Com_Var_PrpEnt 'preparar - entidade
res     = SqlOpcAct("Ent.Tip", vuEntTip$)          'registar entidade - tipo
res     = SqlOpcAct("Ent.Cod", vuEntCod$)          'registar entidade - codigo
res     = SqlCalc("ENTNOM")                        'preparar nome da entidade
vNom$   = SqlOpcCon$("NOM$")                       'nome

'dados ai usar
tpeCov$ = vuEntCod$                                'codigo formatado
tpeNom$ = vNom$                                    'nome
tpeIde$ = tpeCov$ + " - " + tpeNom$                'identificacao

vuEntNom$ = vNom$                                  'nome
end sub


Sub Com_Var_PrpInd 'preparar - indicador
'res     = SqlOpcAct("Ent.Tip", vuEntTip$)          'registar entidade - tipo
'res     = SqlOpcAct("VAR.Cod", vuVarCod$)          'registar variavel - codigo
'res     = SqlCalc("VARNOM")                        'preparar nome da entidade
'vNom$   = SqlOpcCon$("NOM$")                       'nome

'varCov$ = vuVarCod$                                'codigo formatado
'varNom$ = "Variavel " + varCov$                    'nome
'varIde$ = varCov$ + " - " + varNom$                'identificacao

'vuVarNom$ = vNom$                                  'nome
end sub


Sub Com_Var_PrpVar 'preparar - variavel
res     = SqlOpcAct("Ent.Tip", vuEntTip$)          'registar entidade - tipo
res     = SqlOpcAct("VAR.Cod", vuVarCod$)          'registar variavel - codigo
res     = SqlCalc("VARNOM")                        'preparar nome da entidade
vNom$   = SqlOpcCon$("NOM$")                       'nome

varCov$ = vuVarCod$                                'codigo formatado
varNom$ = "Variavel " + varCov$                    'nome
varIde$ = varCov$ + " - " + varNom$                'identificacao

vuVarNom$ = vNom$                                  'nome
end sub


Sub Com_Var_PrpVlp 'preparar - valores por periodo
'periodo
'vuPerAno = vuPerAno                               'periodo - ano
vuPerNum  = perNum                                 'periodo - numero

'variavel
'vuVarCod$ = vuVarCod$                             'variavel - codigo
'vuVarTip$ = vuVarTpr$                             'variavel - tipo de registo

'valores
'vuDatVp   = vuDatVp                               'valor - periodo
'vuDatVa   = vuDatVa                               'valor - acumulado
'vuDatVt$  = vuDatVt$                              'valor - texto

'diversos
vuUsaObs$ = vuDatVt$                               'observacoes
end sub


'==============================================================================
'- [TXT] - Listar em modo texto -----------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [TXT] - Listar de entidades ------------------------------------------------
'------------------------------------------------------------------------------
Sub EntLis_Doc 'preparar listagem
'msgbox "","TXT","INI"
end sub


Sub EntLis_Cab 'listar cabecalho
lstTit$ = "Entidades"                          'titulo
call Cab132Col                                     'listar cabecalho

?Data: @DataExt                                                                                                       Folha No: @Pag#
?====================================================================================================================================
?|  Entidade                              |              |              |              |                                            |
?|----------------------------------------------------------------------------------------------------------------------------------|
?|  Indicador                             |  Valor       |   Objectivo  |  Diferenca   |   Observacoes                              |
?====================================================================================================================================

'print string$(132,"-")
end sub


Sub EntLis_Lin 'listar linha
call Com_Var_Prp                                   'preparar variaveis

tmp = CntLin("INC", 2)                             'contar linhas
? @vaEntIde                                  @vaEntTip                                   @vaEntCod                                  #
print string$(132,"-")


msgbox "","ENT",vaEntCod$

call PrpInd                                 'preparar indicadores
end sub


Sub EntLis_Fim 'listar fim
?====================================================================================================================================
FxDiv LstPer,SP
end sub


Sub PrpInd 'preparar indicadores
idq$ = "IND"                                       'identificador do qwery

exi   = SqlQryGerDB(idq$, "CFM_BSC", "IndLis")      'preparar indicadores

while exi = 1
call Com_Var_Con_Ind                                'consultar variaveis - indicador

? @vaIndIde                                  @vaIndTpr                                   @vaIndCod                                  #

exi = SqlQryRgs(idq$)                                'registo seguinte
wend
end sub


'==============================================================================
'- [GRA] - Listar em modo grafico ---------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [GRA] - Listar de entidades ------------------------------------------------
'------------------------------------------------------------------------------
Sub GraEntLis_DocIni 'preparar listagem
'msgbox "","GRA","ENT"

res = CntLinTip(2)                                 'modo de contagem de linhas

call Com_Opc_Ini                                   'inicializar opcoes
res = VBS_Pag_ZonPrp(opcFrmFic$)                   'preparar zona de listagem

'consultar opcoes do formato de listagem

opcPerUsa$ = VBS_ConOpc$("PerUsa")                 'consultar opcao
opcLiDimY  = VBS_ConOpc("LiDimY")                  'consultar opcao
end sub


Sub GraEntLis_Cab 'listar cabecalho
res = CntLinTip(2)                                 'modo de contagem de linhas

'msgbox "","GRA","CAB"
call Com_Gra_AspIni                                'inicializar aspecto (#DBG#)

call Com_Gra_PagIni                                'inicializar pagina

tmp = CntLin("FRC", 2)                             'contar linhas (MM)
call DocLinPos                                     'posicionar linha
call Com_Gra_LinIni                                'inicializar zona de linhas
end sub


Sub GraEntLis_Lin 'listar linha
'msgbox "","GRA","LIN"

comCabTit$ = ""                                    'titulo

'listar
DocPagNum = 0                                      'limpar contador de paginas do documento
call Com_Var_Prp                                   'preparar variaveis

vco01$ = @vaEntIde                                 'valor da coluna 1
vco02$ = @vaEntTpr                                 'registar valor da coluna 2
vco03$ = @vaEntCod                                 'registar valor da coluna 3

lstTit$ = "Vendedor: " + vco01$                    'titulo
'comCabTit$ = lstTit$                               'titulo

'comCabTit$ = opcFrmDes$
comCabTit$ = opcFrmDes$
comCabSbt$ = lstTit$

call Com_Gra_LinPrp                                'preparar zona de linhas
call GraPrpInd                                     'preparar indicadores

call Com_PagFim                                    'forcar fim de pagina
end sub


Sub GraEntLis_Fim 'listar fim
call Com_Grf_Fim                                   'listar grafico

res = CntLinTip(1)                                 'repor modo de contagem de linhas
end sub


Sub GraEntLis_LinIni 'listar linhas - iniciais
'msgbox "","LIN","INI"
end sub


Sub GraEntLis_LinFim 'listar linhas - finais
'msgbox "","LIN","FIM"
end sub


Sub GraEntLis_LinExe 'listar linha - executar
call Com_Gra_LinPrp                                'preparar zona de linhas
dLin =  opcLiDimY                                  'dimensao da linha

dMin = dLin                                        'dimensao minima (linhas)
tmp = CntLin("VMI", dMin)                          'minimo de linhas (MM)

dLin = opcLiDimY                                   'dimensao da linha
vCntLin = vCntLin + 1                              'contar linha

call DocLinPos                                     'posicionar linha
res = VBS_Pag_RegOpc("LIN.DIM.Y", dLin)            'registar valor para opcao
res = VBS_Pag_LstLin(vCntLin)                      'listar linha

tmp = CntLin("INC", dLin)                          'contar linhas (MM)
end sub


Sub GraPrpInd 'preparar indicadores
idqGrp$ = "GRP"                                    'identificador do query

'tipo de entidade
if docTpeCod$ = "[AUT]" then                       'tipo de entidade automatico ?
   vgTpe$ = opcTpeCod$                             'usar tipo seleccionado
else
   vgTpe$ = docTpeCod$                             'usar tipo do documento
end if

'grupo de dados
if docGrpCod$ = "[AUT]" then                       'grupo automatico ?
   vgGrp$ = opcGrpCod$                             'usar grupo seleccionado
else
   vgGrp$ = docGrpCod$                             'usar grupo do documento
end if

if opcPerUsa$ = "[ANO]" then                       'usar ano corrente ?
   usaPer$ = xAno$                                 'usar ano da data
else
   usaPer$ = opcPerUsa$                            'usar periodo seleccionado
end if

'listar
res    = SqlOpcAct("Opc_Grp", vgGrp$)              'registar grupo de indicadores
exi    = SqlQryGerDB(idqGrp$, "CFM_BSC", "IndGrp") 'preparar indicadores (grupo)

while exi = 1
call Com_Var_Con_Grp                               'consultar variaveis - grupo de indicador

vTpe$ = vuGrpTpe$                                  'grupo de indicadores - tipo de entidade
vGrp$ = vuGrpGrp$                                  'grupo de indicadores - grupo
vRub$ = vuGrpRub$                                  'grupo de indicadores - rubrica
vTpv$ = vuGrpTpv$                                  'grupo de indicadores - tipo de valor
vCod$ = vuGrpCod$                                  'grupo de indicadores - codigo do indicador
vTpr$ = vuGrpTpr$                                  'grupo de indicadores - tipo de registo
vDes$ = vuGrpDes$                                  'grupo de indicadores - descricao
vAbv$ = vuGrpAbv$                                  'grupo de indicadores - abreviatura

vgEnt$ = vuEntCod$                                 'entidade
vgRub$ = vuGrpRub$                                 'rubrica (indicador)

res = BscGriPrp("", vgTpe$, vgEnt$, vgGrp$, vgRub$)    'preparar indicadores a usar
'res = BscGriPer(usaPer$)                               'preparar periodo de dados

AnoCor$ = usaPer$
AnoAnt$ = usaPer$-1
res = BscGriPer(AnoAnt$,AnoCor$)                   'preparar periodo de dados


nco = VBS_CoNum("")                                'numero de colunas
for co = 1 to nco
vInd$ = VBS_CoCon$(co, "IND")                      'consultar indicador
vVar$ = VBS_CoCon$(co, "VAR")                      'consultar variavel


coAno = VBS_CoCon$(co, "PerA")                           'consultar ano
if coAno = [ANO] then                            'data automatica?
   pAno = vAno                                     'ano automatico
else
   pAno = coAno                                    'ano automatico
end if

coMes = VBS_CoCon$(co, "PerM")                           'consultar mes
if coMes = [MES] then                            'data automatica?
   pMes = vMes                                     'mes automatico
else
   pMes = coMes                                    'mes automatico
end if

tpv$ = VBS_CoCon$(co, "TPV")                       'consultar tipo de valor
if tpv$ = "NUM" then                               'valor em numero ?
   vcoNum = BscGriCon(vInd$, vVar$, pAno, pMes)    'valor da coluna - numero
   res = VBS_Pag_RegVco(co, vcoNum)                'registar valor da coluna
else
   vcoTx$ = BscGriCon$(vInd$, vVar$, pAno, pMes)   'valor da coluna - texto
   res = VBS_Pag_RegVco(co, vcoTx$)                'registar valor da coluna
end if
next

'- (52) ------------------------------------------>'Comentario
call GraEntLis_LinExe                              'listar linha - executar

exi = SqlQryRgs(idqGrp$)                           'registo seguinte
wend
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 classe

dim vopPerUsa                                      'periodo a usar
dim vopLiDimY                                      'linha - altura


'------------------------------------------------------------------------------
'#DIV - Funcoes diversas
'------------------------------------------------------------------------------
Function ConOpc(tpv) 'consultar opcao
'tpv        - tipo de valor

with VbsPub
tpa = .TXT_Ajc(tpv)                                'ajustar tipo de valor
end with

select case tpa
case "PERUSA"           'peiodo a usar
   res = vopPerUsa                                 'resultado

case "LIDIMY"           'linha - altura
   res = vopLiDimY                                 'resultado

case else               'outros - invalido
   res = ""                                        'resultado
end select

'terminar
ConOpc = res                                       'devolver resultado
end function


Function CoNum(arg) 'numero de colunas
'arg        - argumento (nao usado)

with obzon
res = .CoNrg(arg)                                  'consultar valor
end with

'terminar
CoNum = res                                        'devolver resultado
end function


Function CoCon(co, tpv) 'consultar valor
'co         - coluna
'tpv        - tipo de valor

with obzon
res = .CoCon(co, tpv)                              'consultar valor
end with

'terminar
CoCon = res                                        'devolver resultado
end function


'------------------------------------------------------------------------------
'#PRP - Preparar/Terminar
'------------------------------------------------------------------------------
Function Pag_ZonPrp(frm) 'preparar zonas de listagem
'frm        - formato

'msgbox "Pag - PRP"

res = ZonPrp("")                                   'preparar zona
with obzon
vIni = .FpaIni(frm)                                'inicializar por ficheiro de parametros

vopPerUsa = .fpaOpcCon("PerUsa", "[ANO]")          'consultar - periodo a usar
vopLiDimY = .fpaOpcCon("LiDimY", 10)               'consultar - linha/altura

vFim = .FpaFim("")                                 'terminar acesso a ficheiro de parametros
end with

'terminar
res = 1                                            'resultado
Pag_ZonPrp = res                                   'devolver resultado
end function


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

with obzon
res = .Zon_RegOpc(ide, vop)                        'registar opcao
end with

'terminar
Pag_RegOpc = res                                   'devolver resultado
end function


Function Pag_RegVco(co, vco) 'registar valor para columa
'co         - coluna
'vco        - valor para coluna

with obzon
res = .Zon_RegVco(co, vco)                         'registar valor de coluna
end with

'terminar
Pag_RegVco = res                                   'devolver resultado
end function


'------------------------------------------------------------------------------
'#LST - Funcoes para listar
'------------------------------------------------------------------------------
Function Pag_LstCab(arg) 'cabecalho
'arg        - argumento (nao usado)

'msgbox "Listar CAB"

with obzon
res = .LstCab("")                                  'listar
end with

'terminar
Pag_LstCab = res                                   'devolver resultado
end function


Function Pag_LstLin(nli) 'linha
'nli        - numero da linha

with obzon
res = .LstLin(nli)                                 'listar
end with

'terminar
Pag_LstLin = res                                   'devolver resultado
end function

##


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

Funcoes - BSC/Comum - VBS             =[SIG_LST_DIR.BSC],BscCom_Vbs.inc
Funcoes - BSC/comum - Aspecto         =[SIG_LST_DIR.BSC],BscCom_Asp.inc

Funcoes - DOC/Comum - VBS             =[SIG_LST_DIR.BSC],DocAsp_Vbs.inc
##

