Limitar longitud en campo formulario


([N1] MATIAS) #1

Hola a todos,

quizás sea una tontería (probablemente esté pensando en cómo se hace en otras plataformas), pero no veo la forma de limitar el número de caracteres que puede introducir un usuario en un campo de texto de un formulario. Es decir, el campo está definido en la BBDD como Alfa64 de 39 de longitud (Máx 52 caracteres), pero sólo quiero que el usuario pueda introducir 50.

Hay una forma de limitar a 50 la entrada en ese campo de texto en el formulario???

Un saludo y muchas gracias


([N1] Daniel) #2

Buenas, en el formulario donde tengas el campo de edición agrega una conexión de evento que actúe sobre ese control, en señal seleccionas tecla pulsada y lanzas un manejador de eventos donde controlas la longitud del campo.

Saludos.


([N3] pacosatu) #3

Hola Matías.

Mediante Interface tienes 2 formas:

  • Usar la propiedad nativa Máscara
  • Usar la propiedad del API maxLength de la clase VLineEdit

La primera forma es bastante engorrosa por la pésima implementación que hace Velneo de la máscara. La segunda parece que funciona bien.

Saludos
Paco Satué


([N1] MATIAS) #4

Muchas gracias por vuestras respuestas, aunque realmente me sorprende que Velneo no haya contemplado incluir en las propiedades de los campos la longitud máxima permitida.

Sabéis si Velneo se ha planteado esta cuestión?

Un saludo y muchas gracias!


([N1] wikan) #5

Buenas.

Viene intrínseco con la definión del campo. En caso especiales como el tuyo que tienes que obviar esos dos carácteres de más tienes que recurrir a lo que comenta Paco.


([N1] MATIAS) #6

Hola Manuel,

No lo vería yo como un caso especial. Quizás para muchos campos da igual que su longitud sea 50 o 52, pero para otros es importante.
No sé si lo que digo es debido a una “deformación” por el uso de otros lenguajes, pero esto no lo había visto antes.
Quizás sea una “ventaja” de Velneo, pero yo lo veo como una pequeña desventaja.

Un saludo y muchas gracias


([N1] wikan) #7

Viene debido a la compresión de los datos para el campo. Por ejemplo tu campo Alfa64 solo te va a admitir mayúsculas y algunos carácteres (permite escribir minísculas pero las convierte)

Podrías usar un campo Alfa256 que si puedes restringir directamente el número de carácteres y además admite más tipos. Pero ocupa más espacio en disco.

Ya depende del caso de cada uno si compesa ocupar más por registro y tener la certeza de que solo son 50 o usar un tipo optimizado (y que te valga para almacenar lo que necesitas) y comprobar longitud.


([N3] pacosatu) #8

Hola Matías.

No busques explicación razonable a esta u otras carencias de Velneo. Con el tiempo te irás amoldando, aunque no te librarás de acordarte de vez en cuando del equipo de desarrollo al obligarte a usar el API para limitar el ancho de un campo Edit.

Yo pienso que son despistes que irán arreglando poco a poco, aunque de momento resulten a veces bromas pesadas.

En este caso por ejemplo: necesitas un campo Alfa64 de exactamente 50 caracteres. En la tabla por construcción admite hasta 52 caracteres, pero necesitas que en el interface solo se puedan introducir 50.

Siempre lo he dicho y lo repito: “Mucho más código nativo con QT/C++ y menos API”.
Esos Widgets originales de Velneo necesitan una ITV a fondo.

Saludos
Paco Satué


([N1] MATIAS) #9

No digo que no exista una razón para no implementar de “serie” la propiedad “longitud máxima”, pero que tal como voy descubriendo algunas cosas, veo que Velneo tiene características que son un auténtico avance con respecto a otros lenguajes y hay otras tan “básicas” como esta que me sorprende que no se hayan incorporado ya al diseñador de formularios.

Bueno, espero que lo tengan en la “libreta de no olvidar” para futuras actualizaciones de la plataforma.

Un saludo y muchas gracias de nuevo por vuestras respuestas.


([N1] cmquinterob) #10

Totalmente de acuerdo con [N2] MATIAS, yo requiero en varios campos que son alfabéticos restringirlos por condiciones de codificación a una lngitud específica y no veo cómo. Creo que Velneo debería considerar esa opción, ya que el tipo de campo no permite este seteo, así como permitir que se usen expresiones regulares directamente en la definción de los campos en el diseño de la BD y no mediante conexiones de eventos y manejadores.


([N1] leonardo daniel velazquez fuentes) #11

Hola, asi es te vas topando con cosas a las cuales uno no esta acostumbrado, yo estoy batallando porque necesito hacer una validacion en un campo fecha cuando pierde el foco, PEROOOOOO al abrir el calendario se dispara perder foco y es ilógico puesto que si el calendario pertenece al control edición fecha no debería pasar eso, por lo menos en ningún otro lenguaje me ah pasado.

[quote quote=47179]Totalmente de acuerdo con [N2] MATIAS, yo requiero en varios campos que son alfabéticos restringirlos por condiciones de codificación a una lngitud específica y no veo cómo. Creo que Velneo debería considerar esa opción, ya que el tipo de campo no permite este seteo, así como permitir que se usen expresiones regulares directamente en la definción de los campos en el diseño de la BD y no mediante conexiones de eventos y manejadores.

[/quote]