Está en la página 1de 5

Creacin de mltiples registros en una tabla relacionada sin sal... http://www.adventoplus.com/creacion-de-multiples-registros-...

CREACIN DE MLTIPLES
REGISTROS EN UNA TABLA
RELACIONADA SIN SALIR DEL
CONTEXTO ACTUAL: MAGIC KEY
TCNICAS FILEMAKER

Esta es una tcnica que permite crear mltiples registros hijos desde un
padre utilizando tan slo un paso de guin Establecer campo y sin
abandonar en ningn momento el contexto padre. Se atribuye la autora
aUgo Di Luca [http://www.dlsystems.fr/index.html] .

Previamente a introducir la tcnica, vamos a repasar el funcionamiento


estndar de Permitir la creacin de registros en esta tabla a travs de esta
relacin.

Tenemos dos tablas Padre e Hijo entre las que establecemos la siguiente
relacin:

1 de 5 31/8/17 1:38
Creacin de mltiples registros en una tabla relacionada sin sal... http://www.adventoplus.com/creacion-de-multiples-registros-...

[http://www.adventoplus.com/wp-content/uploads/2015/03/Captura-de-
pantalla-2013-02-27-a-las-15.41.34.png]

Como vemos hemos seleccionado la opcin Permitir la creacin de registros e


esta tabla a travs de esta relacin. Hay dos mtodos para crear registros en
Hijo desde Padre.

Mtodo 1

Desde un registro de Padre,que no tenga an ningn hijo, ejecutamos un


paso de guin que establezca un campo (cualquiera) de la tabla Hijo (p.ej.
Establecer campo [Hijo::Nombre]). Con este sistema creamos el primer hijo y
FileMaker nos garantiza que en Hijo::_kf_PadreID vamos a tener la
__kp_PadreID del registro desde el cual se ha ejecutado el paso de guin.

Si estando en el mismo __kp_PadreID ejecutamos otro paso de guin que


establezca otro campo cualquiera de la tabla Hijo (p.ej. Establecer campo
[Hijo::Apellido]), FileMaker establecer el campo del mismo hijo al que le acaba
de establecer el nombre, en lugar de crear uno nuevo.

Es decir, cuando desde una TO_1 (Padre) (Table Ocurrence) establecemos un


campo en otra TO_2 (Hijo) relacionada habiendo escogido la opcin de
permitir la creacin de registros en TO_2 (Hijo) a travs de la relacin, creamos
un nuevo registroslo si noexistaningn registro relacionado.En el caso de
que ya hubiera uno o varios registros relacionados, el paso de guin
Establecer campo actualizar el campo en elprimer registro.

2 de 5 31/8/17 1:38
Creacin de mltiples registros en una tabla relacionada sin sal... http://www.adventoplus.com/creacion-de-multiples-registros-...

Mtodo 2

La creacin de registros con este segundo mtodo necesita de la introduccin


de un portal de Hijo dentro de la presentacin Padre. Accediendo a cualquier
campo de Hijo que aparezca en el portal en una la vaca crearemos un nuevo
registro relacionado. Con este mtodo si que es posible crear ms de un
registro relacionado sin abandonar el contexto actual, pero forzosamente
debemos introducir un portal en la presentacin Padre.

Magic Key!

Bien, una vez ya sabemos hacer lo bsico, vamos a introducir el sistema Magic
Key. Este sistema lo que pretende es superar la limitacin del mtodo 1 y
hacer posible que se creen tantos hijos como sea necesario simplemente
utilizando el paso de guin Establecer campo, sin la necesidad de cambiar de
contexto ni de utilizar un portal.

El sistema se apoya en el hecho de que cuando no hay ningn registro


relacionado y establecemos un campo del hijo desde una presentacin del
padre por medio de un guin, crea un registro y rellena el contenido de los
campos en ambas tablas que se han utilizado en la relacin.

Ugo Di Luca debi plantearse algo asY si pongo un campo en la tabla padre
queme aseguro que est vaco al inicio del guiny con este campo establezco
la relacin con el hijo?

La tcnica requiere de una nueva relacin adicional a la creada anteriormente


y es la siguiente:

3 de 5 31/8/17 1:38
Creacin de mltiples registros en una tabla relacionada sin sal... http://www.adventoplus.com/creacion-de-multiples-registros-...

[http://www.adventoplus.com/wp-content/uploads/2015/03/Captura-de-
pantalla-2013-02-27-a-las-17.45.23.png]

Nuestro grco de relaciones quedar del siguiente modo:

[http://www.adventoplus.com/wp-content/uploads/2015/03/Screen-
Shot-2015-03-14-at-19.39.40.png]
Utilizaremos un campo global Padre::zg_MagicKey que al empezar el guin
deberemos inicializar para que est vaco mediante Establecer campo
[Padre::zg_MagicKey=] . Estableceremos una relacin entre el campo anterior
y Hijo:: __kp_HijoID (denido este campo con clculo de autointroduccin).

4 de 5 31/8/17 1:38
Creacin de mltiples registros en una tabla relacionada sin sal... http://www.adventoplus.com/creacion-de-multiples-registros-...

Veamos que pasara sidesde una presentacin basada en padre ejecutramos


un guin que despus de dejar vaco el anterior campo global, tuvieraun paso
de guin que estableciera un campo en la tabla Hijo. Tal y como pasaba en el
mtodo 1, al no haber ningn registro relacionado, creara el primero y
establecera la relacin con lo que Padre::zg_MagicKey ya no estara en blanco,
sino que tendra el valor Hijo::__kp_HijoID. Si el guin tuviera ms pasos en los
que se establecieran campos de Hijo, estos campos seran los del registro
creado, pues no se crean nuevos registros. Al volver a ejecutar el guin de
crear hijo, puesto que dejamos en blanco el campo global se crear un
segundo registro y as sucesivamente.

Y qu pasa si Padre::zg_MagicKey no est en blanco ()?

Hemos visto que si Padre::zg_MagicKey est en blanco y establecemos


cualquier campo de la tabla Hijo, crearemos un nuevo registro en la tabla Hijo
y Padre::zg_MagicKey pasar a tener el valor del campo con el que est
relacionado (Hijo::__kp_HijoID) si ste tiene un valor de autointroduccin (si no
tiene el valor de autointroduccin no funcionara).
Es importante observar que el sistema anterior es bidireccional. Es decir, si
teniendo las cosas tal y como hemos explicado en el prrafo anterior, damos a
zg::MagicKey un valor que no existe en el campo Hijo::__kp_HijoID de ningn
registro, al establecer algn campo de la tabla Hijo, vamos a crear un nuevo
registro en Hijo y en Hijo::__kp_HijoID FileMaker nos va a poner el valor de
zg::MagicKey.
En denitiva, una tcnica curiosa que aplico con mucha frecuencia para crear
mltiples registros en tablas relacionadas si cambiar de contexto.
Feliz FileMaking

14 MARZO, 2015 / POR RAFAEL CABALL

Compartir esta entrada

! " #

5 de 5 31/8/17 1:38

También podría gustarte