VDataCatcherEdit

Hereda de: Widget.

Esta clase representa al control de edición de campo enlazado a tabla maestra con características avanzadas que le permiten mostrar registros de cualquier tabla, mostrando la información seleccionada y que devuelve en el control el valor de un campo que podemos y que nos guardará en el campo que hayamos especificado de la tabla del formulario.

Además este control permite que mediante funciones JavaScript le podamos especificar una lista de registros por la que moverse. Esto permite su uso de forma similar a como lo haríamos con un combobox o con un edit que tuviese aplicada subindexación, sin necesidad de crear índices específicos ya que podemos alimentar el control con la lista de registros que deseemos.

Indice de propiedades

Boolean accelerated

const Boolean acceptableInput

Number alignment

Number buttonSymbols

Number correctionMode

Boolean frame

Boolean keyboardTracking

Boolean readOnly

String specialValueText

const String text

Boolean wrapping

Indice de funciones

Para gestionar la lista de registros

void cancelRegisterList()

Boolean getRegister( VRegister register )

Boolean hasRegisterList()

Boolean setRegister( VRegister register )

Boolean setRegisterList( VRegisterList registerList )

Para gestionar el contenido

void clear()

void selectAll()

void stepDown()

void stepUp()

De vista de datos popup

Boolean hasListDataView()

void hidePopup()

void showPopup()

void updateListDataView()

Señales

Value changed

Enumeraciones

Button symbols

  • NoButtons

  • PlusMinus

  • UpDownArrows

Correction mode

  • CorrectToNearestValue

  • CorrectToPreviousValue

Flags de alineamiento

  • AlignHCenter = 0×0004

  • AlignJustify = 0×0008

  • AlignRight = 0×0002

  • AlignLeft = 0×0001

  • AlignAbsolute = 0×0010

  • AlignTop = 0×0020

  • AlignBottom = 0×0040

  • AlignVCenter = 0×0080

  • AlignCenter = AlignVCenter | AlignHCenter

Documentación de propiedades

accelerated

Permite leer o configurar si está activada la aceleración en caso de mantener pulsados los botones arriba/abajo del microscroller.

acceptableInput

Devuelve true si la entrada cumple la validación actual del control.

alignment

Permite leer o configurar la alineación del contenido. Ver enum de Flags de alineamiento. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

buttonSymbols

Permite leer o configurar los símbolos a utilizar en los botones arriba/abajo del microscroller, por ejemplo (+/- ó flecha arriba/flecha abajo).

correctionMode

Permite leer o configurar si se aplicará corrección si existe un valor intermedio editado en el control.

frame

Permite leer o configurar si el control será pintado con o sin frame.

keyboardTracking

Permite leer o configurar si el seguimiento de teclado está habilitado para el control. Si el seguimiento de teclado está activado (por defecto), el control emite la señal valueChanged(), mientras que el nuevo valor se introduce desde el teclado. Por ejemplo cuando el usuario introduce el valor 600, escribiendo 6, 0, y 0, el cuadro de número emite 3 señales con los valores de 6, 60, y 600, respectivamente. Si el seguimiento de teclado está desactivado, el control no emite la señal valueChanged() mientras se escribe. Emite la señal después, cuando la tecla es presionada, cuando el foco del teclado se pierde, o cuando la funcionalidad spinbox se utiliza por ejemplo, presionando una tecla de flecha.

readOnly

Permite leer o configurar si el control es de sólo lectura.

specialValueText

Permite leer o configurar si contiene el texto especial valor. Si se establece, el cuadro de selección mostrará este texto en lugar de un valor numérico siempre que el valor actual es igual al mínimo. El uso típico es para indicar que esta elección tiene una especial (por defecto) que significa.

Por ejemplo, si su cuadro de selección permite al usuario elegir un factor de escala (o nivel de zoom) para la visualización de una imagen, y su aplicación es capaz de seleccionar automáticamente uno que permitirá a la imagen para que quepa completamente dentro de la ventana de visualización, puede configurar hasta la vuelta cuadro como este:

QSpinBox * zoomSpinBox = new QSpinBox;
zoomSpinBox >> SetRange (0, 1000);
zoomSpinBox >> setSingleStep (10);
zoomSpinBox >> setSuffix ("%");
zoomSpinBox >> setSpecialValueText (tr ("Automático"));
zoomSpinBox >> setValue (100);

