Problema con combobox


([N4] gontorre) #1

Buenos días

Os cuento el problema que he tenido por si a alguien le ha pasado algo similar.

Tengo una tabla DETALLE con un campo (#RMA_TRAZA_STP) que es un enlace a maestro a la misma tabla DETALLE.
También tengo un campo de tipo enlace a estática (#RMA_SITUACION)

En un formulario tenía un combobox con contenido #RMA_TRAZA_STP.RMA_SITUACION.NAME. Cada vez que entraba en el formulario se quedaba colgado el vClient.

Cambiando el control a Edición alfabética funciona perfectamente. Como el campo es de sólo lectura me da igual poner un combo que una edición alfabética, pero me gustaría saber si es problema mío o del control combobox.

¿Alguna idea?

Un saludo

Gonzalo Torre


([N4] victorgt) #2

Juraria que en los combos a estatica sobra lo de .NAME, solo hay que poner el nombre del campo puntero…

Y cuidadin si usais el combo en un subformulario: la señal ON_CHANGE se dispara indebidamente si el valor seleccionado en el combo no es el primero…

Saludos.


([N4] gontorre) #3

Hola Victor

Quitando NAME también se queda frito el vClient.

Un saludo

Gonzalo Torre


([N1] wikan) #4

Buenos días @gontorre, estoy viendo que el combo se alimenta de la tabla estática del campo enlazado no?

Es posible que no está definidio el enlace, es decir valor 0, y te rompa con el combo por que no es capaz de resolverse mediente un enlace a un puntero? Sin embargo con un control de edición esto no da problema ninguno.

Haz la prueba, abre un formulario que el campo ya tenga valor, solo por comprobar si rompe.


([N4] gontorre) #5

Hola Manuel

Lo he probado también así y casca de todas formas.

Un saludo


([N3] pacosatu) #6

Hola Gonzalo.

Yo sí estoy sufriendo con la nueva 7.17 el hecho de que vClient rompe muy a menudo cuando haces algo que no encaja con lo preestablecido. Parece como si antes Velneo fuera inmune a estos errores y ahora no pudiera gestionarlos adecuadamente. El paso a QT5 quizás no está depurado completamente.

En cuanto a este caso, vClient rompe porque estamos usando el combobox de forma incorrecta. El control combobox está diseñado para editar campos enlazados a maestro o tabla estática. El campo #RMA_TRAZA_STP.RMA_SITUACION.NAME no lo puedes usar en el combobox porque no es puntero a nada. ¡¡VELNEO debería de advertir de este hecho en su filosofía de entorno asistido!!

El combobox siempre tratará de cargar al inicio del formulario todos los registros de la tabla Maestra o de la tabla Estática y en este caso con #RMA_TRAZA_STP.RMA_SITUACION.NAME no sabe qué registros cargar y me imagino que esto provoca el error no controlado.

Por lo tanto la solución aplicada es la correcta, es decir, asignar #RMA_TRAZA_STP.RMA_SITUACION.NAME a un control de Texto estático o de Edición alfabética (con Solo lectura = 1). Simplemente pretendes leer el campo NAME del valor estático.

En este caso y en otros varios, como el de los “valores malignos” en propiedades ocultas, Velneo debe seguir haciendo un gran esfuerzo de depuración del código C++/QT.

Un entorno muy asistido como es Velneo deja de tener sentido si no podemos controlar los errores que tiene el propio sistema asistido, porque la calidad del producto depende de la confianza que tengamos en lo que no podemos manipular. Un buen sistema de frenos ABS debe ser fiable 100% frente a uno manual.

Reivindico nuevamente una actualización urgente del entorno de desarrollo vDevelop, origen de muchos de los males que nos afectan.

Saludos
Paco Satué


([N4] gontorre) #7

Gracias Paco

Clarísima explicación. Ahora me quedo más tranquilo. No hay nada que más me preocupe que no saber por qué se produce un error.

Coincido completamente contigo que vDevelop debería evitar que se hicieran determinadas cosas, de la misma forma que al escribir código no te deja poner según que instrucciones dependiendo del origen en el que te encuentras. Creo que en la ventana de propiedades faltan muchos controles de ese tipo.

Un saludo