uno a muchos
Posted: Wed Apr 16, 2014 4:53 pm
Buenos días, alguien podrá decirme si hay alguna solución mas simple que la que hice para eliminar un registro del archivo alumnos alumnos->alum_id y todas sus coincidencias del archivo lista lista->alum_id donde tengo guardadas todas las inasistencias.
este es el código.
Si me funciona bien, solo quiero saber si hay una forma mas práctica, sin tanto código, tal vez un set relation uno a mucho, no sé.
Por su atención muchas gracias de antemano.
este es el código.
Si me funciona bien, solo quiero saber si hay una forma mas práctica, sin tanto código, tal vez un set relation uno a mucho, no sé.
Por su atención muchas gracias de antemano.
Code: Select all
//Elimina alumno
Procedure elim_Al()
sele alumnos
alumnos->(DBSETORDER(1))
cCodigo := ValorDeColumna1( "Grid_1" , "Bus_alum" , 1 )
if cCodigo==""
MsgBox("Elija una alumno" + cCodigo)
Return nil
endif
alumnos->(DBSeek( cCodigo,.T. ))
// ------- a partir de aquí es mi duda ------
If MsgYesNo ("¿Está seguro?")
delete //----- Borro el alumno ----
pack
MsgBox( "Alumno con No. de lista "+ cCodigo + "Borrado")
//---------Ahora borro todos los registros que tienen el mismo id -----
sele lista
lista->(DBGOTOP())
set filter to lista->alum_id=cCodigo
lista->(DBGOTOP())
do while .not. lista->(Eof())
delete
pack
lista->(DBSkip())
enddo
set filter to
//--------------
EndIf
llenAlum2()
Return nil