API de Velneo V7 para QML
API de Velneo V7 para QML
En este capítulo se explica el API de Velneo V7 para lenguaje QML.
VRoot
Esta clase da acceso al procesador del objeto V7 lo que nos permite interactuar con la lista de datos y realizar operaciones transaccionales.
Cargar un modelo auxiliar
Disponible en: Lista QML.
Si el modo de sincronización es “Manual”:
void LoadAuxModel( const QString& szNameModel );
Si modo de sincronización es “LISTA: Un modelo por cada ítem del modelo principal”:
VRoot.GetAuxModelFromArray(“repartoModel”,index);
Transacciones
Disponible en: Formulario QML.
Abrir transacción:
Sólo se admite una transacción activa por QML.
OpenTrans cuando esté disponible para QML de lista será global para el modelo principal y los modelos auxiliares.
bool openTrans( const QString& szTitulo ); // El título de la transacción se muestra en vAdmin.
¿Hay una transacción abierta?
bool isTransOpen();
Finalizar transacción
En caso de no hacer submit() la transacción se cerrará automáticamente al finalizar el QML.
bool submit();
Deshacer la transacción en curso
bool revert();
VRegisterIn
Esta clase da acceso a funciones que actúan sobre un registro.
Están directamente accesibles desde el Formulario QML, sin embargo, en Lista QML es necesario obtener un registro del modelo con la función GetRegisterAt sobre el que se aplicarán las funciones de VRegister.
Contenido de campos por identificador de campo
Disponible en: Lista QML y Formulario QML.
Obtener el valor de un campo por su identificador
Para los diferentes tipos:
String fieldToString( String szIDCompuestoCampo ); // Campos alfabéticos
double fieldToDouble( String szIDCompuestoCampo ); // Campos numéricos
int fieldToInt( String szIDCompuestoCampo ); // Campos numéricos (enteros)
QDateTime fieldToDateTime( String szIDCompuestoCampo ); // Campos tiempo (fecha y hora)
QDate fieldToDate( String szIDCompuestoCampo ); // Campos fecha
QTime fieldToTime( String szIDCompuestoCampo ); // Campos hora
¿Es vacío el contenido del campo? (false=No, true=Sí)
Boolean fieldIsEmpty( String szIDCompuestoCampo );
¿Ha cambiado el contenido de campo? (false=No, true=Sí)
No está operativo para campos de tipo objeto.
Boolean fieldHasChanged( String szIDCompuestoCampo );
Contenido de campos por número de campo
No están habilitados los contenidos de campos tipo objeto.
Obtener el valor de un campo por el número de campo
Para los diferentes tipos:
String fieldToString( Number nCampo ); // Campos alfabéticos
double fieldToDouble( Number nCampo ); // Campos numéricos
Number fieldToInt( Number nCampo ); // Campos numéricos (enteros)
QDateTime fieldToDateTime( Number nCampo ); // Campos tiempo (fecha y hora)
QDate fieldToDate( Number nCampo ); // Campos fecha
QTime fieldToTime( Number nCampo ); // Campos hora
¿Es vacío el contenido del campo? (false=No, true=Sí)
Boolean fieldIsEmpty( Number nCampo );
¿Ha cambiado el contenido de campo? (false=No, true=Sí)
No está operativo para campos de tipo objeto.
Boolean fieldHasChanged( Number nCampo );
Contenido old de campos por identificador del campo
Disponible en: Formulario QML.
No están habilitados los contenidos de campos tipo objeto.
Obtener el valor del campo en disco, por su identificador, aunque haya cambiado en memoria
Para los diferentes tipos de campo:
String oldFieldToString( String szIDPrimarioCampo ); // Campos alfabéticos
double oldFieldToDouble( String szIDPrimarioCampo ); // Campos numéricos
Number oldFieldToInt( String szIDPrimarioCampo ); // Campos numéricos (enteros)
QDateTime oldFieldToDateTime( String szIDPrimarioCampo ); // Campos tiempo (fecha y hora)
QDate oldFieldToDate( String szIDPrimarioCampo ); // Campos fecha
QTime oldFieldToTime( String szIDPrimarioCampo ); // Campos hora
Contenido old de campos por numero de campo
Disponible en: Formulario QML.
No están habilitados los contenidos de campos tipo objeto.
Obtener el valor del campo en disco, por su número, aunque haya cambiado en memoria
Para los diferentes tipos de campo:
String oldFieldToString( Number nCampo ); // Campos alfabéticos
double oldFieldToDouble( Number nCampo ); // Campos numéricos
Number oldFieldToInt( Number nCampo ); // Campos numéricos (enteros)
QDateTime oldFieldToDateTime( Number nCampo ); // Campos tiempo (fecha y hora)
QDate oldFieldToDate( Number nCampo ); // Campos fecha
QTime oldFieldToTime( Number nCampo ); // Campos hora
Modificación de campos por identificador
Disponible en: Formulario QML.
No están habilitados los contenidos de campos tipo objeto.
void setField( String szIDPrimarioCampo, String szText ); // Campos alfabéticos
void setField( String szIDPrimarioCampo, double dValor); // Campos numéricos
void setField( String szIDPrimarioCampo, int nValor ); // Campos numéricos (enteros)
void setField( String szIDPrimarioCampo, QDateTime dt ); // Campos tiempo (fecha y hora)
void setField( String szIDPrimarioCampo, QDate date ); // Campos fecha
void setField( String szIDPrimarioCampo, QTime time ); // Campos hora
Modificación de campos por numero de campo
Disponible en: Formulario QML.
No están habilitados los contenidos de campos tipo objeto.
void setField( Number nCampo, String szText ); // Campos alfabéticos
void setField( Number nCampo, double dValor); // Campos numéricos
void setField( Number nCampo, int nValor ); // Campos numéricos (enteros)
void setField( Number nCampo, QDateTime dt ); // Campos tiempo (fecha y hora)
void setField( Number nCampo, QDate date ); // Campos fecha
void setField( Number nCampo, QTime time ); // Campos hora
Estado del registro
Disponible en: Formulario QML.
¿Existe el registro en la base de datos? ¿Ya está dado de alta? (false=No, true=Sí)
Boolean exist();
¿Ha cambiado el registro en disco respecto a los datos en memoria? (false=No, true=Sí)
Boolean isModified();
¿Ha cambiado el contenido del campo en disco? (false=No, true=Sí)
Se puede pasar como parámetro el identificador o el número de campo.
Boolean isFieldModified( String szIDPrimarioCampo );
Boolean isFieldModified( Number nCampo );
Operaciones de disco
Disponible en: Formulario QML.
Lanzar una operación de alta de un nuevo registro
Boolean addRegister();
Lanzar una operación de moficiación del registro en curso
Boolean modifyRegister();
Lanzar una operación de baja del registro en curso
Boolean deleteRegister();
¿La operación se ha realizado con éxito? (false=No, true=Sí)
Boolean isOK();
Devuelve el código de error producido en la operación (0=No hay error)
Number errorNumber();
Obtener el mensaje de error producido en la operación
String errorMsg();
Acceso a valores de variables locales del objeto
Disponible en: Formulario QML.
String varToString( String szID ); // Variable alfabética
double varToDouble( String szID ); // Variable numérica
Number varToInt( String szID ); // Variable numérica (enteros)
QDateTime varToDateTime( String szID ); // Variable tiempo (fecha y hora)
QDate varToDate( String szID ); // Variable fecha
QTime varToTime( String szID ); // Variable hora
Acceso a variables de sistema
Disponible en: Formulario QML.
Number sizeList(); // Tamaño de la lista
Number posList(); // Posición del registro en la lista
Number currentPage(); // Página en curso (objeto informe)
Number lastPage(); // Última página (objeto informe)
String userName(); // Nombre del usario
String pathCacheClient(); // Senda del directorio de caché en el cliente
Boolean isAdministrator(); // ¿El usuario es súpervisor? (false=No, true=Sí)
Modelo
Funciones
Disponible en: Lista QML.
Sintaxis de funciones que usan el modelo: objetoQML.model.función
Obtener el nº de registro que hay en el modelo
int Count() const;
Limpia el modelo dejándolo sin registros
void Clear();
Ordenar los registros del modelo
bool Sort( const QString& szIDCampo, bool bInvertirLista, bool bProgressDialog = false);
Quitar un registro del modelo
void RemoveAtIndex( int nIndex );
Resetear el modelo
void ResetModel();
Leer el valor de la ficha seleccionada del modelo
int GetIndexSelect() const;
Fijar la ficha seleccionada del modelo
void SetIndexSelect( int nIndex );
Ejecutar un proceso
bool RunProcess( const QString& szIDProceso ); // szIDProceso = AliasProyecto@IdProceso
Por el momento AliasProyecto desde indicarse con el nombre del fichero en disco .vca.
Es importante fijar el elemento seleccionado en el modelo antes de ejecutar el proceso SetIndexSelect( index ).
Si el proceso es de ficha el QML le pasará la ficha seleccionada si el proceso es de lista le devuelve la lista de registros del modelo y también tendrá acceso a la ficha seleccionada de la lista.
Obtener un registro de la lista del modelo por el nº de índice
QObject* GetRegisterAt( int nIndex, bool bLocked ); // bLocked: 0=Sin bloqueo, 1=Con bloqueo
Documentación adicional
Imágenes
En el objeto image de QML para imagenes servidas por V7 se procesa la propiedad asynchronous : bool declarada en el objeto.
