Power Builder - MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por Javier (75 intervenciones) el 20/02/2015 23:53:58
Buenas tardes, tengo una ventana con una DW grid donde hago consultas por rango de fechas y por usuario (osea por 3 campos), pero hubo la necesidad de utilizar un formato y lo construi en un DW COMPOSITE, pero mi codigo de busqueda (el que utilizo con el dw grid) no funciona con el composite:

date ld_fec1, ld_fec2
//string ls_nombre
ld_fec1 = date(em_3.text)
ld_fec2 = date(em_4.text)
dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "') And string(usuario) ='"+ trim(ddlb_user.text)+"'")

dw_1.filter()
dw_1.settransobject(sqlca)
dw_1.retrieve(ld_fec1,ld_fec2)

dw_1.setsort("fecha")
dw_1.sort()


al presionar el boton donde tengo mi codigo me sale el error: "EXPRESSION IS NOT VALID"
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

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por MMan (23 intervenciones) el 21/02/2015 00:03:23
EXPRESION INVALIDA

y haz revisado tu string ??

string filtro
filtro = "fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "') And string(usuario) ='"+ trim(ddlb_user.text)+"'"

msgbox(filtro) // o era messagebox ?

dw_1.setfilter (filtro)

--------------

And string(usuario) ='"+ .......... es asi ???

o solo

USUARIO = ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por Javier (75 intervenciones) el 21/02/2015 00:45:07
El primer string no lo utilizo, por eso le puse //.
Solo utilizó dos objetos EM donde pongo los rangos de fecha, y en el DDLB coloco el usuario y con esas 3 condiciones se filtra correctamente en un de gris, el problema es cuando quiero utilizar el mismo código pero con un DW composite.

Así es, And string(usuario), o al menos que en lugar de string sea otro tipo, haber si pudieras ayudarme
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

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por MMan (23 intervenciones) el 21/02/2015 00:53:27
y sin filtros.. si aparecen datos ???


-----------------
pruebalo por partes


dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "') ")


y despues


dw_1.setfilter ("string(usuario) ='"+ trim(ddlb_user.text)+"'")


-----------
funciona en ambos ? o ninguno ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por Javier (75 intervenciones) el 21/02/2015 00:58:37
Así es, sin filtros si me trae todos los registros.

Ok tienes razón, voy a probar asi por separado haber que pasa.

Muchas 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
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por Javier (75 intervenciones) el 23/02/2015 20:09:44
Lo intente por partes, y en la primera parte me salio el mismo error:

dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "') ")

Expresión is not valid, lo curioso es que solo me pasa con un dw composite, porque si ahí mismo pongo un dw grid NO me da problemas al usar el mismo codigo
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

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por MMan (23 intervenciones) el 23/02/2015 20:37:47
string ls_filtro = "fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "') "
messagebox (ls_filtro)


deberia salir algo asi

fecha >= date('23/02/2015') and fecha <= date('25/02/2015')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por Javier (75 intervenciones) el 23/02/2015 22:26:28
Ya hice eso pero me sale error al guardar los cambios:
Bad number of arguments form función: messagebox

Mira la imagen
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

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por MMan (23 intervenciones) el 24/02/2015 02:24:10
cuestion de sintaxis :))


messagebox ("", ls_filtro)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

MI CODIGO NO FUNCIONA EN UN DW COMPOSITE

Publicado por Javier (75 intervenciones) el 05/03/2015 06:21:22
estuve observando en otro programa que tengo y alguien me paso otro codigo para buscar en un DW Composite, es este:

1
2
3
4
5
6
7
8
9
10
11
datawindowChild i_dwc
 
date ld_fec1, ld_fec2
string ls_nombre
      ld_fec1 = date(em_1.text)
      ld_fec2 = date(em_2.text)
dwc_1.getchild("dw_corte",i_dwc)
i_dwc.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "')")
      i_dwc.filter()
	i_dwc.settransobject(sqlca)
	i_dwc.retrieve(ld_fec1,ld_fec2)


Entonces ese mismo codigo lo adapte a mi nuevo programa, ademas le agregue la busqueda por el otro campo y todo funciono muy bien...

Muchas gracias MMan por todo tu tiempo y apoyo ;) 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