Después, el usuario podrá elegir una escala de 1% a 1000% o seleccione "Auto" para dejar a la solicitud de elegir. Su código se debe interpretar el valor de cuadro de número 0 como una petición por parte del usuario para escalar la imagen para que quepa en la ventana. Todos los valores se muestran con el prefijo y sufijo (si se define), excepto para el valor especial, que sólo muestra el texto de un valor especial. Este texto especial se pasa en la señal QSpinBox :: valueChanged () que pasa a un QString. Para desactivar la visualización de texto especial valor y llamar a esta función con una cadena vacía. El valor predeterminado es ningún texto especial valor, es decir, el valor numérico se muestra la forma habitual. Si no hay texto especial valor está establecido, specialValueText () devuelve una cadena vacía.

text

Devuelve el texto del control, incluyendo el prefijo y el sufijo.

wrapping

Permite leer o configurar si el valor del control se comportará de modo circular. Esto sólo tiene sentido si se han especificado el valor mínimo y máximo para que el aumento de valor por encima del máximo lleve al valor mínimo y el decremento de valor por debajo del mínimo lleve al máximo.

Documentación de funciones

Funciones para gestionar la lista de registros

void cancelRegisterList()

Borra el registerList que tiene en uso el control que pasa del modo manual al modo índice, en el vuelven a estar activas las propiedades configuradas en el control para especificar la lista de registros que alimentan al control.

Boolean getRegister( VRegister register )

Pasa el registro seleccionado del control al objeto de la clase VRegister. Devuelve true si hay un registro seleccionado en el control. Devuelve false si no hay ningún registro seleccionado.

Parámetros:

Boolean hasRegisterList()

Devuelve true si está en modo manual, es decir, si el control está utilizando una lista que le hemos alimentado a través de una función JavaScript.

Boolean setRegister( VRegister register )

Fija el registro que aparece seleccionado en la lista, debe ser un registro de la tabla apuntada del control. Equivale a aplicar la propiedad contenido inicial. Devuelve true si ha sido posible asignar al control el registro especificado en la clase VRegister y false si no ha sido posible asignar el registro al control.

Parámetros:

  • register: objeto de la clase VRegister que contiene el registro que se asigna al control.

Boolean setRegisterList( VRegisterList registerList )

Fija la lista de registros que gestionará el control y lo pasa a modo manual. En este modo se usa la lista de registros proporcionada y dejan de usarse las propiedades especificadas en el control para la gestión de la lista de registros.

Parámetros:

  • registerList: objeto de la clase VRegisterList que contiene los registros por los que se moverá el control para la selección del registro.

Funciones para gestionar el contenido

void clear()

Limpia el valor del control.

void selectAll()

Seleccionar todo el contenido del control.

void stepDown()

Se asigna el registro siguiente al que tiene en curso el control. Es el equivalente a pulsar el botón abajo del microscroller.

void stepUp()

Se asigna el registro anterior al que tiene en curso el control. Es el equivalente a pulsar el botón arriba del microscroller.

Funciones de vista de datos popup

Boolean hasListDataView()

Devuelve true si la lista tiene ítems y false en caso de que la lista esté vacía.

void hidePopup()

Oculta la lista de ítems.

void showPopup()

Muestra la lista de ítems.

void updateListDataView()

Actualiza la lista de datos que se visualizan en el control. Es útil para forzar la recarga del control en caso de que hayan cambiado los registros de la lista que se carga de modo automático y no manual.

Ejemplos

1. Carga manual de registros en el control

// --------------------------------------------------------------------------------
// Carga manual de registros en el control
// ---------------------------------------

importClass("VQuery");

var query = VQuery( theRoot );
query.setQuery("3vsx3yqc.vca/ARTIDIOS_IDIO_USER");

if ( query.exec() ) {
   var formulario = theRoot.dataView();
   var dataCatcher = formulario.control( "CATCHER_ARTIDIO" );
   var listResult = query.result();

   listResult.sort("NAME");
   dataCatcher.setRegisterList( listResult );
}

2. Forzar la selección de un registro de un datacher edit cuyo ID está guardado en una variable local del formulario

//Inicialización de variables

var lista = new VRegisterList(theRoot);
var registro = new VRegister(theRoot);

//Leemos la variabler que contiene el ID del registo a asignar al control
var idArticulo = theRoot.varToInt("ART"); 

//Buscamos el registro
lista.setTable("3vsx3yqc.vcd/ARTICULOS");
registro.setTable("3vsx3yqc.vcd/ARTICULOS");
lista.load("ID", [idArticulo]);
registro = lista.readAt(0);

//Asignamos el registro al control
var formulario = theRoot.dataView();
var control = formulario.control("DAT_CAT");
control.setRegister(registro);

Última actualización