Power Builder - filtros en datawindow

 
Vista:
sin imagen de perfil

filtros en datawindow

Publicado por Jonatan (30 intervenciones) el 29/01/2007 23:01:33
amigos foristas, tengo un pequeño incoveniente con los filtros de mi datawindow.
intento filtrar un dw_reporte por fechas,estado,cargo_adjunto y tipo de clientes
lo de las fechas y el cargo adjunto validan normal, el problema esta en los dos setfilter que he colocado despues, lo que hago primero es filtrar por el estado, y luego filtro por lo que haya escogido en tipo de cliente, pero al colocar un estado diferente al que se muestra por defecto, ya no se visualizan lo datos de confirmacion.
tal vez mi codigo en los setfilters esta errado o no se a que se debe
por favor deseo saber qye estoy haciendo mal
agradezco de antemano cualquier apoyo

//******************este es mi codigo***********************************************//

date ld_desde,ld_hasta
string ls_tipo_envio,ls_cod_ciudad,ls_estado,ls_cargo_adjunto,ls_tipo_cliente

IF dw_filtro.accepttext() = -1 Then Return

ld_desde = dw_filtro.object.desde[1]
ld_hasta = dw_filtro.object.hasta[1]
ls_tipo_envio = dw_filtro.object.tipo_envio[1]
ls_cod_ciudad = dw_filtro.object.cod_ciudad[1]
ls_estado = dw_filtro.object.estado[1]
ls_cargo_adjunto = dw_filtro.object.cargo_adjunto[1]
ls_tipo_cliente = dw_filtro.object.tipcliente[1]

If isnull(ls_cod_ciudad) Then ls_cod_ciudad = ''
ls_cod_ciudad = ls_cod_ciudad +'%'

if ls_cargo_adjunto = 'T' then ls_cargo_adjunto = ''
ls_cargo_adjunto = ls_cargo_adjunto + '%'

CHOOSE CASE ls_estado
CASE 'P'
dw_reporte.SetFilter(" IsNull( mv_acuse_remito ) and IsNull(mv_acuse_reportado_remito) and IsNull(mv_motivado_llegada_remito) ")
CASE 'C'
dw_reporte.SetFilter(" Len( mv_acuse_remito ) = 7 or Len(mv_acuse_reportado_remito) = 7 or Len(mv_motivado_llegada_remito) = 7 ")
CASE 'T'
dw_reporte.SetFilter("")
END CHOOSE
dw_reporte.filter()

//**********************************************************************************
CHOOSE CASE ls_tipo_cliente

CASE 'T'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'L'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'E'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'J'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'D'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'N'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'I'
dw_reporte.SetFilter("tipcliente = '"+ ls_tipo_cliente +" '")
CASE 'O'
dw_reporte.SetFilter("")
END CHOOSE
dw_reporte.filter()

//**********************************************************************************

If dw_reporte.retrieve(ld_desde,ld_hasta,ls_tipo_envio,ls_cod_ciudad,ls_cargo_adjunto) = 0 then
messagebox('No se encontraron registros','No se encontraron registros con los parametros ingresados')
end if
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

RE:filtros en datawindow

Publicado por Leopoldo Taylhardat (710 intervenciones) el 30/01/2007 00:12:25
Saludos desde Maracay, Venezuela.

Creo que te debo decir que te complicas mucho con eso...
Debieras en el datawindow definir argumentos y pasarle los parámetros con el Retrieve...

como ejemplo (no sé cuales son los tipos de datos...
fechas,estado,cargo_adjunto y tipo de clientes

ejemplo argumentos:
date fecha_desde
date fecha_hasta
long estado
string cargo_adjunto
integer tipo_cliente

colocas los valores a las variables y haces el retrieve...

retrieve(fecha_desde,fecha_hasta,estado,cargo_adjunto,tipo_cliente)

en el dw te metes en el sql y le defines los argumento en el orden que se los vas a pasar....
y luego en el WHERE seleccionas en el lado izquierdo la columna que utilizas de la tabla y en el derecho colocas el argumento...
ojo con las fechas... debes colocar
(fecha >= fecha_desde y <= fecha_hasta)

cuando cambias la selección de busqueda en la ventana haces el retrieve tomando los valores que correspondan a la nueva selección...
en el dw solo aparecerán los datos ya filtrados...
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

RE:filtros en datawindow

Publicado por Jancarlo (890 intervenciones) el 30/01/2007 00:20:51
De acuerdo con el amigo Leopoldo !!... cuando las cosas se comienzan a complicar con el uso de los setfilter, es mejor usar argumentos para luego hacer un retrieve y listo.

Es sólo una opinión .....

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

RE:filtros en datawindow

Publicado por Jorge (900 intervenciones) el 30/01/2007 14:38:28
Hola

De acuerdo con Leopoldo y Jancarlo

Lo mas saludable y limpio es que hagas retrieval arguments.
tal como te lo explico Leopoldo.

Ya que con los filtros se te complicara mucho.
Ya que efectuas un filtro y luego otros, pero deberias
tener implicito el primer filtro en el siguiente y asi...

Saludos. desde Argentina
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

SetFilter por Fecha en un Datawindow

Publicado por Jhonny Kahwati (1 intervención) el 10/10/2007 03:04:39
Hola amigos, estoy haciendo una aplicación y necesito realizar una búsqueda por fecha y para eso estoy utilizando la función SetFilter( ) para filtrar en un datawindow la fecha que busco, ustedes me pueden dar una forma de realizar una búsqueda por fecha y que me aparezca en un datawindow.

Les agradezco esa ayuda y el gran apoyo de ustedes, Gracias.
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

RE:SetFilter por Fecha en un Datawindow

Publicado por Enzo (1 intervención) el 12/12/2007 14:55:21
string C
C="m_fecha >=Date('"+Em_1.text+"') and m_fecha <=Date('"+Em_2.text+"')"
dw_1.setfilter( C)
dw_1.FILTER( )
dw_1.retrieve()
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

RE:SetFilter por Fecha en un Datawindow

Publicado por domino (1 intervención) el 26/07/2008 00:58:09
estas perdido ponte a estudiar y no preguntes
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

RE:filtros en datawindow

Publicado por Miriam Yasmin Palacios Garcia (1 intervención) el 15/04/2009 15:39:56
No se si entendi bien pero quieres filtrar dos datos en una dw primero uno y despues otro y quieres que te respete el primero para despues hacer el segundo, si es este tu problema los filter funcionan con el and para juntar los dos parametros.
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