'Nome       : SigTbe.std
'Tipo       : LST
'Data       : 2008/03/29
'Versao     : 1.0
'Descricao  : Tabela de empresas

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


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Especifico 1                      [EspOp1]=Opcao 1
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=TBE
Nome                       [DocNom]=TbeTxt,Tabela de Empresas

'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
Opcao especifica           [DocEsp]=OpcEsp=???


'funcoes de listagem
Listar cabecalho            [FxCAB]=SigTbeTxt_Cab
Listar linhas               [FxLIN]=SigTbeTxt_Lin; Grp; Sbt,2
Listar fim                  [FxFIM]=SigTbeTxt_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=TBE
Nome                       [DocNom]=TbeXls,Tabela de Empresas (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
'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
Opcao especifica           [DocEsp]=OpcEsp=???


'funcoes de listagem
Base para documento         [FxDOC]=SigTbeXls
Listar cabecalho            [FxCAB]=SigTbeXls_Cab
Listar linhas               [FxLIN]=SigTbeXls_Lin, 0; Grp,0; Sbt,0
Listar fim                  [FxFIM]=SigTbeXls_Fim

Matriz auxiliar            [DocMat]=SigTbe.xls
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=TBE
Nome                       [DocNom]=TbeXlsAno,Tabela de Empresas (Ano)

'formato
Saida/Impressora           [DocPrt]=NULA
'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
Opcao especifica           [DocEsp]=OpcEsp=???


'funcoes de listagem
Base para documento         [FxDOC]=SigTbeXlsAno
Listar cabecalho            [FxCAB]=SigTbeXlsAno_Cab
Listar linhas               [FxLIN]=SigTbeXlsAno_Lin, 0; Grp,0; Sbt,0
Listar fim                  [FxFIM]=SigTbeXlsAno_Fim

Matriz auxiliar            [DocMat]=SigTbeAno.xls
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'------------------------------------------------------------------------------
'Lista de variaveis especificas
'------------------------------------------------------------------------------
'valores texto
'MemTxt$(01)   - Titulo da listagem
'MemTxt$(11)   - ?


'------------------------------------------------------------------------------
'Formatacao de valores
'------------------------------------------------------------------------------
Pag       = Doc_CntPag
Cnt       = FrmVal$(CntAux(1),21,4)

Tit080    = TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",ideCab$)
Tit132    = TxTit$("TT=16CPI, LD, PT=66C",ideCab$)

DataExt   = FrmDt$("EXT",Sig_DtHoje)


'- grupo ----------------------------------------------------------------------
vGrpCod   = grpCod$                    'codigo
vGrpIde   = grpIde$                    'identificacao
vGrpObs   = grpObs$                    'observacoes


'- empresa --------------------------------------------------------------------
vTbeCod   = tbeCod$                    'codigo
vTbeIde   = tbeIde$                    'identificacao
vTbeTip   = tbeTip$                    'tipo
vTbeDir   = regDir$                    'directorio
vTbeInf   = tbeInf$                    'informacao
vTbeCfg   = tbeCfg$                    'configuracao

vAdiObs   = adiObs$                    'observacoes

'- diversos -------------------------------------------------------------------
sEmpNum   = FrmNum$(4,grpCntEmp)       'empresas do grupo
tEmpNum   = FrmNum$(4,tbeCntEmp)       'empresas totais
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)


'==============================================================================
'= COM = Funcoes comuns =======================================================
'==============================================================================
Sub Lst_AJT
'nada a executar
end sub


Sub CntPrp 'preparar contadores
tbeCntEmp = 0                          'limpar contador de empresas - total
grpCntEmp = 0                          'limpar contador de empresas - grupo
end sub


Sub ComVarPrpGrp 'preparar valores - grupo de empresas
grpCod$ = VarCom$("GrpCod")            'ccodigo
grpIde$ = VarCom$("GrpIde")            'identificacao
grpObs$ = VarCom$("GrpObs")            'observacoes

grpCntEmp = 0                          'limpar contador de empresas - grupo
end sub


Sub ComVarPrpTbe 'preparar valores - tabela de empresas
tbeCod$ = VarCom$("TbeCod")            'ccodigo
tbeIde$ = VarCom$("TbeIde")            'identificacao
tbeTip$ = VarCom$("TbeTip")            'tipo
regDir$ = VarCom$("TbeDir")            'directorio
tbeInf$ = VarCom$("TbeInf")            'informacao
tbeCfg$ = VarCom$("TbeCfg")            'configuracao

