Histórico da Página
Sintaxis
AxAltera( <cAlias>, <nReg>, <nOpc>, <aAcho>, <aCpos>, <nColMens>, <cMensagem>, <cTudoOk>, <cTransact>, <cFunc>, <aButtons>, <aParam>, <aAuto>, <lVirtual>, <lMaximized>)
Propósito
Permite que el usuario modifique las informaciones de un archivo de datos por medio de una interfaz, de acuerdo con la necesidad de la aplicación.
Argumentos
< cAlias >
Archivo de datos cuyas informaciones se modificarán. Este archivo está registrado en el diccionario de tablas del Protheus (SX2).
< nReg >
Número del registro (recno) posicionado en el alias activo y que también se modificará.
< nOpc >
Número de la línea del array aRotina que define el tipo de edición (Inclusión, Modificación, Borrado y Visualización). La función AxAltera() se ejecuta cuando el usuario selecciona la opción Modificación.
< aAcho >
Array con el nombre de los campos que se mostrarán en la interfaz (pantalla). Los campos específicos de usuario siempre se mostrarán si no existe en el parámetro un elemento con la expresión “NOUSER”.
< aCpos >
Array con el nombre de los campos que se podrán editar.
<nColMens >
Parámetro no utilizado.
< cMensagem >
Parámetro no utilizado.
< cTudoOk >
Función de validación de las informaciones confirmadas por el usuario después de la modificación. No se debe pasar como bloque de código, pero se puede pasar como una lista de expresiones, siempre y cuando la última acción retorne valor lógico. Ejemplo:
“( Func1(), Func2(), ..., FuncX(), .T. )”
< cTransact >
Función que se ejecutará dentro de la transacción de la AxFunction().
< cFunc >
Función que cargará las variables que se utilizarán por medio del objeto Enchoice. En este caso, la función AxFunction() define internamente el parámetro IVirtual y lo ejecuta como verdadero (.T.).
< aButtons >
Botones adicionales que se agregarán en la barra de herramientas estándar (EnchoiceBar). Las informaciones de cada botón se deben pasar en el siguiente formato:
aArray[n][1] --> Imagen del botón.
aArray[n][2] --> Bloque de código que contiene la acción que el botón ejecutará.
aArray[n][3] --> Título del botón.
< aParam >
Funciones que se ejecutarán en puntos previamente definidos de la AxFunction(), de acuerdo con la siguiente descripción:
aParam[1] --> Bloque de código que se procesará antes de mostrar las informaciones en la pantalla.
aParam[2] --> Bloque de código para procesar en la validación de la confirmación de las informaciones.
aParam[3] --> Bloque de código que se ejecutará dentro de la transacción de la función AxFunction().
aParam[4] à--> Bloque de código que se ejecutará fuera de la transacción de la AxFunction().
< aAuto >
Indica que la modificación se realizará automáticamente por medio de la propia función, sin la necesidad de mostrar la pantalla de interfaz y con base en los datos enviados en este parámetro.
Este array está montado en el formato utilizado por la función estándar MsExecAuto(). Si se informa este array, la pantalla de interfaz no se mostrará y se ejecutará la función EnchAuto().
El array se debe montar en el siguiente formato:
aAuto[n][1] --> Nombre del campo.
aAuto[n][2] --> Contenido del campo.
aAuto[n][3] --> Validación que se utilizará para sustituir las validaciones definidas en el diccionario de datos SX3.
< lVirtual >
Indica si la interfaz utilizará variables de memoria o los campos del propio archivo de datos en la edición.
Se debe informar verdadero (.T.) para utilizar variables de memoria o falso (.F.) para los campos del propio archivo de datos.
< lMaximized >
Indica si la ventana se maximizará o no.
Se debe informar verdadero (.T.) para maximizar la ventana o falso (.F.) para no maximizarla.
Utilización
Este componente visual, se utiliza con mucha frecuencia en la interfaz de las aplicaciones, para modificar informaciones incluidas anteriormente.
Ejemplos
USER FUNCTION CTJ40Alt
LOCAL nReg := ( cString )->( Recno() )
LOCAL aCpos := {"PA4_DTINI","PA4_DTFIM"}
AxAltera(cString,nReg,4,,aCpos)
RETURN NIL