'Nome       : CasCtr.std
'Tipo       : LST
'Data       : 1999/10/19
'Versao     : 1.0
'Descricao  : Listagens de contratos (requisicao de assist. tec) controlada por SQL - CASCTR


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


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


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

Contratos                [Cmd]=Contratos=+
   +SELECT * FROM CasPrq, CasCtr +
   +WHERE CasPrq.[CaNdoc$]>='{OpcDocIni}' AND CasPrq.[CaNdoc$] <='{OpcDocFim}' +
   +AND CasPrq.[CaNdoc$] = CasCtr.[Ndoc$] +
   +ORDER By CasPrq.[Crg$] 

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

##


'-----------------------------------------------------------------------------
' Configuracao do documento
'-----------------------------------------------------------------------------
#DOC
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=CasCtr,Contratos
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
Listar fim                  [FxFIM]=Doc1_Fim

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


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


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

Nca      = FrmNdo$("44",Cas_Ctr_Tdoc$,SqlCmp("Ndoc$"))
DtI      = FrmVal$(SqlCmp("DtICa"),44,0)
DtF      = FrmVal$(SqlCmp("DtFCa"),44,0)
Ct       = SqlCmp$("CasCtr.Ct$")

Crg      = SqlCmp$("Crg$")
Nome     = CasArtCon$(SqlCmp$("Crg$"), "Nome")
Fg       = FrmVal$(SqlCmp$("DtFGar"),44,0)
VlA      = FrmNum$(9.1,ArtPrcUsa(SqlCmp$("Crg$")))


'descricao da empresa 
EmpNome  = Emp_Inf_Nome$
EmpMorada= Emp_Inf_Morada$
EmpLocal = Emp_Inf_Local$
EmpCpost = Emp_Inf_Cpost$

'indicacao do destinatario do documento

CNom      = CasTabLer$("CT", SqlCmp$("CasCtr.CtFac$"))
'CNom     = VarAlt$("Enc_Mst","Cta_Mst_Nome$")
Morada   = VarAlt$("Enc_Mst","Cta_Ang_Morada$")
Local    = VarAlt$("Enc_Mst","Cta_Ang_Local$")
Cpost    = VarAlt$("Enc_Mst","Cta_Ang_Cpost$")


'Prc3     = FrmNum$(9.1,SqlCmp("Prc3"))

T        = FrmNum$(14.1,Total(Cod))
D1_Vl    = FrmNum$(15.1,SqlCmp("Prc1"))
CntL     = FrmNum$( 3.0,CntLin("CON"))

'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"))

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


'-----------------------------------------------------------------------------
' Programa/Funcoes
'-----------------------------------------------------------------------------
#PGM
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 Lst_AJT
end sub


'- 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))
?                        REQUISIÇÃO DE ASSISTÊNCIA TÉCNICA
?
?
?                                                  Contrato nº: @NCa             #
?                                                  Data inicio: @DtI             #
?                                                  Data fim   : @DtF             #
?
?Data      : @DataExt                                             Folha No: @Pag #
?Nº Cliente: @Ct                   #
?
?                                      ===========================================
?                                      |De:                                      |
?                                      | @EmpNome                                |
?                                      | @EmpMorada                              |
?                                      | @EmpLocal                               |
?                                      | @EmpCpost                               |
?                                      ===========================================
?
?                                      ===========================================
?                                      |A:                                       |
?                                      | @CNom                                   |
?                                      | @Morada                                 |
?                                      | @Local                                  |
?                                      | @Cpost                                  |
?                                      ===========================================
?
?Exmos. Senhores
?
?Vimos pela presente requisitar a V. Exas. a 
?seguinte prestação de serviço de assistência técnica.
?
?=================================================================================
?|Cod.Reg.     |Descrição                |Fim Garant|Duod|Valor Anual|Valor Pagar|  
?=================================================================================
end sub


SUB Doc1_Lin 'linha
?|@Crg         |@Nome                    |@Fg       |    |@VlA       |           |

'linha adicional
usa=SqlOpcCon("LinAdi")           'validar linha adicional
if usa=1 then                     'listar linha adicional ?
   tmp=SqlCalc("ArtNum")          'gerar valores calculados
   tmp=CntLin("INC",1)            'contar linha adicional
end if
end sub

SUB Doc1_Fim 'totais
?================================================================================
?                    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

##