adiDir$ = VarCom$("AdiDir")            'directorio
adiObs$ = VarCom$("AdiObs")            'observacoes

tbeCntEmp = tbeCntEmp + 1              'contar de empresas - total
grpCntEmp = grpCntEmp + 1              'contar de empresas - grupo
end sub


'==============================================================================
'= LST - Listar ===============================================================
'==============================================================================
Sub SigTbeTxt_Cab 'cabecalho
FxDiv LstIde,16CPI,0

'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)
ide$    = Memtxt$(1)                   'identificacao
ideCab$ = ide$                         'identificacao de cabecalho

?@Tit080                                                                                                                            #
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
?  Codigo              Identificação                             Observações    #
'123456789.123456789.  123456789.123456789.123456789.123456789.  123456789.123456
?================================================================================
print string$(80,"-")
end sub


Sub SigTbeTxt_LinGrp 'identificacao de grupo
call ComVarPrpGrp                      'preparar valores - grupo de empresas

ide$ = grpCod$ + " - " + grpIde$       'identificacao do grupo
print tab(10) ide$                     'listar identificacao
end sub


Sub SigTbeTxt_Lin 'linha
call ComVarPrpTbe                      'preparar valores - tabela de empresas

?@vTbeCod              @vTbeIde                                  @vTbeObs       #
end sub


Sub SigTbeTxt_LinSbt 'subtotal de grupo
?    Subtotal:  @sEmpNum                                                        #

print                                  'separar
end sub


Sub SigTbeTxt_Fim
call ComVarAcmPrp                      'preparar dados de acumulados

?================================================================================
?    Numero de empresas: @tEmpNum                                               #
?================================================================================
FxDiv LstPer,SP
end sub


'==============================================================================
'= Listagem para EXCEL ========================================================
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)


'==============================================================================
'= XLS - Funcoes comuns -------------------------------------------------------
'==============================================================================
Sub SigTbeXls_ComIncLin 'incrementar linha
call XlsComLin_IncRep                              'incrementar linha + repor formato normal

'zon$ = XlsZon$(liUsa, coCod)                       'zona
zon$ = XlsZon$(liUsa, coCod, liUsa, coTip)         'zona
res = XlsAli(zon$, "4")                            'alinhamento
end sub


Sub SigTbeXls_ComLinGrp 'identificacao de grupo
call ComVarPrpGrp                                  'preparar valores - grupo de empresas
call SigTbeXls_ComIncLin                           'incrementar linha

res = XlsLst(liUsa, coCod, grpCod$)                'codigo de grupo
res = XlsLst(liUsa, coIde, grpIde$)                'identificacao de grupo
call XlsComLin_ActB                                'activar linha em BOLD

zon$ = XlsZon$(liUsa, coCod)                       'zona
res = XlsAli(zon$, "5")                            'alinhamento

zon$= XlsZon$(liUsa, coCod, liUsa, coObs)          'zona para border
res = XlsEnvZon(zon$, "T,B", "C", "F", 1)          'desenhar border
end sub


Sub SigTbeXls_ComLinSbt 'subtotal de grupo
call SigTbeXls_ComIncLin                           'incrementar linha

vIde$   = "Subtotal"                               'contribuinte

'listar
res = XlsLst(liUsa, coIde, vIde$)                  'identificacao
res = XlsLst(liUsa, coTip, grpCntEmp)              'numero de empresas

call XlsComLin_ActBI                               'activar linha em BOLD+ITALICO
'zon$ = XlsZon$(liUsa, coIde)                       'zona
zon$ = XlsZon$(liUsa, coIde, liUsa, coTip)         'zona
res = XlsAli(zon$, "5")                            'alinhamento

call SigTbeXls_ComIncLin                           'incrementar linha
end sub


Sub SigTbeXls_ComFim 'terminar
call XlsComLin_Fim                                 'fim de linhas

ltoUsa = LinFim                                    'linha para totais
liUsa  = ltoUsa                                    'linha a usar

'listar
res = XlsLst(liUsa, coTip, tbeCntEmp)              'numero de empresas

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


'==============================================================================
'= XLS - Listagem para EXCEL --------------------------------------------------
'==============================================================================
Sub SigTbeXls_DocIni 'inicializar documento
'msgbox "","DocIni"

xlsOpcNfi$ = "RND:SigTbe.xls"                      'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

call XlsComDoc_IniMat                              'inicializar documento por matriz

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

