Page 1 of 1
Caso realmente extraño
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 3:41 pm
by Ramon Paredes
Hola amigos del foro,
He estado experimentando un problema un tanto extraño, tengo un sistema que al ejecutarse lo primero que presenta es una pantalla para el login y password resulta de que hace unos dos dias aca cuando ejecutan la aplicacion aparece la pantalla inicial por unos segundos y deaparece o se cierra sin dar ningun mensaje de error ni ninguna pista, si suspendo la clave entra a la pantalla principal pero cuando abro un menu con pantallas estas quedan intermitentes, se presentan y desaparecen en segundos y ciclicamente,
Agradeceria cualquie orientacion al respecto, esto ya ha pasado en dos clientes y ni idea que podra ser,
Como siempre toda ayuda es bienvenida
Saludos desde Managua , Nicaragua
Ramon Paredes
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 4:13 pm
by karinha
Podrias muestrar el codigo y el dialogo? El dialogo és modal?
Saludos.
Gracias por responder
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 4:33 pm
by Ramon Paredes
Karinha,
Gracias por reponder el asunto es que uso ventanas sdi, el sistema en mencion esta funcionando sin problemas al ejecutarse presenta la pantalla de bienvenida con el get de login y clave de acceso, hay 4 maquinas conectadas a el ya que trabajan en redes , 2 funcionan sin problemas pero en 2 maquinas presenta la pantalla inicial y al segundo desaparece sin dejar rastros,
al inicio de mi programa principal tengo esto :
pAceptar := .F.
pAceptar = !Veri_clave()
IF pAceptar
CLOSE DATA
RETURN nil
ENDIF
CLOSE DATA
// aqui valido al usuario
y la funcion veri_clave esta asi :
//====================
FUNCTION VERI_CLAVE
//====================
local oDlg
local oFont1,oBmp
locaL Otxtmsg, mClave,oclave, mSiClave,oSiClave,mClaveg,oClaveg,mCancelar
Local oCar, oLetras[10], I
mCancelar := .F.
SELECT A
IF DLk_Abre("USUARIOS",.F.) = .F.
Close Data
Return .F.
Endif
Set Index To USUARIOS
SELECT B
IF DLk_Abre("C:\DATA1\LOGSIST",.F.)= .F.
Close Data
Return .F.
Endif
pUsuario := B->Nombre
oSiClave := B->SiClave
oCar = ""
For I = 1 To 10
oLetras[i] = asc(substr(LOGSIST->clave,I,1))+64
ocar = ocar + CHR(oLetras[i])
Next
If B->SiClave
oClave := oCar
Else
oClave := Space(10)
Endif
Do While .T.
pAceptar := .F.
DEFINE DIALOG oDlg RESOURCE 1
REDEFINE GET oUsuario Var pUsuario ID 101 of oDlg
REDEFINE GET oClave Var mClave ID 102 of oDlg PICTURE "@!"
REDEFINE BITMAP oBMP ID 160 OF oDlg FILE "KEYS.BMP" SCROOL ADJUST UPDATE
REDEFINE BUTTON ID 130 of oDlg ACTION (pAceptar:= .T. ,oDlg:End())
REDEFINE BUTTON ID 131 of oDlg ACTION (pAceptar:= .F.,mCancelar := .T.,oDlg:End())
ACTIVATE DIALOG oDlg CENTERED
If pAceptar = .F.
Return .F.
Endif
If pAceptar
If Empty(pUsuario)
MsgAlert( "Nombre del Usuario esta Vacio " )
loop
Endif
If Empty(mClave)
MsgAlert( "La Clave esta en Blanco" )
Loop
EndIf
Select A
If !DbSeek( pUsuario )
MsgAlert( "Usuario no existe en la Base" )
loop
Endif
popc01 := USUARIOS->OPC01
POPC02 := USUARIOS->OPC02
POPC03 := USUARIOS->OPC03
POPC04 := USUARIOS->OPC04
pInicial := Usuarios->Inicial
oClaveg := Usuarios->clave
oCar = ""
For I = 1 To 10
oLetras[i] = asc(substr(usuarios->clave,I,1))+64
ocar = ocar + CHR(oLetras[i])
Next
If alltrim(ocar) = alltrim(mClave)
SELECT B
RLOCK()
B->Nombre := pUsuario
B->Abre_Act := .T.
B->SiClave := .F.
B->Clave := space(10)
COMMIT
UNLOCK
Return .T.
Else
MsgAlert( "La Clave esta invalida" )
Loop
EndIf
Endif
Exit
Enddo
Return .F.
es realmente extraño, no hay error, no hay mensajes nada,y cuando suspendo este procedimiento de clave entonces a cualquier pantalla de los menues que entre sucede lo mismo en esas dos maquinas afectadas
ojala me haya explicado,
Saludes y agradecido
Ramon Paredes
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 6:18 pm
by karinha
DEFINE DIALOG oDlg RESOURCE 1
Ramon, pueste este dialogo por favor y intente renombrar el numero uno por un nombre proprio para el dialogo.
Gracias.
Saludos.
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 6:31 pm
by karinha
- Code: Select all Expand view
STATIC pAceptar := .F.
//pAceptar := .F.
pAceptar = !Veri_clave()
IF pAceptar
CLOSE DATA
RETURN nil
ENDIF
CLOSE DATA
// aqui valido al usuario
y la funcion veri_clave esta asi :
//====================
FUNCTION VERI_CLAVE()
//====================
local oDlg
local oFont1,oBmp
locaL Otxtmsg, mClave,oclave, mSiClave,oSiClave,mClaveg,oClaveg,mCancelar
Local oCar, oLetras[10], I
mCancelar := .F.
SELECT A
IF DLk_Abre("USUARIOS",.F.) = .F.
Close Data
Return .F.
Endif
Set Index To USUARIOS
SELECT B
IF DLk_Abre("C:\DATA1\LOGSIST",.F.)= .F.
Close Data
Return .F.
Endif
pUsuario := B->Nombre
oSiClave := B->SiClave
oCar = ""
For I = 1 To 10
oLetras[i] = asc(substr(LOGSIST->clave,I,1))+64
ocar = ocar + CHR(oLetras[i])
Next
If B->SiClave
oClave := oCar
Else
oClave := Space(10)
Endif
//Do While .T. //-> Ramon, no haga asi...
// pAceptar := .F. // STATIC
DEFINE DIALOG oDlg RESOURCE 1 //-> Mejor es un nombre para el dialogo
REDEFINE GET oUsuario Var pUsuario ID 101 of oDlg
REDEFINE GET oClave Var mClave ID 102 of oDlg PICTURE "@!"
REDEFINE BITMAP oBMP ID 160 OF oDlg FILE "KEYS.BMP" SCROOL ADJUST UPDATE
REDEFINE BUTTON ID 130 of oDlg ACTION (pAceptar:= .T. ,oDlg:End())
REDEFINE BUTTON ID 131 of oDlg ACTION (pAceptar:= .F.,mCancelar := .T.,oDlg:End())
ACTIVATE DIALOG oDlg CENTERED
If pAceptar = .F.
Return .F.
Endif
If pAceptar
If Empty(pUsuario)
MsgAlert( "Nombre del Usuario esta Vacio " )
RETURN( .F. )
Endif
If Empty(mClave)
MsgAlert( "La Clave esta en Blanco" )
RETURN( .F. )
EndIf
Select A
If !DbSeek( pUsuario )
MsgAlert( "Usuario no existe en la Base" )
RETURN( .F. )
Endif
popc01 := USUARIOS->OPC01
POPC02 := USUARIOS->OPC02
POPC03 := USUARIOS->OPC03
POPC04 := USUARIOS->OPC04
pInicial := Usuarios->Inicial
oClaveg := Usuarios->clave
oCar = ""
For I = 1 To 10
oLetras[i] = asc(substr(usuarios->clave,I,1))+64
ocar = ocar + CHR(oLetras[i])
Next
If alltrim(ocar) = alltrim(mClave)
SELECT B
RLOCK()
B->Nombre := pUsuario
B->Abre_Act := .T.
B->SiClave := .F.
B->Clave := space(10)
COMMIT
UNLOCK
Return .T.
Else
MsgAlert( "La Clave esta invalida" )
RETURN( .F. )
EndIf
Endif
Exit
//Enddo //-> No precisa de un looping
Return( .F. )
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 7:24 pm
by Antonio Linares
Ramón,
Has modificado algo recientemente en la aplicación ?
Has instalado algo nuevo en esos ordenadores que fallan ?
Tienen los antivirus al dia ?
Si la aplicación funciona bien en algunos ordenadores, entonces debe funcionar bien en todos, siempre que usen la misma configuración (versión de Windows, service packs instalados, etc.)
bueno, una solucion no la mejor pero.....
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Oct 29, 2008 11:42 pm
by Ramon Paredes
Joao,
segui tus recomendaciones y mi codigo se simplifico un poco pero el problema persistio en las maquinas , presentan las pantallas por un segundo y desaparecen,
Antonio:
No hemos hecho cambios en el software y las maquinas tienen la misma configuracion de siempre, son terminales de un servidor que tiene instalado windows 2003 server, lo raro es que en 2 funciona al 100 y en dos sucede este fenomeno.
Bueno para descartar un posible problema de virus se tomo uno de los equipos se formateo y reinstalo el windows y demas se configuro el sistema y su funcionamiento esta ok, todo parece indicar que puede haber sido ocasionado por algun virus, si alguien del foro tiene un problema parecido y tiene otra solucion pues seria formidable publicarla.
Agradezco a ambos por su pronta ayuda,
Saludes desde managua, nicaragua,
Ramon Antonio Paredes
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Thu Oct 30, 2008 12:18 am
by Antonio Linares
Ramón,
Me alegro de que lo hayas podido solucionar,