'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/01/24 --------------------------------------------------
'Versao base


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
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 CtCli$>='{Opc_Ct.Ini}' AND CtCli$ <='{Opc_Ct.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_Art.Fim}' +
   +AND VndNDoc$>='{Opc_Doc.Ini}' AND VndNDoc$ <='{Opc_Doc.Fim}' +
   +AND Sit$>='{Opc_CSit.Ini}' AND Sit$ <='{Opc_CSit.Fim}' +
   +AND DtFGar>={Opc_FGar.Ini} AND DtFGar <={Opc_FGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ {Opc_Tip.CA} +
   +ORDER By CtCli$


Artigos por conta [Cmd]=PrqCt=+
   +SELECT * FROM CasPrq +
   +WHERE Crg$>='{Opc_Crg.Ini}' AND Crg$ <='{Opc_Crg.Fim}' +
   +AND CtCli$>='{Opc_Ct.Ini}' AND CtCli$ <='{Opc_Ct.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_Art.Fim}' +
   +AND VndNDoc$>='{Opc_Doc.Ini}' AND VndNDoc$ <='{Opc_Doc.Fim}' +
   +AND Sit$>='{Opc_CSit.Ini}' AND Sit$ <='{Opc_CSit.Fim}' +
   +AND DtFGar>={Opc_FGar.Ini} AND DtFGar <={Opc_FGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ {Opc_Tip.CA} +
   +ORDER By CtCli$, CaTip$, Art$ 


Artigos por conta [Cmd]=PrqArt=+
   +SELECT * FROM CasPrq +
   +WHERE Crg$>='{Opc_Crg.Ini}' AND Crg$ <='{Opc_Crg.Fim}' +
   +AND Ct$>='{Opc_Ct.Ini}' AND Ct$ <='{Opc_Ct.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_Art.Fim}' +
   +AND VndNDoc$>='{Opc_Doc.Ini}' AND VndNDoc$ <='{Opc_Doc.Fim}' +
   +AND Sit$>='{Opc_CSit.Ini}' AND Sit$ <='{Opc_CSit.Fim}' +
   +AND DtFGar>={Opc_FGar.Ini} AND DtFGar <={Opc_FGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ {Opc_Tip.CA} +
   +ORDER By Art$, CtCli$, CaTip$


Artigos preco zero [Cmd]=CasPrc0=+
   +SELECT * FROM CasPrq +
   +WHERE Crg$>='{Opc_Crg.Ini}' AND Crg$ <='{Opc_Crg.Fim}' +
   +AND CtCli$>='{Opc_Ct.Ini}' AND CtCli$ <='{Opc_Ct.Fim}' +
   +AND Art$>='{Opc_Art.Ini}' AND Art$ <='{Opc_Art.Fim}' +
   +AND VndNDoc$>='{Opc_Doc.Ini}' AND VndNDoc$ <='{Opc_Doc.Fim}' +
   +AND Sit$>='{Opc_CSit.Ini}' AND Sit$ <='{Opc_CSit.Fim}' +
   +AND DtFGar>={Opc_FGar.Ini} AND DtFGar <={Opc_FGar.Fim} +
   +AND VndDt>={Opc_Dt.Ini} AND VndDt <={Opc_Dt.Fim} +
   +AND CaTip$ >='0300' AND CaTip$<='0399' +
   +AND Pag$ = '0' +
   +ORDER By Crg$


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.[CtCli$]='{CtCli$}'

##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=CasPrq,Por Código de Registo
Vias                       [DocVia]=Original
'Personalizacao             [DocPer]=

'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]=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]=CtCli$:


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


'==============================================================================
#DOC - Artigos com preco zero
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=CasPrc0,Por Preço nulo
Vias                       [DocVia]=Original
'Personalizacao             [DocPer]=

'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]=XXX=Xyz

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

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


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

'variaveis a listar
Crg      = SqlCmp$("Crg$")
Ct       = SqlCmp$("CtCli$")
Art      = CasFrmCod$(SqlCmp$("Art$"), "", "CasArtCod$")
ArtNome  = CasArtCon$(SqlCmp$("Crg$"), "Nome")
DtV      = FrmVal$(SqlCmp$("VndDt"),44,0)
FGr      = FrmVal$(SqlCmp$("DtFGar"),44,0)
Nd       = SqlCmp$("VndNdoc$")
Pr       = FrmNum$(9.1,ArtPrcUsa(SqlCmp$("Crg$")))
TCA      = SqlCmp$("CaTip$")
TA       =SqlCmp$("TipAss$")
Inf      = SqlCmp$("Info$")

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

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

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

'totais/subtotais
D1_VlTot = FrmNum$(15.1,Total(D1_Vl))
D1_T1    = FrmNum$(15.1,Total(D1_Vl,1))
D1_T2    = FrmNum$(15.1,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 'funcao de inicializacao
'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 FxIni 'inicializacao base
end sub


SUB Lst_AJT
end sub


'-----------------------------------------------------------------------------
'PRQ - Parque de Artigos
'-----------------------------------------------------------------------------
SUB CasArt_CabIni
aa=0
end sub


SUB CasPrq_Cab
FxDiv LstIde,16CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI","Listagem do Parque de Artigos")
?Data : @DataExt                                                 Folha No : @Pag#
?================================================================================
'? Registo          Conta        Artigo           F. Gar.        Preço    TCA  TA
? Registo          Conta        Artigo           F. Gar.      CA/SIT     TCA  TA
?================================================================================
end sub


SUB CasPrq_Cab2
FxDiv LstIde,16CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI","Listagem do Parque de Artigos")
?Data : @DataExt                                                 Folha No : @Pag#
?================================================================================
? Registo          Conta        Artigo           F. Gar.        Preço    TCA TSit
?================================================================================
end sub


SUB CasPrq_Lin
'?@Crg             @Ct          @Art             @Fgr        @Pr          @TCA @TA#
?@Crg             @Ct          @Art             @Fgr        @Inf         @TCA @TA#
end sub


SUB CasPrq_Lin2
?@Crg             @Ct          @Art             @Fgr        @Pr           @Inf  #
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          Conta        Artigo           F. Gar.        Preço    TCA  TA
?================================================================================
end sub


SUB Doc1_Lin 'linha
tmp=SqlCalc("ArtNum")              'gerar valores calculados
?@Crg             @Ct          @Art             @Fgr        @Pr          @TCA @TA#
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: " SqlCmp$("CtCli$")        'identificar grupo
end sub


SUB Doc1_LinSbt1 'sobtotal 1
'print tab(5) "Subtotal: " SbtInf$("ANT",1);    'identificar subtotal
print "Subtotal: " SqlCmp$("CtCli$");           'identificar subtotal
print tab(53) FrmNum$( 3.0,TotCnt("CRG",1));
'print tab(64) FrmNum$(15.1,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


'-----------------------------------------------------------------------------
'ART1 - 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              Dat.Venda  Fim Garan. NºDoc  Preço     T.C. T.A. #
?================================================================================
end sub


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

?@Crg       @Ct                @DtV       @Fgr         @Nd@Pr           @TC  @TA #

'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$("Crg$"), "Nome")     'identificar grupo
end sub


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

##

