Problema en tabla estática de más de 38 elementos


([N1] ebarbeito) #1

Hola, estoy intentando crear una tabla estática de 100 elementos para obtener un combobox que muestre números del 1 al 100. La tabla la llamo "importancia" y digamos que representa una prioridad o importancia que va del 1 (nada importante) a 100 (de lo más importante)

La documentación sobre la tabla estática dice:

Estática: Los elementos de la tabla estática se definen en edición, no siendo posible crear, modificar o eliminar estos registros en ejecución. Constan de un identificador referencia de forma unívoca los registros que componen la tabla estática y un nombre. El identificador tiene un byte por lo que podemos crear hasta 256 elementos. Además podemos asociar a cada elemento un objeto dibujo que podremos mostrar cuando presentemos el registro.

A la hora de ir añadiendo subobjetos Item de tabla estática, efectivamente me permite introducir 100 elementos (o más) y los identifica automáticamente del siguiente modo: 1, 2, 3, ..., 10, 11, 12, 13, ..., 100

Si os fijáis, a medida que va creando subobjetos, en los identificadores parece que utilice más de 1 byte (desde el identificador "10" hasta "99" emplearía 2 bytes, para "100" 3, etc.) pero realmente solo utiliza el primer caracter (byte) de cada identificador, con lo que los identificadores como "10", "89", etc. los trunca a "1", "8", etc. produciéndose solapamientos con los subobjetos "1", "8" reales.

He intentado utilizar caracteres alfanuméricos para los identificadores (pues solo me interesa la propiedad Nombre de cada subobjeto) pero únicamente es posible utilizar caracteres "_", [A-Z], [0-9]

Un control de formulario "ComboBox de texto estático" (algo así como los controles "Nombre de campo" y "Texto estático") lo suelo echar mucho de menos :( No solo resolvería esto sino otros problemas sencillos.

¿Hay solución posible que siga pudiendo utilizar un simple combobox? (otra solución, sin combobox, es cambiar el campo importancia a un tipo numérico -en vez de un enlace a tabla estática- y utilizar un control de edición con microscrollers)

Saludos y gracias


(Tony Diana) #2

¿001? ¿010? ¿100?


([N4] eic) #3

Hola.

Aunque no está documentado, puedes utilizar un combobox con una tabla normal, siempre que ésta tenga los campos ID y NAME con estos nombres, pues son los que usa para mostrar los datos. En versiones anteriores hubo algunos bugs con este uso, pero se solucionaron en la 7.4. 

En algunos casos en los que creo que es más cómodo para el usuario el uso de un combobox, y la tabla tiene pocos campos, y necesito poder actualizarlos en tiempo de ejecución, lo uso de esta manera.

Saludos,

Fran Varona

 


([N1] ebarbeito) #4

Adjunto una imagen por si pudiera aclarar. Saludos

[attachment=12288,1118]


([N1] ebarbeito) #5

Ups, no pude subirla antes y os adelantasteis! :) Gracias por las respuestas. Pruebo y os cuento!


([N1] ebarbeito) #6

Hola, disculpar la tardanza pero estoy en varias cosas a la vez... La solución de eic es buena (gracias!) pero la voy a tener que combinar con lo aportado por tondiana ya que añadiendo los elementos en este orden: 0, 1, 2, 3, ..., 10, 12, 13, 14, ... (he utilizado un bucle en el proceso ON_INIT_SERVER) en el formulario (en el combobox) me los muestra de este modo: 0,1, 10, 100, 11, 12, ..., 19, 2, 20, 21, 22, ... En fin, así que visualizaré números de tres cifras XYZ y ya está...

Gracias y un saludo :-)