'preparar cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

'msgbox "","Tit",lstTit$

ideCab$ = ""                                       'identificacao de cabecalho
ideCab$ = VarCom$("IdeCab")                        'identificacao de cabecalho

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nom", empNom$)                'nome da empresa
res = XlsIdeLst("Lst_Tit", ideCab$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data

call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coCod = 2                                          'codigo
coIde = 3                                          'identificacao
coTip = 4                                          'tipo
coDir = 5                                          'directorio
coInf = 6                                          'informacao
coCfg = 7                                          'configuracao
coObs = 8                                          'observacoes

call CntPrp                                        'preparar contadores
end sub


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


Sub SigTbeXls_LinGrp 'identificacao de grupo
call SigTbeXls_ComLinGrp                           'identificacao de grupo
end sub


Sub SigTbeXls_Lin 'linha de valores
call ComVarPrpTbe                                  'preparar valores - tabela de empresas
call SigTbeXls_ComIncLin                           'incrementar linha

'listar
res = XlsLst(liUsa, coCod, tbeCod$)                'codigo
res = XlsLst(liUsa, coIde, tbeIde$)                'identificacao

res = XlsLst(liUsa, coTip, tbeTip$)                'tipo
'res = XlsLst(liUsa, coDir, tbeDir$)                'directorio
res = XlsLst(liUsa, coDir, adiDir$)                'directorio
res = XlsLst(liUsa, coInf, tbeInf$)                'informacao
res = XlsLst(liUsa, coCfg, tbeCfg$)                'configuracao
res = XlsLst(liUsa, coObs, adiObs$)                'observacoes
end sub


Sub SigTbeXls_LinSbt 'subtotal de grupo
call SigTbeXls_ComLinSbt                           'subtotal de grupo
end sub


'- Terminar/Totais ------------------------------------------------------------
Sub SigTbeXls_Fim 'terminar
call SigTbeXls_ComFim                              'terminar
end sub


'==============================================================================
'= XLS/ANO - Listagem para EXCEL com zonas para meses -------------------------
'==============================================================================
Sub SigTbeXlsAno_DocIni 'inicializar documento
'msgbox "","DocIni"

xlsOpcNfi$ = "RND:SigTbeAno.xls"                   'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

call XlsComDoc_IniMat                              'inicializar documento por matriz

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

'preparar cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

'msgbox "","Tit",lstTit$

ideCab$ = ""                                       'identificacao de cabecalho
ideCab$ = VarCom$("IdeCab")                        'identificacao de cabecalho

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nom", empNom$)                'nome da empresa
'res = XlsIdeLst("Lst_Tit", ideCab$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data

call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coCod =  2                                         'codigo
coIde =  3                                         'identificacao
coTip =  4                                         'tipo
coM01 =  5                                         'mes 01
coM02 =  6                                         'mes 02
coM03 =  7                                         'mes 03
coM04 =  8                                         'mes 04
coM05 =  9                                         'mes 05
coM06 = 10                                         'mes 06
coM07 = 11                                         'mes 07
coM08 = 12                                         'mes 08
coM09 = 13                                         'mes 09
coM10 = 14                                         'mes 10
coM11 = 15                                         'mes 11
coM12 = 16                                         'mes 12
coObs = 17                                         'observacoes

call CntPrp                                        'preparar contadores
end sub


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


Sub SigTbeXlsAno_LinGrp 'identificacao de grupo
call SigTbeXls_ComLinGrp                           'identificacao de grupo
end sub


Sub SigTbeXlsAno_Lin 'linha de valores
call ComVarPrpTbe                                  'preparar valores - tabela de empresas
call SigTbeXls_ComIncLin                           'incrementar linha

'listar
res = XlsLst(liUsa, coCod, tbeCod$)                'codigo
res = XlsLst(liUsa, coIde, tbeIde$)                'identificacao
res = XlsLst(liUsa, coTip, tbeTip$)                'tipo
res = XlsLst(liUsa, coObs, adiObs$)                'observacoes
end sub


Sub SigTbeXlsAno_LinSbt 'subtotal de grupo
call SigTbeXls_ComLinSbt                           'subtotal de grupo
end sub


'- Terminar/Totais ------------------------------------------------------------
Sub SigTbeXlsAno_Fim 'terminar
call SigTbeXls_ComFim                              'terminar
end sub

##


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

'Funcoes comuns XLS                     =[SIG_LST_DIR.$INC],XlsCom_Pgm.inc
##

