Moverse en un DW

Estoy desarrollando una aplicación en PB 6.5 y tengo un pequeño problema:
Estoy trabajando con un datawindows que me muestra dos columnas: Código de autor y Nombre del autor. Lo que necesito es que cuando presiono una letra el dw se desplace directamente al primer nombre de autor que comience con la letra que yo presioné.

2 respuestas

Respuesta
1
Puedes tener un campo de texto a parte donde ingreses los caracteres y que te seleccione la fila que corresponda con los caracteres que has escrito.
Para ello, en la caja de texto debes crearte un evento, por ejemplo, key_presed -> Event id (pbm_char)
Y en este evento tener el siguiente script:
Long ll_found_row
IF Len(caja_texto.text) > 0 THEN
ll_found_row = dw_tuya.Find("#2 >=~"" + caja_texto.text + "~"",1, dw_tuya.RowCount())
IF ll_found_row > 0 THEN // si encuentra datos nos posicionamos en la fila donde se encuentran
dw_tuya.ScrollToRow(ll_found_row)
dw_calles.SelectRow(0, FALSE)
dw_calles.SelectRow(ll_found_row, TRUE)
END IF
END IF
Si no te interesa tener una caja de texto a parte, es decir, lo que quieres es que cuando te pulsen dentro de la TU DW una letra se posicione en la fila que empiece por la letra pulsada, debes hacer algo parecido. Debes crearte un evento en la datawindow, por ejemplo, ue_tecla_pulsada -> Event id (pbm_dwnkey) y el scrpit será prácticamente igual al que te he puesto antes, con la diferencia de que tienes que captaurar la tecla pulsada, en lugar del texto de la caja de texto.
Respuesta
1
¿Necesariamente tienes que mostrar el código cuando muestras la tuDW?, debido a que si ocultas la columna código y solo muestras la descripción (que es lo que le importa al usuario final)PB te manejará los nombres como los deseas, previamente debes hacer un sort sobre el tuDW por esta columna para que funcione.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas