Recuperar datos de un datawindows

Lo que deseo hacer es que cada vez que de click o recorra con las flechas direccionales a un dw, los datos de dicho registro se visualicen en los controles respectivos.
Respuesta
1
1. Arma un dw object con el formato que quieras
2. Pone el dw del paso 1 en un control dw en la ventana
3. Recupera los datos
4. Para moverte entre registros de la dw:
dw_1. Scrolltorow(ll_x) -> te lleva a la fila ll_x
entonces podes darle a ll_x los siguientes valores:
ll_x = 0 -> va a la primer fila
ll_x = dw_1.rowcount() -> va a la ultimaFila fila
ll_x = x -> va a la fila x
ll_x = dw_1.getRow() + x (donde x es > ó < 0) te mueve x filas desde la fila actual.
--
Otra opción: en el painter de la dw podes agregar botones de dw que cumplen esta funciones.
--

2 respuestas más de otros expertos

Respuesta
1
Imagino que tienes dos datawindows en el formulario un datawindows de tipo grid (dw_1) y otro datawindows de diseño libre (dw_2).
Lo que deseas que a medida que vas desplazándote por el dw_1, se actualicen los datos en el datawindows dw_2.
Vamos suponer que en el dw_1 tienes el código del alumno, paterno, materno y nombre, y en el dw_2 a tienes el ecord academisco del mismo.
Para poder realizar esto el dw_2 debe permitir un parámetro de ingreso, y en el dw_1 en el evento ROWFOCUSCHANGED ingresa este código:
auxid = dw_1.getitemstring(dw_1.getrow(), "codAlumno")
dw_2.SetTransObject(SQLCA)
dw_2.retrieve(auxid)
Si tienes dudas te recondere con gusto
Muchas gracias por tu pronta respuesta.
Yo ya había realizado el mismo script en el mismo evento donde me aconsejas, pero el problema que tengo es el siguiente:
Yo cargo el dw con datos temporales mediante el siguiente script:
Evento clicked en el control cb_agregar
integer nuevo
nuevo=dw_1.insertrow(0)
dw_1.scrolltorow(nuevo)
dw_1.setitem( nuevo,"alucodi", sle_4.text)
dw_1.setitem( nuevo,"alunomb", sle_1.text)
dw_1.setitem( nuevo,"aluapel", sle_2.text)
dw_1.setitem( nuevo,"aluedad",integer(sle_3.text))
Luego estos datos los grabo con el script:
evento clicked en el control cb_grabar
dw_1.update()
Pero cuando deseo agregar datos al dw (cb_agregar), luego de haber puesto el script al evento donde me indicas, es decir en el ROWFOCUSCHANGED, los datos de los controles sle se eliminan.
Estuve probando en el evento pbm_dwnkey del dw con el siguiente codigo:
long recupera
recupera=dw_1.getrow( )
sle_1.text=dw_1.getitemstring( recupera,'alunomb')
sle_2.text=dw_1.getitemstring( recupera,'aluapel')
sle_3.text=string(dw_1.getitemnumber( recupera, 'aluedad'))
sle_4.text=dw_1.getitemstring( recupera,'alucodi')
Pero me recupera el dato después de la segunda pulsada del teclado (es decir puede ser flecha arriba o flecha abajo) y no me responde cuando programo para el evento click del mouse es decir:
if keydown(keyleftbutton!) then
//mismo codigo anterior
end if
QUE puedo hacer en estos casos, por favor ayudame ademas como puedo hacer para que se resalte la fila donde estoy posicionado.
Muchas gracias
Vamos por partes
Para resaltar la fila donde estas posicionado debes escribir los sgts scripts:
1. En el rowfocuschanged escribe:
dw_1.selectrow(dw_1.getrow(), true)
2. En el rowfocuschanging:
dw_1.selectrow(dw_1.getrow(), false)
3. Para solucionar el problema cambia la ubicación de la linea scrolltorow, el código sera como sigue:
Integer nuevo
nuevo=dw_1.insertrow(0)
//dw_1.scrolltorow(nuevo)
dw_1.setitem( nuevo,"alucodi", sle_4.text)
dw_1.setitem( nuevo,"alunomb", sle_1.text)
dw_1.setitem( nuevo,"aluapel", sle_2.text)
dw_1.setitem( nuevo,"aluedad",integer(sle_3.text))
dw_1.scrolltorow(nuevo)
No olvides cerrar la pregunta
Respuesta
-1
Disculpame pero no entendí la pregunta... ¿me lo podrías aclarar?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas