Power Builder - Buscar 2 registros ...

   
Vista:

Buscar 2 registros ...

Publicado por Katherine (223 intervenciones) el 30/06/2017 17:36:49
Muy buenos días, deseo buscar por 2 campos del datawindow (dw_bus) los campos son (unidad y tipo)
este es un codigo que busca por un solo campo, pero ahora como lo modifico para buscar por esos 2 campos.


dw_bus.setFilter("Pos(Upper(unidad), '" + Upper(sle_unid.Text) + "') > 0")


Esto lo deseo para no tener que digitar todo el contenido exacto del (campo 1 y campo 2) en los singlelineedit
para que los busque en el datawindow, solo deseo escribir algo que sea igual y los filtre presionando el botón buscar


Gracias espero me puedan ayudar
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.

Buscar 2 registros ...

Publicado por Leonardo Daniel A. (221 intervenciones) el 02/07/2017 02:14:17
hola no uses setfilter es mas lento......

usa SetSQLSelect...... puedes crear todos los parametros que quieras segun lo necesites

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// variable de instancia   
string is_sql_original
 
//Evento Open. obtener el SQL original que debe estar sin order y sin where
is_sql_original = adw_fuente.describe("datawindow.table.select")
 
 
// Evento Click del boton buscar
integer li_mes, li_year, ll_camion
string ls_sql, ls_where
 
dw_param.accepttext( )
 
li_mes = dw_param.getitemnumber(1, "mes")
li_year = dw_param.getitemnumber(1, "year")
 
ll_camion = dw_param.getitemnumber(1, "no_camion")
 
ls_sql = is_sql_original  // poner el sql original y agregar los wheres
ls_where = " WHERE gv.mes = " + string(li_mes) + " AND gv.year = " + String(li_year)
//ls_sql = ls_sql + ls_where
 
if ll_camion > 0 then
	ls_where = ls_where + " AND v.no_camion = " + string(ll_camion)
end if
 
ls_sql = ls_sql + ls_where + " ORDER BY gv.fecha desc"
dw_datos.SetSqlSelect( ls_sql )
if dw_datos.Retrieve() = 0 then
	f_mensaje("I", "No data found")
end if
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
Imágen de perfil de Leonardo Daniel A.

Buscar 2 registros ...

Publicado por Leonardo Daniel A. (221 intervenciones) el 02/07/2017 03:46:26
Hola se me olvido comentarte... para no usar WHERE en tus datawindows, deberas sustituirlos por uniones entre tablas


por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT gastos_cia.id,
         gastos_cia.fecha,
         categorias_gasto.nombre,
         gastos_cia.importe,
         gastos_cia.notas,
         gastos_cia.mes,
         gastos_cia.year,
         gastos_cia.id_cat_gasto
    FROM gastos_cia
         INNER JOIN categorias_gasto ON gastos_cia.id_cat_gasto = categorias_gasto.id_cat_gasto
 
Antes era
 
    FROM gastos_cia, categorias_gasto where categorias_gasto.id_cat_gasto = gastos_cia.id_cat_gasto

el INNER JOIN es cuando estas seguro que hay un registro en la otra tabla que le corresponde

LEFT OUTER JOIN es para decirle tome todos los registros de la tabla principal, aunque no haya registros en la otra tabla relacionada, en el sistema que estoy haciendo, cuando registro un viaje ( de trailer ) aun no se asigna chofer, asi que en en la consulta de viajes registrados uso esta JOIN puesto que no tiene chofer asignado, si usara el INNER, no me traeria el registro del viaje, porque no encontraria chofer...

el RIGHT OUTER JOIN es lo contrario al left, traer los registros de la otra tabla, esto segun el orden en el que pongas las tablas

suerte
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

Buscar 2 registros ...

Publicado por Katherine (223 intervenciones) el 03/07/2017 16:32:14
Gracias leonardo lo probre, te comento cualquier duda
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
Revisar política de publicidad