Alta de registros en rabla no maestra


([N1] Giuseppe::Komenco) #1

Hola a todos, la verdad es que llevo varios días bastante empanado, y estoy intentando hacer una cosa y no me sale.

Digamos que tengo una tabhla A, otra tabla B y una tabla C.
La tabla A, contiene una serie de registros. La tabla B, contiene enlace a Maestro a A y a C. Y la tabla C, es la tabla C :P

Desde un formuilario de Alta de la tabla A, quiero desde un botón, lanzar un formulario de Alta de la tabla C, y cuando acepte, recuperar el ID (en el evento desde donde llamé al formluario de alta), para poder crear manualmente el registro correspondiente.

Algo tal que así.
- Abre formulario de Alta TablaC
- Set IDTABLAC = valor devuelto al crear registro en TablaC
- Crear ficha en memoria TablaB
--Modificar Campos
--blablablablabla
- Refrescar rejilla.

Casi seguro soy yo el que lo está planteando mal, pero no veo como hacerlo, por que, por ejemplo, puedo levantar el formulario de alta de la tablaC con una acción, y desde el evento en el formulario, hacer un "Ejecutar Acción", pero lo que no veo es como recuperar el valor devuelto.

Un saludo.


([N4] eic) #2

Hola.

Supongo que estarás teniendo en cuenta que, en todo este proceso, estás en un *alta* de registro de A, luego el registro de A no está creado. Si la rejilla depende de A, tienes un problema. Quizá te interese no estar en un alta de A, sino en una modificación, tras crear el registro de A en "blanco" (como no sé qué es lo que quieres hacer, esto es sólo un pensamiento en voz alta).

Lo que yo haría para lo que pides es tener un botón que llame a un evento, y en el evento:

(Editado)

- Crear ficha en memoria de C
- Alta de ficha de C
- En ese momento, tomar el ID del registro de C (bajo Alta de ficha)
- Crear ficha en memoria de B (ojo: si A no está creado, no podrás enlazar a A)
- Alta de ficha de B

Saludos,

Fran Varona


([N1] Giuseppe::Komenco) #3

Hola Fran, gracias por contestar.

Sí, no he contado lo de tener creado A, porque lo daba por hecho. El problema, es, que yo necesito dar de alta un formulario de alta de C (no de B), donde no tiene relación alguna con "A". "B" es la tabla que relacionará cada "A" con uno o distintos "C". Por eso, el ID que necesito recuperar, es el del Alta de C.

No sé si me he explicado mejor.


([N4] eic) #4

Hola.

Para recuperar el ID de un registro recién creado, lo tienes que hacer en la subrama que se abre con la instrucción Alta de ficha. Es decir:

- Crear ficha en memoria de C
- Modificar campos de C / Pedir formulario de C
- Alta de ficha de C -> y en la subrama, tomas el valor del campo ID

Y ya lo tienes.

Saludos,

Fran Varona


([N1] Giuseppe::Komenco) #5

Gracias Fran, precisamente era el comando "Pedir Formulario" el que desconocía y necesito, porque todos eran Alta de Ficha, etc..y no me servían para estos propósitos.

Gracias, luego lo pondré en práctica


([N1] Pepeto) #6

Un pequeño detalle, a lo dicho por Fran Varona,
Deberias controlar si el usuario ha Aceptado el formulario o ha pulsado Cancelar, porque si no, se creara la ficha igualmente.

Para ello, PEDIR FORMULARIO te permite indicar la variable de retorno de Ok
y usar la variable para saber si debes crear finalmente la ficha o se ha cancelado el formulario.

un saludo
Jose Luis
http://www.ascsl.com