Problemas con los Buffer's de la DW

Estimado Antonio, tengo una DW que muestra una relación de nombres con un campo al lado que es de tipo CheckBox, para hallar más rapido los nombres que se quieren chequear, se teclea algunas letras en un caja de búsqueda y la Dw es filtrada, de tal manera que se reduce la lista de la DW, se halla el nombre y se le pone el Check, el problema sucede que al deshacer el filtrado, y ver la lista completa de nuevo todo lo que se ha marcado desaparece.
¿Cómo puedo solucionar este inconveniente?
De antemano gracias por la orientación que me puedas brindar.

1 respuesta

Respuesta
1
Si me permites proponer una solución, veo que lo que estas haciendo seguramente puede tener una solución, sin embargo esta puede que no sea la total, o bien en otras palabras, aparezca más adelante otra situación parecida.
Por lo que mi propuesta de solución se llama QUERY BY EXAMPLE. Seguramente te estarás preguntando "Y ESO QUE ES", este concepto nació con informix, luego de surgir los lenguajes de 4a. Generación. En fin, la solución esta basada en un datawindow, la cual contiene un select interno que puede abarcar más de una tabla, la idea de esto es que en las mismas columnas del datawindow puedas escribir tus condiciones, las cuales permiten colocar conectores lógicos como OR AND, LIKE etc., ademas de poder utilizar signos de comparación como = > < <> >= =<, con lo que esto permite ampliar el alcance de tus busquedas, practicamente el usuario dispone que es lo que quiera
para hacer que un datawindow cumpla con las condiciones de QUERY BY EXAMPLE para convertir un datawindow con estas caracteristicas has lo siguiente.
Luego después de asignar el objeto transaccional, añade estas lineas
dw_1.object.datawindow.ReadOnly = 'No'
dw_1.object.datawindow.QueryMode = 'yes'
esto te va a permitir ingresar las condiciones en las columnas del datawindow.
para localizar los datos segun condiciones, simplemente utilizas retrieve()
Todo esto lo puedes acondicionar en botones,
por ejemplo un boton para reset
el cual contenga las lineas
dw_1.object.datawindow.queryclear = 'Yes'
dw_1.object.datawindow.ReadOnly = 'Yes'
dw_1.Reset()
dw_1.object.datawindow.ReadOnly = 'No'
dw_1.object.datawindow.QueryMode = 'yes'
Esto primero apaga las opciones de query by example, hace un reset del datawindow y por ultimo enciende las opciones nuevamente.
luego puedes añadir un nuevo boton el cual contenga estas lineas
LONG ll_num_rows
dw_1.object.datawindow.ReadOnly = 'Yes'
dw_1.object.datawindow.QueryMode = 'No'
ll_num_rows = dw_1.retrieve()
Como veras el alcance puede aumentar, por ejemplo puedes incluir un nuevo botón con el cual puedas imprimir tu resultado,
La ventaja del query by example es que te reconfigura el where del select del datawindow, cada vez que haces una nueva búsqueda, sin embargo respeta o mantiene todo aquello que fue colocado en el momento de la creación del datawindow, por ejemplo digamos que tu aplicación es multi-empresa, y el datawindow recibe un argumento el cual refiere a la empresa, pues este argumento deberá formar parte de tu where, el cual el query by example respetara totalmente.
Espero esto pueda ser de utilidad para resulver tu problema
saludos
agdsys

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas