Tengo una tabla con campos como: código cliente, pago realizado, fecha de pago, saldo anterior, nuevo saldo. Esta tabla la puedo ver actualmente en una ventana que posee un dw que me la muestra, la cuestión es que quiero crear un filtro para seleccionar los pagos de un código determinado, o los pagos en una fecha determinada. Todo en tiempo de ejecución. ¿Qué me sugiere usted?
Respuesta de hpmx
1
1
hpmx, Horacio. MX. Sybase ASE 12.5, ASA 8 y PB 9 principalmente. Ahora...
La forma de establecer un sort en tiempo de ejecución es a través del comando: dwcontrol.SetSort ( string format ) Y después aplicar el sort mediante: Dwcontrol. Sort() en donde string format puede ser del tipo: dwcontrol.SetSort("#2 D, #3 A") Dwcontrol. Sort() o dw_1.SetSort("nom_cli D, pat_cli A") Dwcontrol. Sort() Cualquiera de las dos formas funciona, aquí lo importante es como armar esta cadena sobre todo cuando deseas una combinación de campos y orden, lo cual seguramente te llevará a tener que ingeniarte de acuerdo a tu necesidad. Ok, para no desgastarnos en mensajes, te sugiero veas la aplicación de ejemplos de PB particularmente el de: Sort & Filter en la sección DataWindows, Runtime Modification Ahor que también podrías hacer lo siguiente: Event: doubleclicked // en donde nom_cli es la primera columna del dw y pat_cli la segunda if dwo.name = 'nom_cli' then // combina el orden de nom_cli A y pat_cli D cuando el evento dw_1.SetRedraw(false) // se ejecuta sobre la columna nom_cli dw_1.SetSort("nom_cli A, pat_cli D") dw_1.SetRedraw(true) end if if dwo.name = 'pat_cli' then // combina el orden de pat_cli A y nom_cli D cuando el evento dw_1.SetRedraw(false) // se ejecuta sobre la columna pat_cli dw_1.SetSort("#2 A, #1 D") dw_1.SetRedraw(true) end if dw_1.Sort() O bien y para finalizar: Si el parámetro de la función setsort es igual a null, entonces se abre la ventana de dialogo de default de PB en donde se puede hacer un sort múltiple y además con la posibilidad de modificar la expresión usada, desafortunadamente esto es muy técnico, poco recomendable para un usuario final pero no está demás que lo observes. string ls_null setnull(ls_null) dw_1.SetSort(ls_null) dw_1.Sort() Espero que esto te sirva para resolver tu problema y si no hay más dudas al respecto te pido de favor cerrar la pregunta un Saludo, Horacio --- PB v9, ASE v12, ASA --- Pd. Te pido de favor cerrar tu pregunta anterior