#include "AMPA32.ch"
#include "FWDCtrl.ch"
#xTranslate @<oDbf>:<(cField)> => ( <oDbf>:nArea )-><cField>
STATIC aFamilia := {}
STATIC aConcep := {}
/* *********************************************************************************** */
/* *********************************************************************************** */
FUNCTION Alumne01( AMPAarra, nAccion, cCodiAlum, nGoRegi )
/* nAccion valdrà:
0 - No hace nada, simplemente un GoTo.
1 - Nova alta
2 - Modifica
3 - Borrar
*/
STATIC lExiste := .F.
STATIC nEditando := 0
STATIC oSWnd := Nil
STATIC oSAfegir := Nil
STATIC oSModi := Nil
STATIC oSDel := Nil
STATIC oSGo := Nil
STATIC oSRecno := Nil
STATIC oSTdbfAlumne := Nil
STATIC aHistoFiltre := {0}
Local lRespuesta := .T.
Local aFiltro := aFiltroFun( AMPAARRA )
#include "Alumne01.LCL"
Local aGets := {}
Local oTdbfAlumne := Nil
// Per a que aGetFamili cerqui en una DBF sense estar filtrada.
Local oTdbfAlumneFree := Nil
Local oTdbfFamili := Nil
Local oTdbfPares_ := Nil
Local oTdbfdomici := Nil
Local oTDbfConcep := Nil
Local oTDbfRelcon := Nil
Local oTDbfDatCur := Nil
//Local aAsociar := {}
Local aVeomasSiNo := {}
uBusca := Space(60)
nRecno := 1
nEditando := 0
/* Se chequea que exista una BD de trabajo, en caso contrario no se abre la ventana.
-------------------------------------------------------------------------------*/
If AMPAarra[2][3][1][1] = ""
lRespuesta := .F.
Else
If lExiste
WarningDemo2( oSTdbfAlumne:LastRec() )
oSWnd:Show()
oSWnd:Restore()
lRefresca( AMPAarra, oSWnd )
oSWnd:SetFocus()
Else
AMPAarra[4][1] := .F.
oTdbfAlumne := oDbfClon( AMPAarra, "ALUMNE" )
oTdbfAlumne:Setindex(4) // per nom
oTdbfAlumne:Gotop()
oTdbfAlumneFree := oDbfClon( AMPAarra, "ALUMNE" )
oTdbfAlumneFree:Setindex( 0 ) // per nom
oTdbfFamili := oDbfClon( AMPAarra, "FAMILI" )
oTdbfPares_ := oDbfClon( AMPAarra, "PARES_" )
oTdbfdomici := oDbfClon( AMPAarra, "DOMICI" )
oTDbfCONCEP := oDbfClon( AMPAarra, "CONCEP" )
oTDbfRelcon := oDbfClon( AMPAarra, "RELCON" )
oTDbfDatCur := oDbfClon( AMPAarra, "DATCUR" )
oTdbfAlumne:Gotop():Load()
#include "Alumne01.FWD"
oSWnd := oAlumne01
oSRecno := oRecno
oSAfegir := oAfegir
oSModi := oModi
oSDel := oDel
oSGo := oGo
oSTdbfAlumne := oTdbfAlumne
oAlumne01:bGotFocus := { || ( uSetGoto( AMPAArra, oTdbfAlumne:CodiDomi, Nil, Nil, Nil, Nil, Nil, Nil, Nil ), ;
oAlumne01:Move( 0, 0, (oAlumne01:nRight - oAlumne01:nLeft), (oAlumne01:nBottom - oAlumne01:nTop ), .T. ) ) }
lGroupGetEdit( AMPAarra, oAlumne01, aGets )
AADD( aGets, oAlumFacturab )
AADD( aGets, oAlumlopd )
AADD( aGets, oAlumDrIm )
AADD( aGets, oALUMsoci )
AADD( aGets, oCompDade )
ROYes(AMPAarra, aGets)
NullBrush( oAlumne01 )
oIndiAlta:Hide()
oIndiModi:Hide()
oSayFlt:Hide()
oTdbfAlumne:SetBrowse( oWBrowse, .F. )
oLbFamilia:bKeyDown := {| nKey , nflags | If( nKey = VK_RETURN .and. nEditando = 0, ;
( Eval(oLbFamilia:bChange ), If( aFamilia[oLbFamilia:nAt][1] = "P", uGoto( AMPAArra, "P" ), uGoto( AMPAArra, "A" ) ) ), ;
KeyInoWnd( AMPAarra, oAlumne01, "A", ;
{nEditando, oModi, oBusca, oWBrowse, oPrint, oAfegir, oDel, oASFiltre,;
Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil }, ;
nKey, nflags ) ;
) }
oLbConcep:bLDblClick := { |nRow,nCol,nKeyFlags| ( Eval(oLbConcep:bChange ), uGoto( AMPAArra, "R" ) ) }
oLbConcep:bKeyDown := {| nKey , nflags | If( nKey = VK_RETURN .and. nEditando = 0, ;
( Eval(oLbConcep:bChange ), uGoto( AMPAArra, "R" ) ), ;
KeyInoWnd( AMPAarra, oAlumne01, "A", ;
{nEditando, oModi, oBusca, oWBrowse, oPrint, oAfegir, oDel, oASFiltre,;
Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil}, ;
nKey, nflags ) ;
) }
ACTIVATE WINDOW oAlumne01 ; // MAXIMIZED ; ON INIT oLBmnda:Set( AMPAarra[1][2][5][3] ) ;
VALID ( If( nEditando == 0, ;
If( AMPAarra[4][1], ;
(lExiste := .F., oPrint:SetFocus(), lWndSalta( AMPAarra, Nil) ,;
laTDbfEnd( AMPAarra, { oTdbfAlumne, oTdbfPares_, oTdbfFamili, oTdbfDomici, oTDbfCONCEP, oTDbfRelcon, oTDbfDatCur, oTdbfAlumneFree } ), ;
oSTdbfAlumne := oSWnd := oSRecno := oSModi := oSDel := oSAfegir := oSGo := Nil, .T. ), ;
(lWndSalta( AMPAarra, oAlumne01 ) ,oSWnd:Hide(), .F. ) ;
) , ;
(Eval( oSGo:bAction ), .F.) ;
) ;
) ;
ON INIT ( oWBrowse:GoTop(), AutResiz( AMPAarra[1][2][3][3], AMPAarra[1][2][2][3], oAlumne01, 2 )) //FIVEWIDI
oLbfamilia:SetArray( { "*", "*", "*", "*", "*" } )
//oLbfamilia:bLine = { || { ArraFamilia[ oLbfamilia:nAt ][2] } }
oLbfamilia:Refresh()
oLbfamilia:GoTop()
oLbConcep:SetArray( { "*", "*", "*", "*", "*", "*", "*", "*", "*" } )
//oLbConcep:bLine = { || { ArraFamilia[ oLbConcep:nAt ][2] } }
oLbConcep:Refresh()
oLbConcep:GoTop()
oTabs:SetOption( 3 )
VeoMasSiNo( AMPAARRA, aVeoMasSiNo, Nil )
oAlumne01:Hide()
oAlumne01:Show()
lExiste := .T.
EndIf
If ValType(cCodiAlum) = "C"
If AllTrim(cCodiAlum) <> ""
oSTdbfAlumne:KillFilter( .T. )
//oSayFlt:Hide()
oSRecno:Varput( nGoToAlum( AMPAarra, oSTdbfAlumne, cCodiAlum, .F., .T. ) )
EndIf
ElseIf nGoRegi > 0
oSTdbfAlumne:KillFilter( .T. )
//oSayFlt:Hide()
oSRecno:Varput( nGoRegi )
EndIf
If nAccion = 0
Eval( oSGo:bAction )
ElseIf nAccion = 1
Eval( oSAfegir:bAction )
ElseIf nAccion = 2
Eval( oSGo:bAction )
Eval( oSModi:bAction )
ElseIf nAccion = 3
Eval( oSGo:bAction )
Eval( oSDel:bAction )
EndIf
EndIf
Return lRespuesta
/* *********************************************************************************** */