ComboBox en formulario sin origen - Seleccionar Posición X


([N4] Ramon Denuc) #1

Hola Foro, espero que esta noche los reyes os traigan muchos de vuestros deseos.

Tengo un ComboBox en un formulario sin origen que gracias a vosotros funciona muy bien, pero ahora necesito que una vez el ComboBox este rellenado con los datos, se posicione en la posición X por defecto sin que el usuario seleccione ninguno de los elementos que hay en el ComboBox, pero como siempre, y por muchos esfuerzos que hago, no termino de entender el JS, y eso que según alguno de vosotros, me ha comentado que no tiene mucha dificultad, debe de ser la edad.

Lo dicho, necesito de vuestra ayuda, por si alguno de vosotros me puede indicar en JS como puedo posicionarme en la posición X de un ComboBox, sabiendo previamente el valor de X.

Como siempre, muchas gracias por la ayuda.
Saludos


([N4] Ramon Denuc) #2

Se me olvidaba, este es el código que utilizo actualmente para asignar el dato leído del ComboBox:


// Capturamos el formulario
form = theRoot.dataView();

// Accedemos al control combo box. Se resuelve con el identificador del control
combo = form.control("COMBO_BOX_PARA");

//Obtenemos la posición del ítem seleccionado en el combo
 var sel = combo.currentIndex;

//Extraemos el valor del ítem seleccionado (en este caso, el ID del registro)
var codsel = combo.itemData(sel);

//Asignamos el dato leído a la variable local del formulario ITEM_SEL
theRoot.setVar("FILT_ITEM_NUM_DESTINARIO", codsel);


([N1] wikan) #3

Igual que lees la posición actual seleccionada.

combo.currentIndex = PosicionDeseada


([N4] Ramon Denuc) #4

Hola Manuel,

Disculpa mi ignorancia con JS, ¿pero donde y como va situado?

Saludos


([N1] wikan) #5

El código que pusiste es para obtener el elemento seleccionado.

Supongo que si lo que quieres es seleccionar uno tu mismo, lo harás en la carga del combo. Cuando sepas la posición del elemento que tienes que seleccionar.

Es decir, al final de hacer la carga del combo y conociendo su index claro.


([N4] Ramon Denuc) #6

Buenos días,

Siguiendo tus palabras ya he situado el comando en su sitio, pero tengo otra duda.

Como se pasa el valor a traves de una variable, es decir, si pongo el siguiente código sin ser una variable, el ComboBox se situa en el elemento que deseo.

combo.currentIndex = 3;

Pero si pongo la siguiente linea con una variable, no se situa en ningún elemento.

combo.currentIndex = ("ID_REG_TEMP");

¿Como se pasa el valor de una variable numérica a combo.currentIndex?

Saludos


([N4] carlitos) #7

Hola Ramón y Wikan,
¿se puede hacer eso con una tabla estática?

gracias


([N4] Ramon Denuc) #8

Hola Carlos,

Yo lo he conseguido hacer, lo único que me falta es saber como puedo pasar un valor de una variable numérica a combo.currentIndex, ya que mis conocimientos en JS son muy pobres.

Así, si que funciona:
combo.currentIndex = 3;

Así, no funciona:
combo.currentIndex = ("ID_REG_TEMP");

ID_REG_TEMP = Contiene el ID de la tabla de los Usuarios que me interesa situar en la tabla estática, ya que se el valor de antemano.


([N4] carlitos) #9

ok,
¿cómo rellenas el combobox de la tabla estática con js?
mis conocimientos de js también son limitados pero voy dándole caña.
gracias


([N4] Ramon Denuc) #10

Hola Carlos,

Repasa la siguiente entrada al foro que se hizo a finales de julio sobre los combobox en formulario sin origen:

http://velneo.es/foros/topic/combobox-en-formulario-sin-origen/

Saludos


([N1] wikan) #11

Igual que asignas un valor, en la misma clase VRoot está el método para obtener el valor de una variable local de Velneo.

var variable_javascript = theRoot.varToInt("VARIABLE_LOCAL_VELNEO");


([N4] Ramon Denuc) #12

Gracias Manuel, por tu ayuda.

Ya conseguí que el comboBox se rellenase con los usuarios de la Tabla, y que el combobox se situara en el ID que yo previamente le había pasado.

Dejo aquí el código que utilizo para lee el combobox:

// Capturamos el formulario
form = theRoot.dataView();
// Accedemos al control combo box. Se resuelve con el identificador del control
combo = form.control("COMBO_BOX_PARA");
//Obtenemos el ID del Usuario del Responder.
var IdUser = theRoot.varToInt("ID_REG_TEMP")
//Obtenemos la posición del ítem seleccionado en el combo.
var sel = combo.currentIndex = IdUser
//Extraemos el valor del ítem seleccionado (en este caso, el ID del registro)
var codsel = combo.itemData(sel);
//Asignamos el dato leído a la variable local del formulario ITEM_SEL
theRoot.setVar("FILT_ITEM_NUM_DESTINARIO", codsel);

Saludos