Power Builder - Cambio Usuarios

 
Vista:

Cambio Usuarios

Publicado por Patricia (4 intervenciones) el 15/09/2006 00:48:42
Hola gente!!! Les cuento tengo un sistema implementado en el cual al momento de ingresar me carga una ventana de logeo en la cual me valida de la db y si el ingreso es correcto me habilita menu y otros me deja desabilitados, eso me anda bien. Ahora el tema es que me pidieron tener la posibilidad de cambiar de usuarios. Y lo unico que se me ocurre es cerrar la aplicación y volver a abrirla. Nose.
Saludos!
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:Cambio Usuarios

Publicado por Edgar (57 intervenciones) el 15/09/2006 02:24:11
no se te entiende muy bien lo q dices, pero lo q puedes hacer es crear una ventana nueva para cambiar de usuario, que te pida por supuesto el nombre y la clave, una vez validados los datos que llamas a tu funcion q te desabilita y habilia opciones de menu

espero que te haya ayudado y/o eso sea lo q deseas

Saludos Desde LIma Peru
Edgar
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:Cambio Usuarios

Publicado por Jorge (37 intervenciones) el 15/09/2006 06:24:25
Parecido hice yo. sin tener que reiniciar el programa cambiar de usuario. para eso cree un menu llamado sistema con un submenu cambio de usuario. al seleccionar esta opcion me desconecto de la base de datos y me muestra la ventana de login para ingresar nuevamente.
al abrir la ventana de login, deves verificar que no esté ninguna hoja abierta y puedes ocultar tu mdi con la funcion hide. w_mdi_frame.hide() para que solo te muestre la ventana de login.
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:Cambio Usuarios

Publicado por Jancarlo (890 intervenciones) el 15/09/2006 19:15:48
Si te sirvíese de algo acá te coloco un ejemplo para cerrar las ventanas hijos (previa confirmación del Usuario):

// Esto lo podrías colocar antes de abrir la ventana de cambio de usuario.
window lw_activa

lw_activa = w_mdi.GetActiveSheet()

do while isvalid(lw_activa)
if messagebox('Cerrar Ventana','La ventana '+lw_activa.title+ &
' se encuentra abierta.~nDesea cerrarla ?',question!,yesno!,1) = 1 then
close(lw_activa)
else
return
end if

lw_activa = parentwindow.GetActiveSheet()
loop

Espero te sirva de ayuda.

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

RE:Cambio Usuarios

Publicado por Patricia (4 intervenciones) el 15/09/2006 23:28:38
Gracias Jancarlo, te cuento que no me sirvio de mucho el codigo. Lo probe con MDI y ventanas de tipo child, popup y main. Pasa que w_mdi.GetActiveSheet()
no devuelve nada. Lo probe tambien abrir con opensheet pero no lo puedo usar estube leyendo las referencias del tema en preguntas anteriores pero no doy con el manejo de estas ventanas. Si podrias ampliar un poco mas los conceptos te lo agradeceria.
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:Cambio Usuarios

Publicado por Jorge (37 intervenciones) el 16/09/2006 00:47:00
GetActiveSheet() se utiliza para verificar si una hoja dentro del mdi está activa y acceder a los eventos de la hoja.

checa mi imagen.

http://forums.sybase.com/cgi-bin/webnews.cgi/mdi-hoja.GIF?cmd=itempart-4861&part=2&group=sybase.public.powerbuilder.spanish.general&utoken=21dc.450b2898.1804289383@temp:0_~2-a50be7ab0cf6af240de600/mdi-hoja.GIF

en la imagen, la hoja activa biene a ser Mantenimiento de artículos, en esta ventana tengo los eventos ue_insert, ue_update, ue_delete, ect. para acceder a estos eventos desde el menú lo hago con el suguiente código.
window lw_window
lw_window = w_mdi_frame.GetActiveSheet()
If IsValid(lw_sheet) then
lw_sheet.event ue_insert()
end If

// con este código, estoy verificando si tengo una hoja activa, y accedo a los eventos.
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:Cambio Usuarios

Publicado por Patricia (4 intervenciones) el 16/09/2006 02:09:06
Amigo programador. Entiendo la teoria que me estas diciendo, pero te cuento que no me funciona. A ese codigo lo estoy poniendo en una opcion del menu, utilizo open, utilize opensheet y no doy con la tecla si alquien puede sacarme esa espina porque estoy segura que es una tonteria. Al que pueda ayudar se lo agradezco. 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:Cambio Usuarios HELP

Publicado por Patricia (4 intervenciones) el 16/09/2006 03:04:05
La pregunta ahora es como hago para ver la ventana abierta con opensheet
la instruccion utilizada es opensheet(w_info, w_main)
donde w_info es la ventana que quiero abrir y w_main el mdi con el menu. La cuestion es que lo detecto con isvalid() que esta, incluso veo que algo cambia en el menu pero no logro ver nada. Si alguien puede ayudarme se lo agradecere. 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:Cambio Usuarios HELP

Publicado por Jorge (1 intervención) el 16/09/2006 04:22:37
Patricia.
has trabajado anteriormente con el OpenSheet , OpenSheetWithParm

para trabajar con estos parametros tu ventana principal tiene que ser mdi o mdi help y para que tenga este comportamiento de MDI no tiene que tener ningun control en la ventana principla. y creo que ese es el problema que tienes no puedes visualizar las hojas porque tienes algun control en tu ventana mdi.
utiliza:
OpenSheet(w_main, w_mdi,1,layered!)
OpenSheet(w_main,w_mdi,0,original!)
o simplemente OpenSheet(w_main,w_mdi)

si sigues con el problema te puedo enviar un workpace diseñado para que implementes tus sistemas.

saludos desde lima-peru
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:Cambio Usuarios HELP

Publicado por Patricia (1 intervención) el 16/09/2006 17:15:29
Sip! Tenes razon! Estaba usando un picture de fondo en el MDI que me impedia ver la ventana abierta. De todas formas esa limitación me mata, ya buscare otra forma de implementacion. Sin embargo me gustaria chequear otras formas de implementacion del sistema, si podes mandarmelo tambien te lo agradecere a [email protected], Igualmente gracias. 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:Cambio Usuarios

Publicado por Jancarlo (890 intervenciones) el 16/09/2006 16:50:51
Como dicen, primero verifica que la ventana w_main sea de tipo mdi o mdihelp, luego de eso que no tengas ningun control insertado en esta ventana (incluso este control sea invisible). Si cumples con todo eso entonces no importa desde que evento invoques este código tendria que funcionar normal.

window lw_activa

lw_activa = w_main.GetActiveSheet()

do while isvalid(lw_activa)
if messagebox('Cerrar Ventana','La ventana '+lw_activa.title+ &
' se encuentra abierta.~nDesea cerrarla ?',question!,yesno!,1) = 1 then
close(lw_activa)
else
return
end if

lw_activa = parentwindow.GetActiveSheet()
loop

Si aún sigues con dudas coméntanos para poder ayudarte.

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

RE:Imagen de Fondo

Publicado por Jancarlo (890 intervenciones) el 16/09/2006 23:35:52
Si aún deseas colocar una imagen de fondo en tu MDI aquí tienes una manera de hacerlo :

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=73&texto=Power+Builder&n1=229082&n2=2&n3=1&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

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