Power Builder - Filtro con 3 criterios

   
Vista:

Filtro con 3 criterios

Publicado por Juan (206 intervenciones) el 23/01/2013 19:04:19
Hola :
Tengo un datawindow reporte, en el hay 8 registros de los cuales deseo filtrar por 3 campos de tipo String.
Uno se llana (jurisdiccion) alli se encuentran figurando las zonas de trabajo asignadas al trabajador, luego en el otro campo que se llama (quincenas) se muestra en que quincena esta laborando (ejemplo: 2sa. Quincena de Enero 2013) y finalmente tengo el campo (horario) en el figuran los 3 horarios establecidos por la empresa (ejemplo: de 08:00 a 12:00... etc)

Ahora yo he creado 3 :
ddlb_zona
ddlb_quincenas
ddlb_horario

cd_buscar

estos estan en la ventana, debajo del datawindow reporte (dw_reporte)

Deseo que al dar clic en el boton Buscar, filtre en el (dw_reporte) por los 3 criterios que he seleccionado en los DropDownLisBox.

Este es mi codigo pero me dice error "Expresion no valida", que estoy haciendo mal porfavor.

string ls_filtro
dw_reporteservicios.SETFILTER( "cia_jurisdiccion = '" + ddlb_cia.TEXT + "' AND quincenas LIKE '%" + ddlb_q.TEXT + "%'"+ "' AND horario LIKE '%" + ddlb_listado.TEXT)
dw_reporteservicios.SetFilter(ls_Filtro)
dw_reporteservicios.Filter()

gracias por su atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Filtro con 3 criterios

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 24/01/2013 15:20:17
Para qué haces un filtro, si no has hecho el Retrieve del DW?

Lo ideal es meterle al Select del DW los argumentos necesarios para que se haga el retrieve ya con la información que se quiere mostrar. Esto evita que el reporte se atrase presentando toda la información para luego filtrarla.

Ahora bien, si lo que necesitas es filtrar la información, seguramente te habrás percatado que en los ddlb.Text, lo que se muestra es el texto que identifica cada Item, no el código. Es decir, no es lo mismo decir cia_jurisdiccion="NOMBRE DE LA CIA" a decir cia_jurisdiccion='91992". Me explico?

O lo que muestas en el ddlb son los códigos y no las descripciones?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtro con 3 criterios

Publicado por juan (206 intervenciones) el 24/01/2013 16:30:06
Claro, derrepente no fui muy especifico.
En el open de la ventana esta :

dw_reporteservicios.Settransobject(sqlca)
dw_reporteservicios.Retrieve()

ahora no se mucho con lo que te refieres al Select pero es que trato de filtrar 3 campos del datawindow en un solo codigo y esto por que si filtro primero por un criterio, al hacer otro filtro dentro de esa seleccion, los suelta y filtra por el otro criterio, entonces ese filtro ya no me sirve:

En los ddlb.Text estan los textos unicos por los que se tengra que buscar en el dw no el codigo.
estos estan tal y conforme se estan guardando en el DW.

Claro no cambie cia_jurisdiccion por jurisdiccion (los campos se llaman asi.(jurisdiccion), (quincenas) y (horario )

Ahora te estoy corrigiendo esa aclaracion.

Este es el codigo:


string ls_filtro
dw_reporteservicios.SETFILTER( "jurisdiccion = '" + ddlb_cia.TEXT + "' AND quincenas LIKE '%" + ddlb_q.TEXT + "%'"+ "' AND horario LIKE '%" + ddlb_listado.TEXT)
dw_reporteservicios.SetFilter(ls_Filtro)
dw_reporteservicios.Filter()

me acepta guardar el codigo pero cuando corrro la aplicación me dice que expresion no valida en ingles.

Espero me puedas ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtro con 3 criterios

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 24/01/2013 17:07:37
Sí, la expresión no es válida, porque están mal empledas las comillas de esta.

Mete la expresión en una variable y ejecutas el proceso paso a paso, para que te des cuenta de cómo debieras poner las comillas.

Recuerda que los campos de texto deben ir entre comillas: '%Texto%' Tanto al inicio como al final y no deben haber dos comillas seguidas.

Con el SQL del Select me refiero a:

El DW tiene una consulta a la base de datos Select * From NOMBRE_TABLA Where (Condiciones)

Entre las condiciones puedes declarar argumentos para emplearlos en el Where. Así que al hacer el Retrieve puedes enviar los parámetros que necesitas filtrar de una vez:
Retrieve(ddlb_cia.Text, ddlb_q.Text, ddlb_Listado.Text)

Algo así.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar