Hola.
La teoría: Si tienes relacionadas las bases de datos, padre-hijo en el diccionario, y tienes datos metidos en la tabla hijo, no habiendo todavia grabado el registro padre y das a cancelar,,,, clarion solito los borra. Pero yo de esto no me fio al 100%. La tabla padre tiene q tener un registro con clave unica autonumerica relacionada y en cascada en la tabla hijo. Con esto debería ser suficiente.
Opciones que se me ocurren:
- Puedes poner el list del de hijo, compartiendo la misma ventana del list del padre, mitad arriba, mitad abajo, de este modo solo pueden meter datos en el hijo si el padre esta creado. Ventaja, segun consultas las lineas del padre, ves las lineas del hijo.
- Yo me hice un Browse/Update. A ver,,, la ventana la divido en tres partes dos mitades horizontales, y la mitad superior a su vez, por la mitad vertical.
Cuadrante superior izquierdo muestro los datos principales del browse padre.
Cuadrante superior derecho muestro el detalle de cada linea del browse padre cargados en un record temporal, o variables, pero todas desabilitadas.
En el cuadrante inferior muestro el browse del hijo.
Cuando pulsas los botones insert/change/delete desabilito el browse padre y el hijo y habilito los campos de entrada del cuadrante superior derecho, si no entra todo en la ventana, tengo un boton que pone [mas] que habre un window con mas campos de entrada, pero de la forma que esta hecho son datos que rara vez es necesario acceder a ellos, pues lo principales ya los muestro en la ventana principal. Cuando das a grabar o cancelar, hago comparaciones record = record y tomo accion segun sea el caso, y luego desabilito nuevamente los campos de entrada y habilito los dos browse. Es muy visual, pues todo me queda en una misma ventana, pero tienes que currartelo a pelo. O sea trabajartelo mucho para conseguir ese efecto.