La clase VDataViewDialog representa un objeto en ejecución de ficha o lista con interfaz. Nos permite ejecutar objetos de lista o ficha como rejillas, formularios, casilleros, etc. en modo diálogo. Construimos un objeto VDataViewDialog pasándole el objeto VRoot de entrada.
Funciones
Constructor
Inicialización
De operaciones
Enumeraciones
Runmode (Modos de ejecución)
RunInThisThread
RunInNewThread
RunInServer
Documentación de funciones
Constructor
VDataViewDialog( VRoot, root)
Crea una instancia del objeto de la clase VDataViewDialog. Debe ejecutarse la función setDataView() para asignarle el objeto a ejecutar.
Parámetros:
root: VRoot en curso del que se hará uso, normalmente theRoot.
Inicialización
void setDataView( Number nTypeObj, String szIdRefObj )
Fija el proceso que se asocia al objeto.
Parámetros:
nTypeObj: ver enum de tipos de objetos en la clase VObjectInfo.
szIdRefObj: identificador de referencia (IdRef=Alias_Proyecto/Id_Objeto) del objeto del proyecto.
Boolean setRegister( VRegister register)
Añade una ficha o registro al objeto. Esta es la forma de alimentar el registro de entrada del objeto.
Parámetros:
register: objeto de la clase VRegister del objeto.
El registro que se pasa al objeto si exec devuelve true contendrá la información actualizada tras haber sido procesado en el objeto.
No se genera un nuevo registro de salida (result), sino que se trabaja sobre el mismo VRegister de entrada.
Añade una lista de registros al objeto. Esta es la forma de alimentar la lista de registros de entrada del objeto.
Parámetros:
registerList: objeto de la clase VRegisterList del objeto.
La lista de registros que se pasa al objeto si exec devuelve true contendrá la información actualizada tras haber sido procesada en el objeto.
No se genera una lista nueva (result), sino que se trabaja sobre el mismo VRegisterList de entrada.
Funciones de operaciones
Boolean exec()
Ejecuta el objeto. El registro que se pasa al objeto si exec devuelve true contendrá la información actualizada tras haber sido procesado en el objeto. No se genera un nuevo registro de salida (result), sino que se trabaja sobre el mismo VRegister de entrada.
Ejemplos
1. Ejemplo que muestra un formulario de una película seleccionada con un localizador
// --------------------------------------------------------------------------------// Proceso sin origen que lanza un localizador de películas y si seleccionan una// la presenta en formulario en diálogo// --------------------------------------------------------------------------------importClass("VFinder");// Crea localizadorvar finder =newVFinder( theRoot );finder.setFinder("CINE/PELICULAS");// Ejecuta localizadorif ( finder.exec() ){// Si hay resultadosif ( finder.result() ) {// Crea el lanzador del formulario en cuadro de dialogo con el formulario de películasvar dlg =newVDataViewDialog( theRoot );dlg.setDataView(VObjectInfo.TypeForm,"CINE/PELICULA");// Le inicializa el resultado del localizador (una peli)if ( dlg.setRegister( finder.result() ) ) {// presenta formulario en cuadro de dialogodlg.exec(); }; };};
2. Lanzar un formulario pasándole parámetros y recogiendo valores de retorno
// -------------------------------------------------------------------------------------------// Abrimos un formulario al que le pasamos parámetros y del que recuperamos valores de retorno// -------------------------------------------------------------------------------------------//Manejamos una lista de registrosvar Registros =newVRegisterList(theRoot);Registros.setTable("49z6dcke.vcd/DUMMY");Registros.load("ID", [1]);if (Registros.listSize()){//Nos quedamos con un registro Registro =Registros.readAt(0);//Creamos el formulariovar formulario =newVDataViewDialog(theRoot);formulario.setDataView(VObjectInfo.TypeForm,"49z6dckf.vca/DUMMY")//Le pasamos un valor a la variable local del formulario (como manejador de objetos)formulario.setVar("TEXTO","Hola mundo");formulario.setRegister(Registro);//Mostramos el formularioif(formulario.exec()) {//Leemos el valor de una variable del formulario y lo mostramosalert(formulario.varToString("RESULTADO"));