'Nome       : LstGen.std
'Tipo       : LST
'Data       : 2006/03/26
'Versao     : 2.0
'Descricao  : Listagem generica SIG

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.0 2006/??/?? ---------------------------------------------------
'Adaptacao para SIG 4



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


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


'==============================================================================
#DOC - Documento Texto - 80 Colunas
'==============================================================================
Tipo                       [DocTip]=Lst80
Nome                       [DocNom]=Lst80,80 colunas

'formato
Impressora                 [DocPrt]=FicCnt.std
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]=L80_Cab
Listar linhas               [FxLIN]=L80_Lin,0
Listar fim                  [FxFIM]=L80_Fim
##


'==============================================================================
#DOC - Documento Texto - 132 Colunas
'==============================================================================
Tipo                       [DocTip]=Lst132
Nome                       [DocNom]=Lst132,132 colunas

'formato
Impressora                 [DocPrt]=FicCnt.std
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=L132_Cab
Listar linhas               [FxLIN]=L132_Lin,0
Listar fim                  [FxFIM]=L132_Fim
##


'==============================================================================
#DOC - Documento Grafico - 80 Colunas
'==============================================================================
Tipo                       [DocTip]=Lst
Nome                       [DocNom]=Lst80_G,Grafico

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=PW_Cab
Listar linhas               [FxLIN]=PW_Lin,0
Listar fim                  [FxFIM]=PW_Fim
##


'==============================================================================
#VAR - Definicao de variaveis
'==============================================================================
'MemTxt$(1)       - titulo
'MemNum(1)        - fonte formato grafico
'MemNum(11)       - numero de subtitulos
'MemTxt$(11)      - sub-titulo 1
'   ...
'MemTxt$(19)      - sub-titulo 9

'MemTxt$(21)      - titulo de colunas

'MemNum(51)       - numero de linhas a listar
'MemTxt$(51)      - linha de texto 1
'   ...
'MemTxt$(59)      - linha de texto 9


'titulos
Tit80    = TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",MemTxt$(1))
Tit132   = TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))

Pag      = Doc_CntPag
DtDia    = FrmVal$(Sig_DtHoje,45,0)
##


'==============================================================================
#INC - Inclusao de funcoes
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComVar.std
##


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

Sub Lst_AJT 'ajuste
end sub


SUB FxIni 'funcao de inicializacao
Call SigLstIni                         'inicializar listagem
end sub


'==============================================================================
'= Listagem em modo Texto =====================================================
'==============================================================================
Sub Cab80 'cabecalho para 80 colunas
FxDiv LstIde,10CPI,0
?@Tit80                                                                       #

sIni = 11                              'registo inicial
sFim = 10 + MemNum(11)                 'registo final
for s=sIni to sFim
print MemTxt$(s)                       'listar
next
end sub


Sub Cab132 'cabecalho para 132 colunas
FxDiv LstIde,16CPI,0                   '?
?@Tit132                                                                                                                            #
end sub


Sub LinSep 'linha de separacao
'tmp=CntLin("MIN",5)                    'minimo de linhas
tmp=CntLin("INC",1)                    'contar linha
print                                  'listar
end sub


Sub LinLst 'listar linha
rUsa = MemNum(51)                      'linhas a usar
rIni = 51                              'registo inicial
rFim = 50 + rUsa                       'registo final
tmp = CntLin("MIN",rUsa)               'minimo de linhas
tmp = CntLin("INC",rUsa)               'contar linhas

for i=rIni to rFim
'print ">" MemTxt$(i) "< " i
print MemTxt$(i)                       'listar valor
next
end sub


'------------------------------------------------------------------------------
'- Listagem em 80 colunas -----------------------------------------------------
'------------------------------------------------------------------------------
Sub L80_Cab 'cabecalho
call Cab80                             'executar cabecalho
?Data: @DtDia                                                    Folha No : @Pag#
?================================================================================
if MemTxt$(21)<>"" then
print MemTxt$(21)
?================================================================================
end if
tmp=CntLin("FRC",0)                    'limpar contador de linhas
end sub


SUB L80_Lin 'linha
call LinLst                            'listar linha
end sub


Sub L80_Fim 'fecho de pagina
?================================================================================
'Print PrtCmd$("[SP]");
FxDiv LstPer,SP
end sub


'------------------------------------------------------------------------------
'- Listagem em 132 colunas ----------------------------------------------------
'------------------------------------------------------------------------------
Sub L132_Cab 'cabecalho
call Cab132                            'executar cabecalho
?Data: @DtDia                                                                                                        Folha No : @Pag#
?====================================================================================================================================
if MemTxt$(21)<>"" then
print MemTxt$(21)
?====================================================================================================================================
end if
tmp=CntLin("FRC",0)                    'limpar contador de linhas
end sub


SUB L132_Lin 'linha
call LinLst                            'listar linha
end sub


Sub L132_Fim 'fecho de pagina
?====================================================================================================================================
'Print PrtCmd$("[SP]");
FxDiv LstPer,SP
end sub


'==============================================================================
'= Listagem em modo Grafico ===================================================
'==============================================================================
Sub Pw_Cab 'cabecalho
fonte = 9                                          'tamanho de fonte
if MemNum(1) > 0 then                              'indicou fonte ?
   fonte = Memnum(1)                               'usar fonte indicada
end if

call SigLstCab                                     'listar cabecalho

PrWIN COR_T,  CorTitLst                            'cor de titulo
PrWIN FON  ,  fonte,   1                           'activar fonte defeito
PrWIN AJT_B,  Margem, 25                           'posicao base

PrWIN TX_CTR,Margem,0,MargemD,0,MemTxt$(21)        'titulo
PrWIN COR_T,CorTraco                               'cor de linhas
PrWIN GR_LI, 0, 3, MargemD-20, 3                   'linha

PrWIN FON  ,   fonte,   1                          'activar fonte
PrWIN COR_T,CorLin                                 'cor de linhas
end sub


Sub Pw_Lin 'linha
rUsa = MemNum(51)                                  'linhas a usar
rIni = 51                                          'registo inicial
rFim = 50 + rUsa                                   'registo final
tmp  = CntLin("MIN",rUsa)                          'minimo de linhas
tmp  = CntLin("INC",rUsa)                          'contar linhas

for i = rIni to rFim
PrWIN AJT_B,  Margem,25+Doc_CntLin*4               'posicao base
PrWin TX_NP ,"T",0,0,MemTxt$(51)                   'listar
next
end sub


Sub Pw_Fim 'fecho de pagina
PrWIN AJT_B,  Margem, LinPer-10                    'posicao base
PrWIN COR_T,CorTraco                               'cor de linhas
PrWIN GR_LI, 0, 3, MargemD-20, 3                   'linha
call SigLstRod
PrWin FP
end sub

##


'==============================================================================
#INC - Inclusao de funcoes
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
##

