Establecer foco 7.17.1


([N3] GSI) #1

Hola he actualizado a 7.17.1, tengo un nuevo problema, cuando se abre un formulario y el foco esta en un campo numérico, por ejemplo el código del artículo aparece el cero, pero sin seleccionar con lo cual has de borrar el cero antes de ponerte a escribir. Me están volviendo loco los clientes, pues tienen que ir borrando el cero para poner el código de cliente, artículo, etc.


([N3] GSI) #2

Debo decir que ésto solo pasa cuando se abre el formulario de nuevas, es decir al establecer el foco por defecto, si ya una vez dentro tabulo a otro campo y vuelvo por ejemplo ya funciona perfectamente, pero claro la cuestión es que el comportamiento ha cambiado, ya que en 7,16 estableciendo foco tal y como lo tenia antes al abrir el formulario directamente aparecia marcado con lo cual al escribir cualquier cosa ya estaba resaltado y se borraba y ahora no.
Un saludo.


([N3] pacosatu) #3

Hola GSI.

Yo no he notado ese comportamiento. Tanto si el control Numérico tiene foco inicialmente, como si obtiene el foco pulsando la tecla TAB, el contenido se selecciona completamente.

Lo que sí es cierto es que este Control es bastante precario en algunas cosas, pero estamos en lo de siempre, QT determina la calidad de un Control y es cierto que a veces deja bastante que desear.

Lo más ergonómico sería que cuando un Control numérico está vacío mostrase 0,00 indicando al Usuario que la coma es el separador de decimales y que ese campo admite hasta 2 decimales. Cuando el Control numérico coge el Foco (mediante Tabulador o haciendo Click con el ratón) los caracteres 0,00 deben desaparecer para evitar que el Usuario tenga que borrarlos manualmente. Además, si el Control numérico tiene valor, deberíamos tener la posibilidad de elegir si el contenido se selecciona entero o no cuando hacemos click con el ratón.

La verdad es que son comportamientos estrafalarios del Interfaz, que cuesta creer que no hayan llegado a oidos de QT.
Y si nos metemos con las Máscaras de los campos de Edición alfabética, tengo para otro tanto.

De todas formas en tu caso, prueba con un formulario sencillo para ver el comportamiento. Vigila los eventos PRE,POS y SHOW del formulario, puede que provoquen ese comportamiento anómalo con el Foco.

Saludos
Paco Satué


([N3] GSI) #4

Yo estoy hablando de aplicaciones que llevan por lo menos 3 versiones funcionando y en procesos que no se han tocado hace muchísimo tiempo, lo que ocurre de forma detallada es lo siguiente:

Se abre un formulario de líneas de artículo en un albarán, pedidos, factura… se ejecutan evidentemente diversos procesos pre y post que terminan estableciendo el foco mediante

Interfaz: establecer foco xxxx

que funciona siempre que no sea un campo numérico, por ejemplo, el código del artículo, el foco se establece bien pero sin seleccionar el cero, es decir, tenemos que borrar el valor para introducir el nuevo pues al ser un campo enlazado al fichero, por ejemplo de artículos, no busca, esto ha funcionado bien siempre y no se ha tocado nada y falla en todos los casos iguales en la aplicación

Porque???


([N3] GSI) #5

Adjunto ejemplo que he pasado a soporte por si a alguien se le ocurre algo, de la barra de menu hay que ejecutar la 4ª opción que pone “Maestro y foco onshow NO funciona en modo TAB”, si dais de alta un registro vereis que el primer campo se queda el cursor pero sin seleccionar.

Error_foco_gsisoftware.rar (3.11 KB)


([N3] pacosatu) #6

Hola GSI.

Por lo que cuentas, el mal funcionamiento del foco se produce con Controles numéricos vinculados al ID del maestro. Ten en cuenta que en este caso no se usa la misma clase QT que cuando es un control numérico de un campo normal.

Realmente hay pocas aplicaciones que permitan editar directamente el puntero o enlace #ID tal como hace la tuya con el código de artículo. Normalmente este campo es de solo lectura o está oculto porque se controla automáticamnete por la Aplicación. Velneo está diseñado para navegar en un control vinculado a maestro a través del campo #NAME.

Por esta razón es probable que en soporte de Velneo no hayan detectado este fallo, y repito que siempre está detrás QT y en este caso las nuevas clases QT5.

Saludos
Paco Satué


([N3] GSI) #7

Seh, permiteme contradecirte, este ejemplo que he puesto también ocurre cuando vas a poner el código de cliente, nº de tarifa de precios, nº de almacén y en infinidad de sitios más que es necesario enlazar a un maestro, yo sólo he puesto lo del enlace a artículo porque creo que se ve más claro, pero me pasa en muchos sitios más de la aplicación.

Realmente no estamos editando el puntero al enlace solamente enlazando, no se si me explico. Gracias.


([N3] pacosatu) #8

Hola GSI.

Dices:

Realmente no estamos editando el puntero al enlace solamente enlazando
Para hacer esto usas un control de Edición Numérica cuyo contenido es el campo puntero a maestro #ID (léase código de cliente, nº de tarifa de precios, nº de almacén y en infinidad de sitios).

Ya sea para editar el #ID o simplemente enlazar con el maestro, el funcionamiento es el mismo y es allí donde falla el foco.

Por eso digo, que como NO es normal introducir un #ID directamente por el Usuario, el problema no se ha detectado con el cambio a QT5. Pero haber problema lo hay.

Saludos
Paco Satué


([N4] ns) #9

Hola a todos,

entonces la conclusión es que hay un cambio en los campos enlazados a maestro cuando reciben el foco, ¿no?. Ahora hay que borrar el cero…

Sea esto problema o no de QT, es otra piedrecita en el camino…

Como ha comentado Paco la edición de algunos controles deja mucho que desear… al final el usuario lo sufre y como no el programador!

saludos,
Santiago.


([N2] overBCN) #10

Hola Santiago,
Y porqué no pones en el POST-INI el contenido del campo #ID="" ?, siempre que esté vacío.
Saludos


([N3] GSI) #11

overBCN, esta idea ya la había probado, no vale porque es un campo numérico y siempre pone cero, por este camino yo por lo menos no he conseguido nada.

Actualmente en soporte lo están mirando pero hoy no me han dicho nada.

Se me ha ocurrido una idea pero me faltan conocimientos de js, he comprobado que si pulsas TAB y vuelves con MAY + TAB, al campo anterior, en este caso código Artículo, lo hace bien, es decir, cuando vuelves al campo anterior selecciona el cero.

He probado con las instrucciones js:
void setFocusToNext()
void setFocusToPrev()

pero así puestas tal cual no consigo que funcionen, alguien con mas experiencia en js sabe decirme si me falta algo o hay que usarlas de alguna forma que no veo para hacerlas funcionar, la idea seria mediante interfaz, como hasta ahora, establecer foco y con el evento ganar foco desencadenar mediante js un salto al campo siguiente y la vuelta al anterior.

Saludos y gracias de antemano.


([N4] ns) #12

Hola overBCN,

ni yo ni nadie quiere tener que hacer arreglos en código correcto y en producción desde hace años. Ni ponerse por una actualización a aprender nuevos lenguajes de programación.

Desde mi punto de vista velneo tiene que solucionar estos asuntos por el bien de sus subscriptores, que somos sus clientes. ¿O acaso tu empresa no intenta facilitarle la vida a sus clientes? En la mía, es una prioridad.

Saludos,
Santiago.


([N2] overBCN) #13

Totalmente de acuerdo @Santiago. Nada que decir.
Saludos