Mitra Global Services

Navimania – Variables RecordRef y FieldRef

Buenas de nuevo! Esta semana os traemos algo que puede servir tanto para Navision como para Business Central. 🥳

Lo vamos a programar en C/AL, pero os puede servir también para AL.

El tema de esta semana trata sobre las variables RecordRef y FieldRef.

Es algo que a veces trae confusión o problemas, por eso vamos a hacer algunos ejemplos básicos que nos van a ayudar a entender un poco mejor cómo funcionan estos dos tipos de variables.

Vamos al lío!

Mostraremos 3 ejemplos, el primero será la modificación de un campo, el segundo recoger el valor de un campo y el tercero filtrar un RecordRef.

Lo primero que haremos es crear las variables necesarias.

Como vemos, las dos variables que creamos son el RecordRef y el FieldRef.

Ejemplo 1 – Modificar valor de cualquier campo desde una tabla especifica:

Creamos la función de modificar un campo, en este ejemplo traemos la tabla ya filtrada para ser modificada.

Esta función nos permitirá modificar cualquier campo de la tabla que le pongamos como parámetro con cualquier valor que le pasemos.

Empezamos con los parámetros:

– Una variable tipo Variant para añadir la tabla de origen
– Un campo tipo Integer para el numero de campo
– Una variable tipo Variant para el dato a añadir.

Las líneas de código son sencillas, primero hacemos un CLEAR para eliminar cualquier rastro de utilización de las variables anterior.

Después inicializamos el RecRef con la tabla de origen.

Inicializamos el FieldRef

Aquí debemos añadir la variable que venía de los parámetros.

Por último, añadimos el valor con un «validate» del campo y modificamos la tabla para guardarlos.

Ejemplo 2 – Devolver valor de cualquier campo desde una tabla específica

Crearemos una función para devolver un valor especifico de un campo en una tabla ya filtrada.

Empezamos con los parámetros:

– Una variable tipo Variant para el dato a añadir
– Un campo tipo Integer para el numero de campo

También debemos indicar como variable de devolución que sea de tipo texto, así podremos devolver el valor en tipo texto.

Igual que antes, haremos el CLEAR de las dos variables.

Inicializamos las variables también igual que antes.

Y lo único diferente es lo siguiente:

Como podemos ver de la variable FieldRef retornamos el VALUE formateado.

Ejemplo 3 – Buscar y retornar el valor de un campo a través de ID de tabla

Este ejemplo os lo he querido añadir también porque se pueden hacer muchas cosas con algo tan sencillo como esto.

Se le podría sacar partido a un desarrollo como podría ser la búsqueda de datos en las tablas de pedidos de compras y de ventas.

Lo primero es crear la función con los parámetros:

– IdTable es para añadir el numero de la tabla en la que vamos a buscar.
– Un campo tipo Integer para el numero de campo
– El último parámetro es para añadir el valor o filtro para el campo.

Por último, en este ejemplo lo que devolveremos es si se ha encontrado o no algún valor.

Igual que en las veces anteriores hacemos el CLEAR.

Esta vez para inicializar la variable del RecordRef utilizaremos la función OPEN y le añadiremos el id de la tabla.

Inicializamos el FieldRef.

Y ahora viene lo divertido, desde el FieldRef podemos hacer filtros.

Es tan fácil como filtrar una tabla

Por último, lo que retornaremos es si hay o no datos en el filtro.

Aquí nosotros hemos querido escoger devolver si hay o no datos en el filtro, pero podemos retornar lo que sea, desde el valor del campo, hasta cuántos registros hay. Lo que se nos ocurra!

Con estos ejemplo se abre un abanico de posibilidades infinitas.

Como siempre este ejemplo entero lo tenéis colgado en GitHub en el link.

Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.

CAT