Dw espejos sharedata

Tengo dos dw, pero quiero que uno de ellos ahga exactamente lo mismo que hago con el primero, es decir si en el primeo avanzo un registro, el segundo también debería hacerlo, bueno lo eh conseguido hacer con la propiedad sharedata
dw_1. Settransobject(sqlca)
dw_1.retrieve
dw_2.settransobjec(sqlca)
dw_2.retrieve()
dw_2.sharedata(dw_1)
y en el evento RowFocusChanged de los dos dw tmb eh programado las lineas q sirven para seleccinar mientras te desplzas
this.SelectRow ( 0, false)
this.SelectRow ( this.getrow(), TRUE )
¿La pregunta es?
- Si em desplazo con los botones o con las teclas de dirección en el primer datawindw, el segundo solo se muestra las selección hasta donde están los datos en pantalla de allí sigue avanzado la selección del segundo datawindow pero el los registros no se mueven, como hacer para que siga desplazándose la seleccione del registro del segundo data windows, bueno espero me entiendas y puedas responder

1 Respuesta

Respuesta
1
Si tienes dos Datawindows uno de Tipo Freeform para el ingreso de datos y otro de tipo Grid para mostrar los registros ingresados, entonces la cosa es sencilla:
//OJO: estoy suponiendo que dw_1 es de tipo freeform y dw_2 es de tipo grid.
PRIMERO: Debes conectar los dos datawindow con la base de datos y luego debes filtrar todos los registros en el datawindow tipo grid o dw_2 así:
//Este código lo pones en el Evento Open() de tu ventana
//conectamos los datawindos a la base datos
dw_1. Settransobject(sqlca)
dw_2.settransobject(sqlca)
//Mostramos todos los registros en el datawindow dw_2
dw_2. Retrieve()
SEGUNDO: Después de filtrar todos los registros en el dw_2, trabajaremos sobre este.
//Este código le pones en el evento RowfocusChanged() del Datawindow grid o dw_2.
long ll_codigo //variable que almacenara el identificador o codigo del registro.
if dw_2.rowcount()<>0 then
  ll_codigo=this.getitemnumber(getrow(),1) //sacamos el codigo del registro
  /*************************/
  dw_1. Retrieve(ll_codigo) //mostramos el registro con el código respectivo
dw_1. Scrolltorow(this. getrow()) //ubicamos el cursor sobre el registro
  /*************************/
  this.selectrow(0,false) 
  this.scrolltorow(currentrow)
  this.selectrow(currentrow,true) //pintamos de azul el registro seleccionado
  /*************************/
 end if
TERCERO: Para pintar el registro de azul al hacer click sobre algún registro debes hacer lo siguiente:
//Este codigo lo pones en el evento clicked() del datawindow dw_2
if this.rowcount()>0 then
 this.selectrow(0,false)
 this.scrolltorow(row)
//Cuando hacemos click sobre el registro se marca de color azul
this. Selectrow(row, true)
end if
////////////////////////////////////////////////////////////
Lo puedes adaptar este ejemplo a tu aplicación,
Con esto código al pulsar las teclas de direcciones de arriba y abajo podrás navegar
SUERTE

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas