5 votos

QField - crear un formulario para múltiples, 1:n fotos

He leído el Soporte de QField sobre cómo añadir una serie de imágenes a un reportaje. También he leído otros hilos y preguntas y respuestas de GIS Stack Exchange sobre esto: por ejemplo, Configuración de QField para fotos 1:n . Sin embargo, todavía estoy confundido y no puedo conseguir que esto funcione correctamente y esperaba que alguien pudiera proporcionar una explicación detallada que pueda ayudar a otros en este proceso.

Paso 1: Creo la relación entre la "capa padre" referenciada (= Wetland Survey) y la "capa hija" referenciada (= Wetland_pics):

Properties, Add Relation - screen shot

No tengo del todo claro qué es realmente "uuid" aquí. Sé que es un identificador único universal, pero ¿es necesario? ¿Por qué no podría utilizar mi site.code? Me doy cuenta de que el uso de site.code() como valor por defecto da un error, donde uuid() da un identificador - por lo que el sistema debe reconocer uuid para esta función. Esta no es mi pregunta principal, pero entender esto parece importante en relación con las claves primarias (no estoy totalmente seguro de lo que son).

Paso 2. Construir el diseño del formulario

a. Arrastrar y soltar, establecer el uuid (relación con el padre):

uuid form layout

b. Arrastrando y soltando, establezca las imágenes de los humedales (relación de hijos):

Child relation form layout

Paso 3. Establecer la forma de arrastrar y soltar en la tabla infantil ('Wetland_pics') - establecer la ruta de acceso al tipo de widget de adjunto:

Child table form layout - Wetland_pics

Paso 4. Probando la forma:

Screen capture of the resulting form in QGIS

Screen capture of the resulting form in QField beta Windows version

El formulario se ve bien, pero no puedo seleccionar o escribir nada en los campos "Imágenes de humedales" en QGIS. Estoy probando el formulario en la versión beta de Windows de QField (segunda imagen) y se puede ver que me sale el mensaje " No se puede añadir la función de hijo: las claves primarias de los padres no están disponibles ". Esto es lo que me hace sospechar que esto tiene que ver con el uuid.

0 votos

Intente utilizar el campo "fid" de la capa Wetland Survey como clave externa para la relación en lugar de "uuid" y cambie el tipo "side.code.pic" a entero. Puede que me equivoque, pero el uso de puntos en los nombres de los campos no es una buena manera.

2voto

Rivers Puntos 19

En tu ejemplo, 'uuid' es un, nombre de atributo. uuid() es una función reconocida. Parece que has tomado el nombre de tu atributo 'site.code' y has añadido paréntesis al final con la esperanza de que devuelva algo. No lo hará, porque a menos que hayas definido la función site.code(), no existe.

En cuanto a la configuración 1:n .

Paso 2, la configuración del atributo 'uuid' del padre parece correcta. Pero no entiendo lo que está haciendo con el campo 'Fotos de humedales' - no es necesario que exista. Sus imágenes se muestran usando el atributo 'path' de su tabla hija - esto aparece como un subformulario en su formulario principal. Tal vez estoy confundido, pero esto me parece incorrecto.

Paso 3, su configuración para la "ruta" parece correcta. Pero no muestra su configuración para 'site.code.pic'. Esto debería ser un widget de "Referencia de la relación", con la relación establecida al nombre de la relación que usted creó en el Paso 1 (noto que usted tiene esto establecido para ser generado automáticamente. Eso está bien, así que mientras no haya muchas otras relaciones, el nombre autogenerado debería ser lo suficientemente fácil de reconocer y seleccionar de una lista desplegable inmediatamente debajo de la caja del tipo de widget (establecida como "Referencia de relación").

Paso 4. Site.code es nulo porque no ha establecido un valor por defecto válido (pero eso no afecta a las fotos 1:n). Observe también que en su subformulario 'Fotos de humedales' site.code.pic no está poblado. Debería rellenarse automáticamente con el mismo uuid que el de la encuesta sobre los humedales (véanse mis comentarios sobre el paso 3 anterior).

Si esto no ayuda, probablemente pueda arreglarlo bastante rápido si quieres compartir el proyecto.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X