VFormDataView
Esta clase representa a un objeto formulario.
De atributos
Retorno | Función |
Boolean | |
Boolean | |
Boolean | |
Boolean | |
Boolean |
De widgets
Retorno | Función |
Number | |
De foco
Retorno | Función |
void | |
void | |
void |
De comandos
Retorno | Función |
void | |
void | |
void | |
void | |
void | |
void | |
void | |
void | |
Boolean | |
void | |
void | |
void | |
void |
De maestros
Retorno | Función |
void | |
void | |
void |
Señal |
Item: cambio de seleccionado |
Parámetros:
Devuelve true si la ficha del formulario está bloqueada.
Devuelve true si algún dato del registro ha sido modificado.
Devuelve true si el formulario está incrustado dentro de otro y se comporta como un subformulario.
Asigna un nuevo registro al formulario. Esto permite cambiar de ficha o incluso pasarle una ficha vacía para que el formulario permita dar altas.
Parámetros:
Parámetros:
- index: número que corresponde con el índice o posición del control en la lista de controles del formulario.
Parámetros:
- szIdPrimarioControl: identificador del control.
Devuelve el número de controles que contiene el formulario.
Devuelve un objeto de la clase VAbstractDataView correspondiente al objeto contenido en un control contenedor como pueden ser el separador, caja o pila de formularios, spliter o vista de datos.
Devuelve un objeto de la clase VFormDataView correspondiente al formulario principal donde está contenido el formulario. Esta función es útil cuando un formulario está siendo usado como subformulario de otro y deseamos conocer el formulario principal. Independiente del número de niveles de amalgama en los que se encuentre un subformulario esta función siempre devuelve el objeto formulario principal que contiene a todo el resto.
Sitúa el foco en el primer control del formulario.
Sitúa el foco en el siguiente control del formulario según el orden de tabulación establecido.
Sitúa el foco en el anterior control del formulario según el orden de tabulación establecido.
Equivale al comando de botón Aceptar que graba el registro y cierra el formulario.
Equivale al comando de botón Aceptar controlado que graba el registro y cierra el formulario previa confirmación por parte del usuario.
Equivale al comando de botón Aceptar que graba el registro y no cierra el formulario. Esta función está pensada para dar altas continuas sin cerrar el formulario.
Esta función sólo es válida para formulario en cuadro de diálogo.
Equivale al comando de botón Cancelar que cierra el formulario sin guardar los cambios.
Equivale al comando de botón Cancelar controlado que cierra el formulario sin guardar los cambios previa confirmación por parte del usuario.
Esta función sólo cierra el formulario. No guarda la información del registro. Si deseamos almacenar la información del registro antes de cerrar el formulario debemos usar la función saveRegister().
Equivale al comando de botón Eliminar que borra el registro y cierra el formulario.
Equivale al comando de botón Eliminar que borra el registro y cierra el formulario previa confirmación por parte del usuario.
Guarda todos los cambios del registro. Esta función no cierra el formulario por lo que equivale a aplicar los cambios y seguir editando.
Equivale al comando de botón Deshacer que retrocede todas las operaciones de la transacción en curso y cierra el formulario.
Equivale al comando de botón Deshacer controlado que retrocede todas las operaciones de la transacción en curso y cierra el formulario previa confirmación por parte del usuario.
Mueve los datos existentes en los campos del registro a los controles y refresca la información en el formulario. Es muy útil para refrescar los controles del formulario tras haber realizado cambios en la información de los registros que se están visualizando. Esta función no cierra el formulario.
Mueve los datos de los controles a los campos del registro y realiza la actualización del mismo. Esta función no cierra el formulario.
Ejecuta el comando de botón Edición de maestro asociado a un control.
Parámetros:
- szIdCampoMaes: identificador del campo maestro.
- szIdRefForm: identificador del formulario que se mostrará para la edición del registro.
Ejecuta el comando de botón Localizar maestro asociado a un control.
Parámetros:
- szIdCampoMaes: identificador del campo maestro.
- szIdRefForm: identificador del localizar que se mostrará para la selección del registro.
Ejecuta el comando de botón Alta de maestro asociado a un control.
Parámetros:
- szIdCampoMaes: identificador del campo maestro.
- szIdRefForm: identificador del formulario que se mostrará para la edición del registro.
/**
* --------------------------------------------------------------------------------
* Habilita los controles del formulario
*
* @param {VFormDataView} formularioParam Formulario a procesar
* --------------------------------------------------------------------------------
*/
var habilitaControles = function ( formularioParam )
{
if ( formularioParam )
{
var control;
for ( var numControl = 0; numControl < formulario.controlCount(); numControl ++ )
{
control = formulario.control( numControl );
if ( control )
{
control.enabled = true;
};
};
};
};
/**
* --------------------------------------------------------------------------------
* Deshabilita los controles del formulario
*
* @param {VFormDataView} formularioParam Formulario a procesar
* --------------------------------------------------------------------------------
*/
var deshabilitaControles = function ( formularioParam )
{
if ( formularioParam )
{
var tiposEnabled = [ VMainWindow.WTypeDataView, VMainWindow.WTypeMdiView,
VMainWindow.WTypeWebView, VMainWindow.WTypeTabWidget,
VMainWindow.WTypeStackedWidget, VMainWindow.WTypeToolBox,
VMainWindow.WTypeSplitter, VMainWindow.WTypeGroupBox ];
var control;
for ( var numControl = 0; numControl < formulario.controlCount(); numControl++ )
{
control = formulario.control( numControl );
if ( control )
{
tipo = theMainWindow.widgetType( control );
if ( tiposEnabled.indexOf( tipo ) === -1 )
{
control.enabled = false;
};
};
};
};
};
Se trata de hacer que, en un formulario de altas de una tabla, el usuario introduzca un ID y ejecutar un manejador de evento que comprueba si existe la ficha. Si existe, editarla en el mismo formulario.
//Obtenemos el formulario en curso
form = theRoot.dataView();
//Obtenemos el idRef la tabla del formulario
var formInfo = form.objectInfo();
var tabla = formInfo.inputTable().idRef();
//Leemos el dato introducido en el campo ID del formulario
var ID = theRegisterIn.fieldToInt("ID");
//Buscamos el registro
var lista = new VRegisterList(theRoot);
lista.setTable(tabla);
lista.load("ID", [ID]);
//Si existe el registro, lo añadimos a la ficha
if (lista.size() > 0 )
{
newReg = new VRegister( theRoot );
newReg.setTable( theRegisterIn.tableInfo().idRef());
newReg = lista.readAt( 0 );
form.setRegister( newReg );
//forzamos el refresco de los controles del formuluario
theRoot.dataView().updateControls();
}
Podemos crear un único script en el inspector de scripts y en el formulario simplemente crear un manejador de evento JavaScript que lo incluya. Ejemplo:
#include "(CurrentProject)/edit fch.js"
De este modo, un único script valdrá para cualquier formulario de cualquier tabla.
Última actualización 2yr ago