Buscar en un dw

Te comento. Tengo en una ventana 2 dw. El dw_1 lo tengo preparado para introducir datos, una especie de agenda. El dw_2 lo tengo como un listado alfabético de esos datos que introduzco en el dw_1. Lo que me interesa es que cuando pulso con el ratón sobre el dw_2 me cargue todos los datos en el dw_1. No sé si me explico bien. Todo me funciona bien hasta que borro algo. He probado la función que me diste find, pero me da errores, igual hay algo que pongo mal. Visualizado lo tuyo así como la ayuda de power, todos los ejemplos vienen con variable = numero fijo, y a mi me interesa que ese número lo coja de una variable. Para coger el número por el que buscar utilizo ls_cadena = This. GetItemnumber(row,"contador_usuario") .
1

1 Respuesta

107.925 pts. clipper todas sus versiones (manejo total) power...
Me gustaría tener un poco más claro lo de buscar en un datawindow, sin embargo permíteme aclarar algunas cosas.
La función ScrollToRow(), lo que hace es posicionar el apuntador visual del datawindow en la fila correspondiente, a diferencia del SETROW() que lo que hace es determinar la fila que tiene el puntero interno. (Recuerda que son 2 cosas diferentes)
Cuando borras un registro en un datawindow simplemente es reconfigurada automáticamente la intentar de las filas en este, por esa razón si borras la fila marcada con la intentar 2, sucede que la fila marcada con la intentar 3 pasa a tomar su lugar, y así todas las siguientes.
Si borras por ejemplo las posiciones 1,2,4 seguramente no estas borrando las posiciones correctas, pues luego de haber borrado la intentar 1, la 2 ya tomo su lugar y el cacao esta montado.
Para buscar en un datawindow (hablando de los valores ya existentes en el datawindow, no lo que se encuentran en la tabla)
Simplemente utiliza la función FIND()
Un ejemplo.
Digamos que estas buscando un registro en un datawindow que contiene la información de empleados, cuyo código de empleado sea igual a 3456
La instrucción seria.
dw_1.find('cod_empleado = 3456')
Esta función va a devolverte un valor numérico,
0 si no lo encuentra
-1 si ocurrió un error
-5 si el argumento incluido es errado
Y mayor a 0 que corresponde a el numero de la fila en donde se encuentra dicho registro.
Para ubicarlo simplemente utilizas la combinación de las funciones
dw_1.setrow(<row>) y dw_1.scrolltorow(<row>)
Una modifica el puntero interno no visual o de ubicación, y la otra ubica el registro visualmente.
Ejm.
LONG ll_row
ll_row = dw_1.find('cod_empleado = 3456')
IF (ll_row > 0) THEN
dw_1.SetRow(ll_row)
dw_1.ScrollToRow(ll_row)
END IF

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas