'Nome       : EncTabEnt.sql
'Tipo       : LST
'Data       : 2014/12/17
'Versao     : 1.0
'Descricao  : ENC - Listagem de tabela de entidades

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


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
##


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
Base de dados           [BD]=EmpFic$("EMP","Cta,Cta.mdb")


'------------------------------------------------------------------------------
'- Gerar dados ----------------------------------------------------------------
'------------------------------------------------------------------------------
Gerar dados [Cmd]=GerDat=+
+SELECT TOP 1 *  +
+FROM {TB_CtaMst}
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=TAB,Tabela de Entidades (Texto)

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Tx_TabCab
Listar linhas               [FxLIN]=Tx_TabLin,0
Listar fim                  [FxFIM]=Tx_TabFim

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


'==============================================================================
#DOC - Configuracao do documento - Impressao grafica
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=TAB_G,Tabela de Entidades (Grafica)

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=PW_TabCab
Listar linhas               [FxLIN]=PW_TabLin,0
Listar fim                  [FxFIM]=PW_TabFim

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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=TAB_XLS,Tabela de Entidades (XLS)

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsTab
Listar cabecalho            [FxCAB]=XlsTab_Cab
Listar linhas               [FxLIN]=XlsTab_Lin,0
Listar fim                  [FxFIM]=XlsTab_Fim

Matriz auxiliar            [DocMat]=EncTabEnt.xls

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


'==============================================================================
#VAR - Variaveis
'==============================================================================
Tit080   = TxTit$("TT=12CPI, LD, PT=48C, TL=10CPI","Clientes - Descontos"))
Tit132   = TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",lstTit$))

Tipo     = MemTxt$(1)
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)
DataSys  = FrmVal$(Sig_DtHoje,45,0)

'- tabela de entidades --------------------------------------------------------
vaCod = vUCod$                                     'codigo
vaDes = vuDes$                                     'descricao
vaObs = vuObs$                                     'observacoes
##


'==============================================================================
#INC
'==============================================================================
Variaveis  comuns                 =[SIG_Dir.Div],LsComVar.std
##


'==============================================================================
#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
Call SigLstIni                                     'inicializar
espvl = 30                                         '?
end sub


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


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
Sub Fic_Abr 'abrir ficheiro
fic$ = EmpFic$("EMP","Cemp,Entidades.tab")         'ficheiro de dados
res = FicPrp(1, "I", fic$)                         'preparar acesso a ficheiro
res = FicAbr(1)                                    'abrir ficheiro
end sub


Sub Fic_Ler 'ler ficheiro
ltx$   = FicTxLer$(1, 0)                           'ler linha de texto

nsp    = TxtSepMul(ltx$, ",", "CMP")               'separar campos da linha
vUCod$ = ConTx$(1, "CMP")                          'Consultar codigo
vuDes$ = ConTx$(2, "CMP")                          'Consultar descricao
vuObs$ = ""                                        'observacoes
end sub


Sub Fic_Fec 'fechar ficheiro
res = FicFec(1)                                    'fechar ficheiro
end sub


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


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


'------------------------------------------------------------------------------
'- [XLS] - Listar para EXCEL --------------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Xls_DocIni 'inicializar documento
dfi$ = FicEmp$("EMP","Ext","dExcel",cmo$)          'directorio de documentos EXCEL
nfi$ = "RND:EncTabEnt.xls"                         'nome do ficheiro
cmo$ = SigCmoCur$("MIX")                           'modulo corrente
ficDoc$ = FicTmp$(dfi$, nfi$)                      'ficheiro para documento
res = DirCri("D", dfi$)                            'criar directorio para documento

xlsMatNom$ = DocOpc$("DocMat")                     'nome do ficheiro matriz
xlsMat$    = DocOpc$("DocMat+SBT")                 'endereco do ficheiro matriz

res = FicCop(xlsMat$, ficDoc$)                     'criar ficheiro (copia de matriz)
res = XlsPrp(0)                                    'preparar EXCEL
res = XlsDocLer(ficDoc$)                           'ler ficheiro

'res = XlsDocCri("")                                'criar documento
end sub


