Power Builder - procedimiento de busqueda

 
Vista:

procedimiento de busqueda

Publicado por carlosR (4 intervenciones) el 01/02/2006 22:48:59
Saludos amigos forista..

Nota: esta rutina funciona, me trae el registro. que solicito.
////////////////////////////////////////////////////////////////////////////////////////////

// Buscar registros mediante campos clave: letra y cedula

long cedu (numerico)
string let (valores V, E)

cedu = long (sle_cedula.text)
let= string (ddplb_letra.text)

tab_1.tabpage_3.dw_percedu.retrieve(let,cedu)

///////////////////////////////////////////////

Ahora bien
necesito validar el MESSAGEBOX a la rutina de busqueda:

QUE ME BUSQUE EL REGISTRO Y SI NO LO ENCUENTRA QUE ME ARROJE EL MENSAJE "REGISTRO NO ENCONTRADO" Y ME PERMITA INTENTAR DENUEVO LA BUSQUEDA
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:procedimiento de busqueda

Publicado por amilcar (327 intervenciones) el 01/02/2006 23:00:17
hola, para chequear si encontro algo puedes usar

if tab_1.tabpage_3.dw_percedu.rowcount()=0 then
messagebox ..... //mensaje
cedu.setfocus() // pasas el focus al cedu
return
end if

espero sea lo q buscas
un saludo 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

RE:procedimiento de busqueda

Publicado por carlosR (57 intervenciones) el 02/02/2006 14:30:46
hola amigo gracias por responder coloque la rutina que me enviastes, pero no realiza bien el procedimiento. en el primer intento al ingresar un registro que no esta en la BD Me muestra el dw aun sin encontrar registro alguno, despues en ingreso un registro existente y me muestra el menssage.

te paso el codigo de nuevo con las correcciones que me disstes para ver si me pueds o me pueden ayudar amigos, de antemano gracias por su valiosa ayuda

cedu = long (sle_cedula.text)
let= string (ddplb_letra.text)

if tab_1.tabpage_3.dw_percedu.rowcount( )=0 then

tab_1.tabpage_3.dw_percedu.visible=true
tab_1.tabpage_3.dw_perceduc.visible=true
tab_1.tabpage_3.dw_percedu.retrieve(let,cedu)
tab_1.tabpage_3.dw_perceduc.retrieve()

else
messagebox("error","registro no encontrado")
tab_1.tabpage_3.dw_percedu.visible=false
tab_1.tabpage_3.dw_perceduc.visible=false
return
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

RE:procedimiento de busqueda

Publicado por amilcar (327 intervenciones) el 02/02/2006 21:00:45
el rowcount sirve para ver si el retrieve trajo algo, por lo tanto primero va el retrieve
seria algo asi

dw_1.retrieve(argumento1,argumento2) //haces el retrieve

if .dw_1.rowcount( )=0 then //verificas si trajo algo
messagebox("","no hay registros en el dw")
return
end if

dale el formato q necesites para tu caso, pero esa es la idea

un saludo 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

RE:procedimiento de busqueda

Publicado por cralosro (57 intervenciones) el 03/02/2006 14:33:23
Hola amigo ya intente la formula que me distes, pero aun no logro que funciones bien mi codigo: temando el codigo para ver si me puedes o alguin me puede decir donde esta el error??, gracias por la atencion y ayuda prestada.

te marque donde esta coloque el rowcount()

nota: como veras en el codigo tengo 2 dw : 1) dw_percedu y 2) dw_perceduc,
el dw_pecedu, es el que debe traer los datos si es encontrado el registro y habilitarme el segundo dw para anexarle datos, sino encuentra el registro debe mandarme el error y no mostrar ningono de los 2 dw.

///////////////////////

// Tabla Personas_Ceduladas
// Buscar registros mediante campos clave: letra y cedula

IF ddplb_condicion.text = 'Cedulado' THEN

cedu = long (sle_cedula.text)
let= string (ddplb_letra.text)

tab_1.tabpage_3.dw_percedu.retrieve(let,cedu)

==> if tab_1.tabpage_3.dw_percedu.rowcount( ) = 0 then

tab_1.tabpage_3.dw_percedu.visible=true
tab_1.tabpage_3.dw_perceduc.visible=true

tab_1.tabpage_3.dw_perceduc.retrieve()

// Tabla Personas_Contravencion
// Insertar registro en blanco

Il_fila = tab_1.tabpage_3.dw_perceduc.insertrow(0)

tab_1.tabpage_3.dw_perceduc.scrolltorow (Il_fila)
tab_1.tabpage_3.dw_perceduc.setfocus()
tab_1.tabpage_3.dw_perceduc.setcolumn(1)

else
messagebox("error","registro no encontrado")

tab_1.tabpage_3.dw_percedu.reset( )
tab_1.tabpage_3.dw_perceduc.reset( )
tab_1.tabpage_3.dw_percedu.visible=false
tab_1.tabpage_3.dw_perceduc.visible=false

sle_cedula.post setfocus()
return
end if
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

RE:procedimiento de busqueda

Publicado por wend (95 intervenciones) el 03/02/2006 20:11:59
Segun mi punto de vista solo esta mal la condición,ya que debería visualizar
los DWs si hay registros (mayor de cero).

// Tabla Personas_Ceduladas
// Buscar registros mediante campos clave: letra y cedula

IF ddplb_condicion.text = 'Cedulado' THEN

cedu = long (sle_cedula.text)
let= string (ddplb_letra.text)

if tab_1.tabpage_3.dw_percedu.retrieve(let,cedu) > 0 then

tab_1.tabpage_3.dw_percedu.visible=true
tab_1.tabpage_3.dw_perceduc.visible=true

tab_1.tabpage_3.dw_perceduc.retrieve()

// Tabla Personas_Contravencion
// Insertar registro en blanco

Il_fila = tab_1.tabpage_3.dw_perceduc.insertrow(0)

tab_1.tabpage_3.dw_perceduc.scrolltorow (Il_fila)
tab_1.tabpage_3.dw_perceduc.setfocus()
tab_1.tabpage_3.dw_perceduc.setcolumn(1)

else
messagebox("error","registro no encontrado")

tab_1.tabpage_3.dw_percedu.reset( )
tab_1.tabpage_3.dw_perceduc.reset( )
tab_1.tabpage_3.dw_percedu.visible=false
tab_1.tabpage_3.dw_perceduc.visible=false

sle_cedula.post setfocus()
return
end if
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

procedimiento de busqueda funciona

Publicado por carlosR (57 intervenciones) el 08/02/2006 15:14:29
saludos, disculpen por no responderle a tiempo, e tenido mucho trabajin jejje.. les comento que la rutina ya me funciona con las correcciones que me enviaron (wend) gracias por la ayuda amigos,
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