'Nome       : CasPrq.std
'Tipo       : LST
'Data       : 2006/02/17
'Versao     : 1.1
'Descricao  : Listagem do Parque de Artigos

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

'- Versao : 1.0   2000/04/12 --------------------------------------------------
'Versao base


'==============================================================================
#DEF - Definicoes base
'==============================================================================
Caracteres invalidos           [CarInv]=#

Zoom para preview             [PrvZoom]=1
Opcoes para impressora WIN   [PrWinOpc]=[ORI=P]
##


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


Artigos por conta [Cmd]=CasPrq=+
   +SELECT * FROM CasPrq +
   +WHERE Crg$>='{Opc_Crg.Ini}' AND Crg$ <='{Opc_Crg.Fim}' +
   +AND CtEmp$>='{Opc_CtEmp.Ini}' AND CtEmp$ <='{Opc_CtEmp.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_Art.Fim}' +
   +AND VndNDoc$>='{Opc_Ndoc.Ini}' AND VndNDoc$ <='{Opc_Ndoc.Fim}' +
   +AND Sit$>='{Opc_CodSit.Ini}' AND Sit$ <='{Opc_CodSit.Fim}' +
   +AND DtFGar>={Opc_DtFGar.Ini} AND DtFGar <={Opc_DtFGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ {Opc_TipCA} +
   +ORDER By Crg$


Artigos por conta [Cmd]=PrqCt=+
   +SELECT * FROM CasPrq +
   +WHERE Crg$>='{Opc_Crg.Ini}' AND Crg$ <='{Opc_Crg.Fim}' +
   +AND CtEmp$>='{Opc_CtEmp.Ini}' AND CtEmp$ <='{Opc_CtEmp.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_Art,Fim}' +
   +AND VndNDoc$>='{Opc_Ndoc.Ini}' AND VndNDoc$ <='{Opc_Ndoc.Fim}' +
   +AND Sit$>='{Opc_CodSit.Ini}' AND Sit$ <='{Opc_CodSit.Fim}' +
   +AND DtFGar>={Opc_DtFGar.Ini} AND DtFGar <={Opc_DtFGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ {Opc_TipCA} +
   +ORDER By CtEmp$, CaTip$, Art$ 


Artigos por artigo [Cmd]=PrqArt=+
   +SELECT * FROM CasPrq +
   +WHERE Crg$>='{Opc_Crg.Ini}' AND Crg$ <='{Opc_Crg.Fim}' +
   +AND CtEmp$>='{Opc_CtEmp.Ini}' AND CtEmp$ <='{Opc_CtEmp.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_ArtFim}' +
   +AND VndNDoc$>='{Opc_Ndoc.Ini}' AND VndNDoc$ <='{Opc_Ndoc.Fim}' +
   +AND Sit$>='{Opc_CodSit.Ini}' AND Sit$ <='{Opc_CodSit.Fim}' +
   +AND DtFGar>={Opc_DtFGar.Ini} AND DtFGar <={Opc_DtFGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ {Opc_TipCA} +
   +ORDER By Art$, CtEmp$, CaTip$


Dados por artigos pos codigo    [Cmd]=ArtNum=+
   +SELECT count(CasPrq.[Crg$]) AS Num, +
   +min(CasPrq.[Crg$]) AS Min, +
   +max(CasPrq.[Crg$]) AS Max, +
   +sum(CasPrq.[Crg$]) AS Tot, +
   +avg(CasPrq.[Crg$]) AS Med +
   +FROM CasPrq +
   +WHERE CasPrq.[CtEmp$]='{CtEmp$}'

##


'==============================================================================
#DOC - Modo TEXTO/DOS
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=CasPrq,Por Código de Registo
Vias                       [DocVia]=Original

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
'Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=CasPrq_Cab
Listar linhas               [FxLIN]=CasPrq_Lin;Inf
Listar fim                  [FxFIM]=CasPrq_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=CasPrq
'Subtotalizadores           [SQLSbt]=CtCli$:
##


'==============================================================================
#DOC - Artigos agrupados por conta
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=PrqCt,Por Cliente
Vias                       [DocVia]=Original

'formato
Impressora                 [DocPrt]=
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]=Doc1_Cab
Listar linhas               [FxLIN]=Doc1_Lin; Sbt01,2; Sbt02,2; Sbt03,2
Listar fim                  [FxFIM]=Doc1_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=PrqCt
'Subtotalizadores           [SQLSbt]=Cod$:2,Cod$:6
Subtotalizadores           [SQLSbt]=CtEmp$:


'diversos
'parametros especificos
'Dados a listar            [DocEsp]=ConCmd=
##


'==============================================================================
#DOC - Artigos agrupados por artigo
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=PrqArt,Por Artigo
Vias                       [DocVia]=Original

'formato
Impressora                 [DocPrt]=
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]=Art1_Cab
Listar linhas               [FxLIN]=ARt1_Lin; Sbt01,2; Sbt02,2; Sbt03,2
Listar fim                  [FxFIM]=Art1_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=PrqArt
'Subtotalizadores           [SQLSbt]=Cod$:2,Cod$:6
Subtotalizadores           [SQLSbt]=Art$:


'diversos
'parametros especificos
'Dados a listar            [DocEsp]=ConCmd=
##


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

'variaveis a listar
Crg      = SqlCmp$("Crg$")

Ct       = SqlCmp$("CtEmp$")
'CtNome   = CasTabLer$("CT", SqlCmp$("CtEmp$"))
CtNome   = left$(CasTabLer$("CT", SqlCmp$("CtEmp$")),22)

Art      = CasFrmCod$(SqlCmp$("Art$"), "", "CasArtCod$")
ArtNome  = CasPrqArtCon$(SqlCmp$("Crg$"), "Nome$")

DtV      = FrmVal$(SqlCmp$("VndDt"),44,0)
FGr      = FrmVal$(SqlCmp$("DtFGar"),44,0)
Nd       = SqlCmp$("VndNdoc$")
Pr       = FrmNum$(8.2,CasArtPrcUsa(SqlCmp$("Art$"), SqlCmp$("Prc")))
TCA      = SqlCmp$("CaTip$")
TA       = SqlCmp$("TipAss$")
Inf      = SqlCmp$("Info$")
CA       = CasFrmCod$(SqlCmp$("CaNdoc$"),"","CA")

T        = FrmNum$(13.2,Total(Cod))
Tco      = TotCnt("Crg",0)

D1_Vl    = FrmNum$(14.2,SqlCmp("CtCli"))
CntL     = FrmNum$( 3.0,CntLin("Ct"))

'valores por calculo SQL (usar a funcao SqlCalc)
Num      = FrmNum$( 3.0,SqlOpcCon("Num"))
Min      = FrmNum$( 9.2,SqlOpcCon("Min"))
Max      = FrmNum$( 9.2,SqlOpcCon("Max"))
Tot      = FrmNum$( 9.2,SqlOpcCon("Tot"))
Med      = FrmNum$( 9.2,SqlOpcCon("Med"))

'totais/subtotais
D1_VlTot = FrmNum$(14.2,Total(D1_Vl))
D1_T1    = FrmNum$(14.2,Total(D1_Vl,1))
D1_T2    = FrmNum$(14.2,Total(D1_Vl,2))

TotCnt   = FrmNum$( 3.0,TotCnt("CRG",0))
##


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


'-----------------------------------------------------------------------------
' Funcoes para inicializacao
'-----------------------------------------------------------------------------
SUB FxIni 'inicializacao base
'x=SqlOpcAct("Opc1","Opcao 1")                  'activar opcao

cnt=0                                           'limpar contador
'x=SqlOpcAct("LinAdi",1)                         'usar linha adicional
x=SqlOpcAct("LinAdi",0)                         'nao usar linha adicional
end sub


SUB FxFim 'funcao de finalizacao
end sub


SUB Lst_AJT
end sub


'-----------------------------------------------------------------------------
'PRQ - Parque de artigos
'-----------------------------------------------------------------------------
SUB CasPrq_Cab
FxDiv LstIde,16CPI,0
print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI","Listagem do Parque de Artigos")
?Data : @DataExt                                                                                                     Folha No : @Pag#
'print PrtCmd$("[16CPILN]");
?====================================================================================================================================
? Cod.Reg.         Conta        Cliente                Artigo             Descrição                   F. Gar.        Preço      TCA  
?====================================================================================================================================
end sub


SUB CasPrq_Lin
?@Crg              @Ct          @CtNome                @Art               @ArtNome                  @Fgr        @Pr             @TCA#
end sub


SUB CasPrq_Fim
?====================================================================================================================================
?@Tco Artigos                                                                                                                       #
?====================================================================================================================================
FxDiv LstPer,SP
'Print PrtCmd("[SP]");
end sub


'-----------------------------------------------------------------------------
'DOC1 - Documento 1
'-----------------------------------------------------------------------------
SUB Doc1_CabIni 'inicializar documento
cnt=cnt+1                                      'contar
'x=SqlOpcAct("Cnt",cnt)                         'actualizar valor de opcao

if cnt>5 then 
   x=SqlOpcAct("LinAdi",1)                     'usar linha adicional
end if
end sub


SUB Doc1_Cab 'cabecalho
FxDiv LstIde,16CPI,0
'print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))
'FxDiv LstIde,10CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",MemTxt$(1))
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
? Registo         Artigo           Descrição           F. Gar.      Preço    TCA  
?================================================================================
end sub


SUB Doc1_Lin 'linha
tmp=SqlCalc("ArtNum")              'gerar valores calculados
?@Crg             @Art             @ArtNome           @Fgr       @Pr         @TCA#
end sub


SUB Doc1_LinTit1 'titulo 1
tmp=CntLin("MIN",5)                             'minimo de linhas
tmp=CntLin("INC",1)                             'contar linha
'print tab(5) "Ano: " SbtInf$("ACT",1)          'identificar grupo
print tab(5) "Conta: " SbtInf$("ACT",1)         'identificar grupo
end sub


SUB Doc1_LinSbt1 'sobtotal 1
'print tab(5) "Subtotal: " SbtInf$("ANT",1);    'identificar subtotal
print tab(5) "Subtotal: " SbtInf$("ANT",1);           'identificar subtotal
print tab(53) FrmNum$( 3.0,TotCnt("CRG",1));
'print tab(64) FrmNum$(14.2,Total("D1_Vl",1))
? artigos
?
tmp=CntLin("INC",2)          'contar linhas
x=TotLpz(1)                  'limpar totais
end sub


SUB Doc1_Fim 'totais
?================================================================================
'?                                           Totais : @TotCnt    @D1_VlTot       #
?                                           Totais : @TotCnt artigos            #
?================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


SUB Doc1_FimAjt 'fim de pagina intermedia
?================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


'-----------------------------------------------------------------------------
'ART - Por artigo
'-----------------------------------------------------------------------------
SUB Art1_Cab 'cabecalho
FxDiv LstIde,16CPI,0
'print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))
'FxDiv LstIde,10CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",MemTxt$(1))
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
? Registo       Conta      Cliente              Fim Garan.   Preço        C.A. 
?================================================================================
end sub


SUB Art1_Lin 'linha
tmp=SqlCalc("ArtNum")              'gerar valores calculados

?@Crg          @Ct         @CtNome             @Fgr      @Pr         @CA        #

'linha adicional
'usa=SqlOpcCon("LinAdi")           'validar linha adicional
'if usa=1 then
'?                                @Num     @Tot         @Med                      #
'?Total no Parque de Artigos: @Num                                                #
'?
   tmp=CntLin("INC",1)            'contar linha adicional
end if
end sub

SUB Art1_LinTit1 'titulo 1
tmp=CntLin("MIN",5)                         'minimo de linhas
tmp=CntLin("INC",1)                         'contar linha
?
print tab(5) "Artigo: " CasArtCon$(SqlCmp$("Art$"), "Nome$")     'identificar grupo

print tab(5) "Num Ser : " CasPrqCon$(SqlCmp$("Crg$"), "Crg$")
print tab(5) "Artigo/P: " CasPrqArtCon$(SqlCmp$("Crg$"), "Nome$")
end sub


SUB Art1_Fim 'totais
?================================================================================
'?                                           Totais : @TotCnt    @D1_VlTot       #
?                                           Totais : @TotCnt artigos            #
?================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub

##
