Power Builder - Setfilter con valores numericos

 
Vista:
sin imagen de perfil
Val: 15
Ha aumentado su posición en 3 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Setfilter con valores numericos

Publicado por Carlos (8 intervenciones) el 29/08/2019 18:00:11
Hola a todos,

Yo soy bastante nuevo con este lenguaje (1 mes y algo), tengo la necesidad de hacer un filtro dinamico con un datawindow donde en una SLE escribo una descripcion y a medida que lo hago el filtro hace su trabajo, ahi toido perfecto cuando se trata de una columna texto, pero si lo hago con una numerica (codigo a barra) me da el siguiente error "expecting string expression", la cosa rara es que ese mismo codigo me deja hacer el trabajo directamente en SQL

donde en la ddlb tengo el nombre de la columna con la cual quiero filtrar y concateno el criterio

1
2
3
4
filtroDyna = ddlb_TipoF.text + " like '%" + sle_search.text + "%'"
 
dw_ref_indb.setFilter(filtroDyna)
dw_ref_indb.filter()

Repito con las columnas varchar no hay problemas pero con las columnas numericas tengo problemas. La misma sintaxis usada en SQL funciona siempre con numeros o texto.

Gracias.
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
Imágen de perfil de Leonardo Daniel A.
Val: 821
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Setfilter con valores numericos

Publicado por Leonardo Daniel A. (479 intervenciones) el 30/08/2019 04:43:53
Hola, yo lo que hacia era poner un RadioButton con 2 opciones y un SingleLineEdit. * Clave * Descripcion

y antes de hacer el filtro, pregunto

1
2
3
4
5
6
7
8
9
10
string ls_filtro
 
if rb_clave.Checked then
    ls_filtro = "columna_numerica = " + String( (Integer(sle_search.text) )
else
    ls_filtro = "columna_texto like '%" + sle_search.text + "%'"
end if
 
dw_ref_indb.setFilter(ls_filtro )
dw_ref_indb.filter(

ALGO ASI.... no estoy en mi Lap en este momento para revisar
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: 15
Ha aumentado su posición en 3 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Setfilter con valores numericos

Publicado por Carlos (8 intervenciones) el 30/08/2019 18:00:42
Hola y gracias anticipadamente,

quizas no fui muy claro pero me servia hacer el filtro dinamico (osea que conforme escriben el resultado en la Dw cambia), en las columnas que son de tipo varchar funciona de maravilla pero en las numericas (codigo de barras, etc) me da error, haciendo una revision a nivel de SQL,
he provado a hacer esta sintaxis que en SQL funciona
1
cast(codigobarra as varchar) like '%999%'

pero me da un error que dice que la funcion esta esperando que yo cierrre el parentesis (-.-')

1
2
3
miDw.setfilter (cast(codigoBarra as varchar) like '%" + ddlb_campo.text + "%'")
miDw.filter()
.

Probare otra cosa que tengo en mente como workaround….despues les informo.

Todavia 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: 14
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Setfilter con valores numericos

Publicado por Leopoldo Taylhardat (16 intervenciones) el 02/09/2019 15:33:29
Saludos

miDw.setfilter (string(codigoBarra) like "'%" + ddlb_campo.text + "%' ")

miDw.filter()

Debiera funcionar...

Nota: El "cast" es para la conversión de datos en la base de datos ASA, no sé si en versiones nuevas de PB la acepta...

Espero que te sirva.
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