Manual para comprender los archivos FORMS de extensión .ui .
- CREADO POR: miguelajsmaps@gmail.com en https://github.com/Miguel-J/eneboo/wiki (YA NO EXISTE)
- FECHA CREACIÓN: 2014
- ACTUAL: miguelajsmaps@gmail.com en http://manuales-eneboo-pineboo.org/lenguajes-de-programacion-introduccion/lenguajes-de-programacion-forms/
- ULTIMA ACTUALIZACIÓN:Last updated: septiembre 20, 2021 at 8:04 am
Lenguajes de programación. FORMS
[Volver al menú de general de lenguajes] #2-estructura-de-un-modulo-por-tipos-de-archivos
Indice:
- Lenguaje que utiliza:
- Extensión del archivo: .ui
- Cómo poner un comentario:
- Tipos de archivos .ui:
- Estructura del tipo de archivo básico .ui:
- Características del tipo de archivo «máster…» .ui:
- Estructura del tipo de archivo menú .ui:
Haz clic aquí para volver al índice
0. LENGUAJE QUE UTILIZA:
- HTML – QT 3.3 (definido en la línea:
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
) - tutorial: https://doc.qt.io/archives/3.3/tutorial1-01.html
- tutorial: https://eluneg.wordpress.com /2008/07/14/tutorial-basico-de-programacion-en-qt-3/
- tutorial: http://doc.qt.io/qt-4.8/how-to-learn-qt.html
Haz clic aquí para volver al índice
1. EXTENSION DEL ARCHIVO:
- .ui
Se pueden abrir con «Wordpad» o con el editor «designer» (situado en la carpeta \bin dentro de Eneboo)
Haz clic aquí para volver al índice
2. COMO PONER UN COMENTARIO:
<comment>******************
**aquí escribes lo que quieras, para aclarar lo que hace ese código
*****************</comment>
Haz clic aquí para volver al índice
3. TIPOS DE ARCHIVOS:
- básico: definen la colocación de los campos del desplegable que sirve para la entrada de datos – registro
- master: definen la colocación de los campos de la tabla
- menu: define la colocación de los «master» y «básicos» en el menú del módulo.
Haz clic aquí para volver al índice
4. ESTRUCTURA DE ARCHIVO BASICO:
Subindice archivo basico:
- Localizacion en la pantalla y tamaño de la ventana emergente:
- Campo definido «FLFieldDB»:
- Letrero informativo «QLabel»:
- Campos vinculados «fieldName»:
- Campo de una tabla ajena «tableName»:
1. Localizacion en la pantalla y ancho y alto de la ventana emergente:
- Eso se define al principio en «geometry«:
1234567891011121314<class>formcategorias</class><widget class="QWidget"><property name="name"><cstring>formCategorias</cstring></property><property name="geometry"><rect><x>0</x><y>0</y><width>654</width><height>216</height></rect></property> - NOTA: el eje de coordenadas en este caso es DISTINTO al eje de los QLabels (que es la esquina superior-izquierda), aquí el 0,0 es el centro de la pantalla; por lo que:
- para subir la ventana emergente hay que dar valores negativos a la «x»
- para llevar a la izquierda la ventana emergente hay que dar valores negativos a la «y»
volver al sub-índice de archivo BÁSICO
Haz clic aquí para volver al índice
2. Campo definido-FLFieldDB:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<widget class="FLFieldDB"> <property name="name"> <cstring>fdbCodCategoria</cstring> </property> <property name="sizePolicy"> <sizepolicy> <hsizetype>1</hsizetype> <vsizetype>0</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>38</width> <height>24</height> </size> </property> <property name="maximumSize"> <size> <width>150</width> <height>32767</height> </size> </property> <property name="fieldName"> <string>id</string> </property> </widget> |
NOTA: Si el campo al que está relacionado ese «widget» no tiene definido una longitud en su correspondiente «.mtd», no mostrará el valor cuando se ejecute ese formulario «.ui» en Eneboo:
1 2 3 4 |
<length>100</length> |
volver al sub-índice de archivo BÁSICO
Haz clic aquí para volver al índice
3. Letrero informativo-QLabel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<widget class="QLabel"> <property name="name"> <cstring>CATEGORIA_PADRE:</cstring> </property> <property name="geometry"> <rect> <x>10</x> <y>110</y> <width>110</width> <height>20</height> </rect> </property> <property name="text"> <string>CATEGORIA_PADRE:</string> </property> </widget> |
- En «geometry» define dónde empieza el «letrero», siendo el centro de coordenadas 0,0 la esquina superior-izquierda de la ventana.
volver al sub-índice de archivo BÁSICO
Haz clic aquí para volver al índice
4. Campos vinculados-fieldName:
Los formularios de Eneboo están asociados (creo que desde el núcleo del programa) con la estructura de la base de datos. Así :
- los «master….ui» tienen tantas COLUMNAS como CAMPOS tiene su ÚNICA TABLA RELACIONADA, y no se puede mostrar campos de distintas tablas…la solución pasa por DUPLICAR esos datos REPLICANDO los campos de esas otras tablas en la «tabla de referencia del master.ui»….el problema es que aumenta el tamaño de la base de datos sin que aumente la información real…
- los formularios de ALTA o MODIFICACIÓN de registros están asociados a una tabla, con lo que los campos del formulario no deben tener una tabla relacionada. De hecho, si se les asocia la misma tabla el campo queda en blanco/anulado…
volver al sub-índice de archivo BÁSICO
Haz clic aquí para volver al índice
5. Campo de una tabla ajena-tableName:
- se añade al final de «FLFieldDB»:
12345678910111213141516<property name="fieldName"><string>name</string></property><property name="tableName"><string>ps_categorias</string></property><property name="foreignField"><string>id_parent</string></property><property name="fieldRelation"><string>id</string></property><property name="showAlias"><bool>false</bool></property>
volver al sub-índice de archivo BÁSICO
Haz clic aquí para volver al índice
5. ESTRUCTURA DE ARCHIVO MASTER:
El «master» es el archivo que define la estética y los botones que muestra la ventana que se abre al elegir alguno de los menús.
En el archivo .xml del principio del módulo es donde se define si el «action» que se ejecutará (al elegir uno de los menús) usará el «master» definido en Eneboo (el «master-copy«), o uno personalizado.
El «master-copy» sólo tiene los 5 botones «standar», que son: AÑADIR, MODIFICAR, BORRAR, VER y COPIAR.
Se suele usar un «master alternativo» para: añadir botones de IMPRIMIR, FACTURAR, ASOCIAR DOCUMENTOS, etc.
Haz clic aquí para volver al índice
6. ESTRUCTURA DE ARCHIVO MENU:
Dentro de la carpeta «FORM» de cada módulo hay un archivo .ui que se llama igual que el módulo (pero en su versión codificada, no en la textual: ejemplo «tesoreria» es «flfactteso»; «principal» es «flfactppal»; etc)
Ese archivo define el menú y el menú-desplegable (el de la +) y los puedes ordenar como te de la gana, sólo necesitas paciencia…yo tengo los más usados en el menu y el resto en el «+», con «separadores» para agruparlos por tipos…
Tienes que sacar de la mezcla el módulo «informes» y en la subcarpeta «forms» abres «flfactinfo.ui»
- a) los del «+» salen ordenados según los pongas en «
<menubar>
» (si, lo sé: es al revés de como aparecen en el programa….eso díselo al que lo programó…) - b) los directos salen ordenados según los pongas en «
<toolbars>
« - c) para separarlos le metes un «
<separator/>
«
Guardas los cambios y recargas el módulo. Luego reinicias el programa.
NOTA: los actions del menú deben estar definidos en el archivo .xml que está en la raíz del módulo…y tener el mismo nombre que aquí.
NOTA: Como Eneboo «memoriza» toda la mezcla ANTES de arrancar, TODOS los «action» DEBEN tener NOMBRES DIFERENTES. De lo contrario, aunque funcione (a diferencia de los scripts), Eneboo asigna el comportamiento de ese «action» a lo definido en el último que lee, por lo que a menudo se comporta distinto a como se había programado…