/////////////////////////////////////
// Ejemplo para insertar un registro
////////////////////////////////////
rgCondMod1 is Record of condiciones_modificaciones
// Inicializamos los valores, Similar a un SCATTER MEMVAR de Fox
HReset(rgCondMod1)
// Si quisieramos cargar un registro existente, usaríamos primero: HReadSeek(
//if hreadseek(condiciones_modificaciones,FKIMPORTA,1) THEN
// Inicializamos los valores, Similar a un SCATTER MEMVAR de Fox
// rgCondMod1 = condiciones_modificaciones
//END
// Actualizamos valores
rgCondMod1.FKIMPORTA= 1
rgCondMod1.NTIPOMODI= 2
rgCondMod1.FKIDCONDIC= 3
// Volcamos el registro sobre la tabla, Similar a un GATHER MEMVAR de Fox
condiciones_modificaciones = rgCondMod1
// Insertamos el registro en disco
HAdd(condiciones_modificaciones)
La ventaja de usar un RECORD, es que lo puedes pasar como parámetro entre clases, métodos, etc
Si se necesita una explicación más exhaustiva sobre el paso de parámetros, se puede consultar la ayuda https://ayuda.windev.es/es-ES/?1514077&name=passing_parameters
Para pasar parámetros a una ventana hija, y que los cambios en ella se vean reflejados en la variable de la ventana padre, no hay que hacer nada especial, se pasan como a cualquier otro proceso.
Siguiendo el ejemplo anterior y teniendo una ventana hija llamada “Win_prueba2”, la llamada se haría así:
Open(WIN_prueba2, rgCondMod1)
En la sección de declaración de la ventana WIN_prueba2 se pondría así:
PROCEDURE WIN_prueba2(rgCondModWin is Record of condiciones_modificaciones)
*- NOTA: No es obligatorio poner el tipo de variable “is Record of condiciones_modificaciones”, pero si se pone, Windev nos ofrece la ayuda en línea para la variable, mostrando el nombre de los campos al poner el “.”
No hace falta devolver ningún valor a la ventana padre, ya que por defecto Windev pasa los parámetros por referencia. Los cambios que se hagan sobre la variable en la ventana hija se verán reflejados en la variable de la ventana padre.
Si se quiere forzar a que se pasen los parámetros por valor (evitando que los cambios en la ventana hija afecten a la padre), se puede declarar la variable usando el comando LOCAL. Quedaría así:
PROCEDURE WIN_prueba2(LOCAL rgCondModWin is Record of condiciones_modificaciones)