Sub Com_Xls_DocFim 'terminar documento
res = XlsDocDir$("A", dfi$)                        'activar directorio
res = XlsDocGrv(ficDoc$)                           'gravar ficheiro

res = XlsVer(1)                                    'mostrar EXCEL - maximizado
res = XlsLib(0)                                    'libertar EXCEL
end sub


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

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


Sub Com_Xls_LinInc 'incrementar linha
xlsLsa = xlsLin                                    'linha de saida
res = XlsLinIns(xlsLin, 1)                         'juntar linha

'seguinte
xlsLin = xlsLin + 1                                'contar linha
end sub


Sub Com_Xls_LinIni 'iniciar linhas
res = XlsIdePsq("PO_BAS")                          'pesquisar posicao base
linBav = XlsIdePsqRes("L")                         'linha da posicao base

xlsLba = linBav                                    'linha base
xlsLin = linBav + 1                                'contador de linhas usadas
end sub


Sub Com_Xls_LinFim 'fim de linhas
res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsIdePsq("PO_FIM")                          'pesquisar posicao final
linFim = XlsIdePsqRes("L")                         'linha da posicao final
end sub


'==============================================================================
'- [TXT] - Listar em modo texto -----------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [TXT] - Tabela de entidades ------------------------------------------------
'------------------------------------------------------------------------------
Sub TX_TabCab
lstTit$ = "Tabela de Entidades"

call Cab080Col

?Data: @DataPlc                                                   Folha No: @Pag#
?================================================================================
?| Entidade |         Descricao                         |      Observacoes      |
?================================================================================
'print string$(80,"=")
end sub


Sub TX_TabLin 'listar linha
call Fic_Abr                                       'abrir ficheiro

vFim = FicSit(1, "EOF")                            'verificar se terminou
while vFim = 0
call Fic_Ler                                       'ler ficheiro

call TX_TabLin_Exe                                 'listar linha de entidade

vFim = FicSit(1, "EOF")                            'verificar se terminou
wend

call Fic_Fec                                       'fechar ficheiro
end sub


Sub TX_TabLin_Exe 'listar linha de entidade
tmp = CntLin("INC",1)                           'contar linhas
?| @vaCod   | @vaDes                                    | @VaObs                |
end sub


Sub TX_TabFim
?================================================================================
FxDiv LstPer,SP
end sub


'==============================================================================
'- [GRA] - Listar em modo grafico ---------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [GRA] - Tabela de entidades ------------------------------------------------
'------------------------------------------------------------------------------
Sub PW_TabCab
lstTit$ = "Tabela de Entidades"
Titulo$ = lstTit$

Call SigLstCab

PrWIN COR_F, 15                                    'cor de fundo
PrWIN AJT_B ,  Margem, 11                          'posicao base
PrWin COR_T ,  CorTit
PrWIN FON   ,       9,  1                          'activar fonte
PrWIN TX_N  ,       0,  0,SigLstInf$("EMPIDE")     'nome da empresa
PrWIN FON   ,      12,  1                          'activar fonte
PrWin FON, "BOLD+"                                 'desactivar bold
PrWIN TX_CTR,       0,  5, MargemD, 5,Titulo$      'titulo centrado
PrWin FON, "BOLD-"                                 'desactivar bold

PrWIN FON  ,    9                                  'activar fonte
PrWIN TX_N ,    0, 10,"Data :"                     'data
PrWIN TX_N ,  170, 10,"Folha No :"                 'folha

PrWin COR_T ,  CorLin
PrWIN TX_N,   11, 10,@DataExt                      'listar data
PrWIN TX_N,  185, 10,@Pag                          'numero da folha

Col1 =  0                                          'codigo
Col2 = 30                                          'descricao
Col3 =125                                          'observacoes
Col7 = MargemD                                     'margem direita

PrWIN AJT_B,  Margem, 26                           'posicao base
PrWIN FON  ,   10                                  'fonte para texto

PrWIN COR_T,   CorTraco                            'cor para titulos
PrWIN GR_LI, 0, 0, MargemD-10, 0                   'linha
PrWIN GR_LI, 0, 7, MargemD-10, 7               	   'linha

