Power Builder - Mover posiciones en un mismo DataWindow

 
Vista:
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Mover posiciones en un mismo DataWindow

Publicado por Antonio (1271 intervenciones) el 31/10/2006 17:40:52
Hola a todos:

Tengo un pequeño problemita y necesitode su ayuda...

Tengo una ventana con un solo DataWidow en el cual muestro registros, necesito que el usuario de un clic en el registro que desee y lo recorra en la posición que el desea y asi guardar esa configuración de los datos.

¿Hay alguna forma de realizar esto ?

por ejemplo:

no registro descripcion
1 Almacen
2 Recepcion
3 Administracion

cuando el usuario da clic en el registro "Almacen" y sin soltar el mouse lo arrasta y lo coloca en la 3ra. posición quedando asi:

no registro descripcion
1 Administracion
2 Recepcion
3 Almacen

Si alguien conoce un método se lo agaradeceré muchísimo.
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:Mover posiciones en un mismo DataWindow

Publicado por Luis (50 intervenciones) el 31/10/2006 21:35:49
tengo una solucion para tu caso.

en el evento click de tu objeto dw

si tu objetodatawindow se llama dw_1 le mandas eso

if (GetRow() <> 0 ) then
ls_parametro= (dw_1.getitemnumber(GetRow(),"nombre del campo de dw" )
dw_1.reset( )
dw_1.Retrieve(ls_parametro)
end if

primera linea= verifica que si dio click a la datawindow
segunda linea = captura la posicion que trae la dw

1 Almacen
2 Recepcion
3 Administracion

si el usuario se posiciona en recepcion captura en valor que le colocaste en el codigo.

tercera linea // setea la dw
cuarta linea // le manda el nuevo parametro a la dw.

que tienes que hacer adicionalmente.

en la datawindow que creaste le mandas un argumento

ejemplo de lo que tendrias que hacer.

select valor1, parametro
from valores
order by valor1 = :ls_parametro

y cada vez que el usuario le da click al la dw se reordena.

espero me puedas entender.

Si no me escribes, saludos desde guatemala.
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:Mover posiciones en un mismo DataWindow

Publicado por Luis (50 intervenciones) el 31/10/2006 21:45:09
ahora que recuerdo hay un ejemplo de lo que quieres hacer, no lo he visto pero en la descripcion hace lo que necesitas.

http://powerbuilder.iespana.es/

ColSort.zip

Ordena por la columna clikeada
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:Mover posiciones en un mismo DataWindow

Publicado por amilcar (407 intervenciones) el 01/11/2006 14:41:45
hola, si no te entendi mal antonio, quieres hacer drag and drop en el mismo dw
si es eso seria algo asi

// voy a omitir la declaracion de varialbles locales, sorry
//uso una instance variable il_fila q almacela el row en el evento click

//en el evento dragdrop

/* Obtención del objeto bajo el puntero y control de lo obtenido */
ls_objeto_bajo_puntero = this.GetObjectAtPointer()
if ls_objeto_bajo_puntero <> "" then
li_posicion_tab = pos(ls_objeto_bajo_puntero, "~t")
ls_objeto = mid(ls_objeto_bajo_puntero, 1, li_posicion_tab - 1)

/* Control de si el objeto es la Descripción de Columna */
if ls_objeto ="personas_persona_nombre" then
/* obtengo el nro de la fila dragueada */
ll_fila = integer(mid(ls_objeto_bajo_puntero, li_posicion_tab + 1))
else
return
end if
else
ll_fila = 0
end if
if ll_fila<>il_fila then
ls_persona= this.GetItemstring(il_fila, "personas_persona_nombre")

this.setredraw(false)
this.deleterow(il_fila)

ll_fila = this.insertrow(ll_fila)

this.object.personas_persona_nombre[ll_fila]=ls_persona


this.setredraw(true)
end if
end if

espero te de una idea
saludos desde argentina
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