Llenando combobox (js) ayuda


([N1] leonardo daniel velazquez fuentes) #1

Hola, necesito llenar un Combobox en un formulario sin origen…ya lo tengo hecho, pero me marca error de sintaxis, en la linea 12, "Script error: Expected ‘;’ , ‘;’. esta es la linea 12 var datos[];

//Accedemos al root del formulario en curso
form = theRoot.dataView();

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

// Recorremos lista de usuarios y verificamos cuales son Despachadores
var recDespachadores = new VRegisterList(theRoot);

recDespachadores.setTable("51ezrnpv.vcd/USUARIOS");

var datos[];

recDespachadores.load("GRUPOS_USUARIOS", datos);

for (var i = 0; i < recDespachadores.listSize(); i++)
{
	var despachador = recDespachadores.readAt( i );	
	if ( despachador.isOK() && despachador.fieldToString("GRUPOS_USUARIOS") == "D" )	
		combo.addItem( despachador.fieldToString("NAME"), despachador.fieldToInt("ID");	
}

([N1] wikan) #2

var datos = [];

Aunque viendo para lo que lo usas, te ahorra una variable.
recDespachadores.load("GRUPOS_USUARIOS", []);


([N1] leonardo daniel velazquez fuentes) #3

Hola gracias, funciono perfecto, elimine la variable datos… ahora necesito que al llenarse el combo se seleccione el elemento que coincida con el usuario logeado al sistema… tengo una variable global donde almaceno el nombre de usuario, ya que tambien se inserta en algunas tablas…

eh investigado, pero no me obtiene ningun dato de la variable

var usuario = theApp.globalVarToString("vAztecaDat/USUARIO");
alert( usuario, "usuario logeado");

creo que es la estructura de como llamar a la variable, ya lo intente con mayusculas, incluso con el ID del proyecto de datos y nada

[quote quote=44860]var datos = [];

Aunque viendo para lo que lo usas, te ahorra una variable.
recDespachadores.load(“GRUPOS_USUARIOS”, []);

[/quote]

([N1] wikan) #4

En priori no le veo error. Asegúrate con el debug que USUARIO tiene valor y que los planos de ejecución no te estén pasando malas pasadas.


([N3] pacosatu) #5

Hola leonardo daniel velazquez fuentes.

Te contesto aquí, aunque hayas cambiado de Hilo sin razón aparente.

¡¡Vaya lío que tienes!! para una cosa tan sencilla.
Revisa el siguiente link, que es básico para lo que estás haciendo.

La instrucción javascript queda —> theApp.globalVarToString("<alias de tu proyecto>/USUARIO").

Y por supuesto, como dice Manuel, comprueba en qué plano estás leyendo la variable Global.

Saludos
Paco Satué



([N1] leonardo daniel velazquez fuentes) #6

Graciasssss, ya funciono.! aun estoy muy verde, me falta mucho por aprender.! Gracias


([N4] Ramon Denuc) #7

Hola Leonardo daniel velazquez fuentes

Puedes poner como te quedo el código final.

Saludos


([N1] leonardo daniel velazquez fuentes) #8

Hola que tal, aqui te lo dejo :wink:

//Sacar usuario conectado - varianble global
var user = theApp.globalVarToString("51ezrnpv.vcd/USUARIO");

//Accedemos al root del formulario en curso
form = theRoot.dataView();

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

// Recorremos lista de despachadores
var recDespachadores = new VRegisterList(theRoot);
recDespachadores.setTable("51ezrnpv.vcd/USUARIOS");

recDespachadores.load("GRUPOS_USUARIOS", []);
// Agregar los despachadores con su clave al ComboBox
for (var i = 0; i < recDespachadores.listSize(); i++)
{
	var despachador = recDespachadores.readAt( i );	
	if ( despachador.isOK() && (despachador.fieldToString("GRUPOS_USUARIOS.DESPACHADORES")==true) )
		combo.addItem( despachador.fieldToString("NAME"), despachador.fieldToString("USUARIO") );				
}

combo.addItem("All Dispatchers", "ALL");

// Buscar usuario seleccionar el elemento correcto
var indice = 0;

//indice = combo.findData(user, 0);

indice = combo.findData("ALL", 0); // por default muestra todos los despachadores
combo.currentIndex  = indice ;

theRoot.setVar("DESPACHADOR", "ALL");

([N4] Ramon Denuc) #9

Muchas gracias, ahora lo repaso.

Saludos