py = 1.5                                           'ajuste de posicao

PrWIN COR_T,   CorTit                              'cor para titulos
PrWIN TX_N,Col1+5, py,"Código"                     'titulo  
PrWIN TX_N,Col2+23, py,"Descrição"                 'titulo
PrWIN TX_N,Col4,    py,""                          'titulo
PrWIN TX_N,Col3+5,  py,"Observações"               'titulo

InicioEscrita=27                                   'posicao inicio linhas
PrWIN COR_T,   CorLin                              'cor para linhas
end sub


Sub PW_TabLin
call Fic_Abr                                       'abrir ficheiro

vFim = FicSit(1, "EOF")                            'verificar se terminou
while vFim = 0
call Fic_Ler                                       'ler ficheiro

call PW_TabLin_Exe                                 'linha de valores

vFim = FicSit(1, "EOF")                            'verificar se terminou
wend

call Fic_Fec                                       'fechar ficheiro
end sub


Sub PW_TabLin_Exe
tmp = CntLin("INC",1)                              'contar linhas

PrWIN AJT_B, Margem, InicioEscrita+Doc_CntLin*4    'posicao base
PrWIN COR_T,   CorLin                              'cor para linhas

PrWIN TX_N,Col1, 0,@vaCod                          'conta
PrWIN TX_N,Col2, 0,@vaDes                          'nome
end sub


Sub PW_TabFim
PrWIN COR_T,   CorTraco                            'cor para titulos
PrWIN AJT_B,Margem,LinPer-10                       'posicao base
'PrWIN GR_LI,     0,  0, MargemD-10, 0              'linha
PrWIN GR_LI,     0,  7, MargemD-10, 7              'linha

call SigLstRod
PrWin FP
End sub


'==============================================================================
'- [XLS] - Listar para XLS ----------------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [XLS] - Tabela de entidades ------------------------------------------------
'------------------------------------------------------------------------------
Sub XlsTab_DocIni 'inicializar documento
call com_Xls_DocIni                                'inicializar documento
call XlsTab_Prep                                   'preparar
end sub


Sub XlsTab_DocFim 'terminar documento
call Com_Xls_DocFim                                'terminar/mostrar documento
end sub


Sub XlsTab_Prep 'preparar para listar
lstTit$ = "Tabela de entidades")                   'titulo da listagem

res = XlsWks("Valores")                            'activar worksheet
call Com_Xls_DocCab                                'cabecalho do documento
res = XlsIdeLst("Lst_Tipo", "")                    'anular tipo da listagem

call Com_Xls_LinIni                                'iniciar linhas

'definicao das colunas
coCod  =  2                                        'codigo
coDes  =  3                                        'descricao
coObs  =  4                                        'observacoes
end sub


Sub XlsTab_Lin 'linha de valores
call Fic_Abr                                       'abrir ficheiro
'- (52) ------------------------------------------>'Comentario

vFim = FicSit(1, "EOF")                            'verificar se terminou
while vFim = 0
call Fic_Ler                                       'ler ficheiro

call XlsTab_Lin_Exe                                'linha de valores

vFim = FicSit(1, "EOF")                            'verificar se terminou
wend

call Fic_Fec                                       'fechar ficheiro
end sub


Sub XlsTab_Lin_Exe 'linha de valores
call XlsTab_IncLin                                 'incrementar linha	

'listar
res = XlsLst(liUsa,coCod, vuCod$)                  'codigo
res = XlsLst(liUsa,coDes, VuDes$)                  'descricao
End sub


Sub XlsTab_IncLin 'incrementar linha	
call Com_Xls_LinInc                                'incrementar linha
liUsa =  xlsLsa                                    'linha a usar

zon$= XlsZonNum$("L", liUsa)                       'zona da linha
res = XlsFon(zon$, ",,B-I-")                       'activar fonte bold, italico
end sub


Sub XlsTab_Fim 'terminar
call Com_Xls_LinFim                                'fim de linhas

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


'==============================================================================
#INC
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
##
