GeneXus - Cargar Combo Dynamic en grillas .net

 
Vista:

Cargar Combo Dynamic en grillas .net

Publicado por Benjamín Rivera (1 intervención) el 21/07/2006 22:43:14
Amigos del foro,

quiero lograr lo siguiente:

En el detalle de una transacción, tengo dos atributos, Cuidad y provinica, necesito que el att provincia se cargue con las provincias que pertenecen a la cuidad que se selecciona previamente.

he probado con todo JSEvent, javasacript, procedimiento en el load, en el evento clic, pero resulta que esto no refresca como debería hacerlo, al hacer un clic en cuidad refresca toda la página e inclusive el atributo cuidad.

Con JavaScript, cargue todos los datos en un arreglo al momento de cargar la página, al momento de seleccionar la ciudad....nada....nada de nada....

necesito de su consejo, x favor ayudenme a solucionar este problema, que seguro, a más de uno de ustedes se les a presentado.

estoy desarrollando con:

Genexus 8.0U5
SqlServer2000
.net

Transacción Cuidad:
(IdCuidad)
NombreCuidad
DescripCuidad
(IdProvincia)
NombreProvincia
DescripProvincia

Transacción del problema Transporte:
(IdTransporte)
FechaTransporte
........varios att de Transporte
(IdDespacho)
IdCuidad //Combo Dinámico que muestra en nombre de la cuidad
IdProvincia //Combo Dinámico que muestra en nombre de la Provincia

Como se dan cuenta la idea es muy útil, pero por alguna razón genexus no me deja hacer este enlace entre los dos att.

desde ya muchas gracias.
un saludo y suerte.
atte.
Benjamín Rivera.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cargar Combo Dynamic en grillas .net

Publicado por Juan Garcia (53 intervenciones) el 22/07/2006 00:43:58
Busca en la GXDL de Genexus ahí hay un ejemplo para trabajar con Combo dinámicos, si esperas un poco te pongo el codigo de ejemplo, es muy sencillo, mas no lo he probado ni en java ni con .net

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar Combo Dynamic en grillas .net

Publicado por juan Garcia (53 intervenciones) el 22/07/2006 06:06:53
Este es un copy paste del GXDL espero te sirva para recargar correctamente los Combos dinámicos dependientes

The filters for the dynamic comboboxes are not implemented until version GXW 6ev1. That is to say, it is only possible if they are loaded with all records of a particular table. But there are cases in which the interest is to load them with specific records, sometimes depending on other attributes (for example, there is one Countries table and one of each country's cities. There is also a Customers transaction, where the Country and the City are entered. It would be useful if the City were a dynamic combobox, but loading only the Country's Cities that have just been entered). This can't be done now. It is foreseen to implement it in the future, possibly in the Evolution II.

The tip that may be used is not using a dynamic combobox, but a common one, and load it in some way:

If it is a work panel, an event IsValid of any variable accepted before may be programmed making the necessary navigations on it, and, using the AddItem method, charge the combobox. The Clear method must have been applied previously, to erase it. For egg.:

Event &CountryCod.IsValid
// loading of cities
&CityCod.Clear()
For each
where CountryCod = &CountryCod
defined by CityNam
&CityCod.Additem(CityCod, CityNam)
Endfor
Endevent

If it is a transaction, the problem is that For eachs cannot be put in the Events, so the way of doing it may be in the previous attribute IsValid event, calling a procedure passing arrays as parameters (besides the necessary attributes/variables for the filter). In the arrays it is loaded the code and description of the corresponding records. After calling the procedure with the values of the mentioned arrays, the combobox is loaded with the AddItem method. For egg.:

// This is necessary so as in Update the department value is shown when passing the code.

Event CusCod.IsValid
CityCod.clear()
CityCod.additem(CityCod, CityNam)
Endevent

//After obtaining the Country, the procedure that loads the arrays with the Country's Cities values is called.

Event CountryCod.IsValid
CityCod.clear()
call(PCrgDep, CountryCod, &CCod(),&CNam(), &Quant)
&I = 1
Do while &I <= &Quant
CityCod.additem(&CCod(&I), &CNam(&I))
&I = &I + 1
Enddo
Endevent
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar Combo Dynamic en grillas .net

Publicado por cknu (22 intervenciones) el 27/07/2006 15:08:56
Si, pero esto hace que tengas que hacer un refresh de todo el WP.
Creo que la única forma es hacerlo con JS en una precarga, o evitando que el evento refresh haga un query completo de todos los datos de la db y que sólo cargue el combo. (ver msg anterior).
Buscate algún snipet en js para hacer algo de esto y lo cargas en el START.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar Combo Dynamic en grillas .net

Publicado por Patricio (19 intervenciones) el 01/08/2006 00:13:29
Yo lo haria mas facil

Tendria las mismas Trn's que tu tienes...

Transacción Cuidad:
(IdCuidad)
NombreCuidad
DescripCuidad

(IdProvincia)
NombreProvincia
DescripProvincia

Y Crearia otra donde colocaria:

Transacción Cuidad:
*(IdCuidad)
NombreCuidad
DescripCuidad
*(IdProvincia)
NombreProvincia
DescripProvincia

Con esto cada vez que selecciono una ciudad me apareceran sus provincias respectivas...

Asi cada ciudad puede tener n provincias...

saludos

Patricio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar Combo Dynamic en grillas .net

Publicado por cknu (22 intervenciones) el 01/08/2006 15:07:16
Creo que no entendiste bien el problema. La cosa es que no quiere hacer un refresh de toda la página cuando se cambia el valor en un combo. Sólo que se actualice el combo con los nuevos valores evitando así la carga de todos los datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar