Ejecutar un GTRR (Go To Related Records) desde una fila de portal tiene su gracia. Si la tabla destino del GTRR es la misma TO que la del portal, entonces no hay problema y todo funcionará como esperamos. Es decir clicando el botón en la fila del portal que ejecuta el GTRR nos llevará al registro relacionado deseado.

El problema es cuando la tabla destino del GTRR no es la misma TO que la del portal. En este caso cliquemos la fila que cliquemos siempre iremos a parar al mismo registro: al primero.

Personalmente tengo la costumbre de construir las presentaciones siempre sobre las TO ancla y no sobre las boyas. Es por ello que me encuentro a menudo con la problemática del párrafo anterior.

La solución no es compleja aunque si un poco, podríamos decir, retorcida… Consiste en crear una tabla auxiliar basada en la TO del portal para que aterrice el GTRR. Después del aterrizaje haremos un cambio de presentación a la TO que realmente queremos. El problema es que este último cambio de presentación no nos dejará en el mismo registro al que habíamos llegado desde el GTRR. Ello es debido a que la TO es distinta. Por lo tanto, antes de cambiar de presentación guardaremos el id del registro en una variable, ahora cambiaremos de presentación y entonces buscaremos el registro objetivo. Listo.

Veamos un ejemplo para fijar los conceptos:


Layout

 

 

Tenemos un portal basado en Layout » Of_PARTE_finalizado y con el botón → queremos ir a ver el detalle de esta fila. Lo que nos pasa es que dicho detalle está basado en la presentación Layout » PARTE que es una TO distinta a la del portal. En estas condiciones si en el botón → hacemos simplemente GTRR iremos siempre al primer registro del portal, desde cualquier fila del mismo.
El guión necesario tiene esta pinta:Script
La presentación en la que aterriza el GTRR – Autocontrol (Layout » Of_PARTE_finalizado) – ahora si se basa en la misma TO que el portal. Establecemos la variable que nos guardará el id del registro y que nos permitirá después de cambiar a la presentación que queremos posicionarnos en el registro adecuado.
Feliz FileMaking 🙂