Power Builder - obtener valores unicos de una columna de datawindow

   
Vista:

obtener valores unicos de una columna de datawindow

Publicado por ciberex (7 intervenciones) el 05/12/2011 21:02:23
como puedo obtener los diferentes valores de una columna de un datawindow
ejemplo, si el datawindow tiene la columna "color" y esa columna
tiene los renglones

azul
rojo
blanco
blanco
azul
rojo
rojo
azul

como puedo hacer para obtener:
azul
blanco
rojo
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

obtener valores unicos de una columna de datawindow

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 07/12/2011 21:14:42
Construye un Select DataWindow el cual hace la consulta sobre el campo Color de la tabla, algo como esto:

Select Distinct Color
From Tabla_Colores
Order by Color

Y usas este DataWindow, como un DropDownDataWindow en la columna en donde quieres que te salga la lista de colores.

La otra opción es:
Utilizando el primer DataWindow, que te da el resumen de colores, y usando un campo ddlb en el campo de colores, le asignas de forma manual los valores, de la siguiente forma:

ls_Values=''
For li_Registro=1 to dw_Lista_Colores
ls_Values+=dw_Lista_Colores.Object.Color[li_Registro]+' ~¨t' +dw_Lista_Colores.Object.Color[li_Registro]
Next

dw_Colores.Modify("Campo_Color.Values=~'+ls_Values+"~'")

El campo DropDownListBox, se puede usar en el datawindow y dejarlo si opciones, para llenarlo luego como te indico. Lo anterior lo puedes hacer en el Constructor del DW.

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

obtener valores unicos de una columna de datawindow

Publicado por ciberex (1 intervención) el 09/12/2011 15:34:15
Muchas gracias por responder JeinneH, como no estoy obteniendo los datos de tablas de un base de datos no puedo usar instrucciones SQL sobre el dw, la segunda opcion es interesante, sin embargo encontre una manera sencilla de hacerlo:

se ordena de forma ascending

dw_1.setsort("campo a")
dw_1.sort()

se filtra el campo con la expresion

dw_1.SetFilter("IsNull(campo[-1]) OR campo[-1] <> campo")
dw_1.filter()

listo!
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