4D v14

Script del vídeo

Inicio

 
4D v14
Script del vídeo

Script del vídeo  


 

 

En este video, vamos a aprender sobre los punteros y cómo optimizar su programación y que sean genéricos.

Como vimos en el ejercicio anterior, definir opciones para cada acción (buscar, ordenar, etc) en el método NAVIGATION_FUNCTIONS puede convertirse rápidamente en algo fastidioso. Por lo tanto, tenemos que orientar la acción hacia la tabla que corresponde a la página seleccionada.

En ese caso, es más fácil indicar sólo una vez al principio del método la tabla a utilizar.  Podemos almacenar esta indicación en una variable y luego usar esta variable en los comandos.

Lógicamente, no podemos decir que una variable es igual a una tabla, estos objetos son completamente diferentes y tienen un contenido completamente diferente. Ya hemos aprendido que una variable puede ser de tipo entero, numérico, texto, imagen, etc. y contiene un valor del tipo correspondiente. Una tabla no es un "contenido" como lo es un valor numérico.

La solución es utilizar una variable de tipo puntero.

Así que vamos a definir esta variable, que es una variable local:

 C_POINTER($TablePointer)

Esta variable existe en memoria. Ahora, para asignar un valor, vamos a utilizar los siguientes tipos de sintaxis:

 $TablePointer:=->[INTERVENTIONS]

Así como lo hemos visto para las variables, tenemos:

  • una inicialización
  • una asignación de valor

y, más adelante, en cualquier lugar donde la tabla Interventions debiera haber sido utilizada, vamos a poder sustituirla con esta variable, que tendremos que "desapuntar" en este caso.

La ventaja es que todo el código está aquí, que es un simple copiar pegar con sólo un cambio de la tabla, se puede sustituir por estas 2 mismas líneas de código, siempre que hayamos previamente definido la tabla a la que debe apuntar dependiendo del número de página.

Así que tenemos que obtener el código que hemos escrito antes, y aquí nos indican que:

  • Si estamos en la página 1, apuntamos a interventions (->[INTERVENTIONS])
  • Si estamos en la página 2, apuntamos a technicians (->[TECHNICIANS])

Dicho esto, ya no es necesario probar las páginas aquí y por lo tanto ya no es útil tener este programa duplicado.

Tenemos una primera programación aquí que nos permite:

  • definir la tabla concerniente dependiendo de la página
  • a continuación, definir la acción a realizar, independientemente de la página ya que la tabla correcta fue definida.

El mismo principio aplica para las búsquedas:

  • vamos a mover el código aquí
  • eliminar por completo el "Case of" que está aquí
  • y remplazar "intervention" con un puntero a la tabla ya que estamos en la página 2

Cuando llegamos aquí, el puntero será un puntero a "Technicians" y por lo tanto vamos a buscar en la tabla "Technicians".

El número de registros encontrados es el número de registros que se encuentran en la tabla "Technicians".

 
PROPIEDADES 

Producto: 4D
Tema: Punteros

 
ARTICLE USAGE

Autoformación ( 4D v13)
Autoformación ( 4D v14)