VAbstractDataView

Hereda de: Widget.

Heredado por: VAbstractListDataView, VFormDataView, VQmlFormDataView.

Clase base de todas las vistas de datos: de ficha, de lista y sin origen.

Indice de funciones

Generales

Boolean isInDialog()

Boolean isListType()

VAbstractDataView parentDataView()

Widget relativeControl( String szIDCompuestoControl )

VRoot root()

Number viewType()

De la API

VObjectInfo objectInfo()

De timer

Boolean isTimerActive()

void startTimer( Number milisegs )

void stopTimer()

Señales

Acción disparada

Inicializado

Pre inicialización

Timer

Enumeraciones

Tipos de vista

  • DataViewGrid = 0

  • DataViewForm = 1

  • DataViewSlot = 2

  • DataViewTree = 3

  • DataViewMultiView = 4

  • DataViewMultiViewTree = 5

  • DataViewFormBlock = 6

  • DataViewPrintPreview = 7

  • DataViewViewFlow = 9

  • DataViewListAlternator = 10

  • DataViewComboView = 11

  • DataViewListView = 12

  • DataViewQmlList = 13

  • DataViewAdvancedGrid = 14

  • DataViewQmlForm = 15

  • DataViewChart = 16

Documentación de funciones

Funciones generales

Boolean isInDialog()

Devuelve true si el objeto se visualiza en cuadro de diálogo y false si se visualiza en vista.

Boolean isListType()

Devuelve true si es un objeto de tipo lista de datos y false si es un control de ficha de datos o ninguno.

VAbstractDataView parentDataView()

Si nuestro objeto no se encuentra amalgamado dentro de otro objeto esta función devolverá null.

Si nuestro objeto está amalgamado esta función devolverá un objeto de la clase VAbstractDataView que representa al objeto dentro del que se encuentra amalgamado.

Esta función puede aplicarse recursivamente para movernos hacia arriba en la cadena de objetos amalgamados hasta encontrar un null que nos indique que ya estamos en el objeto de nivel superior de la cadena.

Widget relativeControl( String szIDCompuestoControl )

Devuelve un widget correspondiente al control del identificador compuesto especificado en el parámetro.

Parámetro:

  • szIDCompuestoControl: identificador compuesto del control. El formato de esta identificador es, por ejemplo, "objeto.objeto.control".

VRoot root()

Devuelve un objeto de la clase VRoot correspondiente al objeto en ejecución.

Number viewType()

Devuelve el tipo de vista. Ver enum de tipos de vista.

Temporalmente no podrán usarse los valores del enum y será necesario utilizar la clave numérica.

Funciones del API

VObjectInfo objectInfo()

Devuelve un objeto de la clase VObjectInfo correspondiente al objeto del dataview.

Funciones de timer

Boolean isTimerActive()

Devuelve true si el timer está activado y false en caso contrario.

void startTimer( Number milisegs )

Arranca el timer del objeto que emitirá una señal cada número de milisegundos especificados en el parámetro.

Parámetros:

  • milisegs: número de milisegundos entre emisión de señal.

void stopTimer()

Para el timer del objeto.

Ejemplos

1. Navegar por las vistas para obtener la cadena de vistas amalgamadas

// --------------------------------------------------------------------------------
// Analizar la vista actual para saber si está amalgamada dentro de otras vistas
// --------------------------------------------------------------------------------

// Se busca una vista cuyo padre sea nulo, ya nos indica que es la padre o principal
var sendaVistas = "";
var vista = theRoot.dataView();

while(vista != null)
{
    sendaVistas += vista + "\n";
    vista = vista.parentDataView();
};

// Se muestra la lista de vistas en orden ascendente: el 1º es el objeto de partida el último el principal
alert(sendaVistas);

En un manejador de evento de un formulario se pretende saber si está o no en modo cuadro de diálogo para ocultar un botón:

var formulario = theRoot.dataView();
var dialogo = formulario.isInDialog();

if (dialogo) {
    formulario.control("BTN_MAS_DAT").hide();
}

3. Activar timer y establecer su intervalo en un objeto de interfaz

En un formulario se pretende activar la señal señal timer y asignar como intervalo el valor asignado a una variable local del mismo:

var formulario = theRoot.dataView();
var miliseconds = theRoot.varToInt("MSC");

if (formulario.isTimerActive() == false) {
  formulario.startTimer(miliseconds);
}

4. Modificar variable local de un formulario desde un manejador de evento de un subformulario del mismo

//Obtenemos el formulario padre
var formPadre = theRoot.dataView().parentDataView();

//Modificamos la variable local MSJ del formulario padre
formPadre.root().setVar("MSJ", "HOLA");

//Forzamos el refresco del formulario padre
formPadre.updateControls();