- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Checagem de usuario on-Line
×
Linguagem de Programação ADVPL
Perguntas Checagem de usuario on-Line
- piwtorak
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 2
- Obrigados Recebidos: 0
7 anos 5 meses atrás #32213
por piwtorak
Checagem de usuario on-Line foi criado por piwtorak
bom dia !
gostaria de saber como posso saber se um usuario JOAO está on line no sistema. Nao preciso saber
quem esta logado fora o joao ou mesmo senhas, etc... apenas se o joao esta logado, algo simples e objetivo
se alguem possuir este codigo agradeco.
abracos
gostaria de saber como posso saber se um usuario JOAO está on line no sistema. Nao preciso saber
quem esta logado fora o joao ou mesmo senhas, etc... apenas se o joao esta logado, algo simples e objetivo
se alguem possuir este codigo agradeco.
abracos
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
7 anos 5 meses atrás #32215
por kanaamlrr
Respondido por kanaamlrr no tópico Checagem de usuario on-Line
Eu tinha montado isso faz um tempo, talvez se você filtrar o array aUsuarios para pegar só o JOAO, resolva seu problema.
#Include 'Protheus.ch'
User Function MonitUser()
Private aOnline := {}
Private aUsuarios := FWSFALLUSERS()//allusers()
VerOnline()
DEFINE DIALOG oDlg TITLE "Monitor Usuários" FROM 0,0 TO 0,0 PIXEL
oDlg:lMaximized := .T.
// Cria Browse
oBrowse := TCBrowse():New( 0 , 0, oDlg:oWnd:nClientWidth/2,oDlg:oWnd:nClientHeight/2-45,,;
{'Usuário','Data','Hora','Tempo'},{300,50,50,50},;
oDlg,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, )
// Seta array para o browse
oBrowse:SetArray(aOnline)
// Adciona colunas
oBrowse:AddColumn( TCColumn():New('Usuário',{ || aOnline[oBrowse:nAt,1] },,,,"LEFT",,.F.,.T.,,,,.F.,) )
oBrowse:AddColumn( TCColumn():New('Data' ,{ || aOnline[oBrowse:nAt,2] },,,,"LEFT",,.F.,.T.,,,,.F.,) )
oBrowse:AddColumn( TCColumn():New('Hora' ,{ || aOnline[oBrowse:nAt,3] },,,,"LEFT",,.F.,.T.,,,,.F.,) )
oBrowse:AddColumn( TCColumn():New('Tempo' ,{ || aOnline[oBrowse:nAt,4] },,,,"LEFT",,.F.,.T.,,,,.F.,) )
ACTIVATE DIALOG oDlg CENTERED
Return
Static Function VerOnline()
aOnline := {}
ProcRegua(Len(aUsuarios))
For nx := 1 to Len(aUsuarios)
PSWOrder( 1 )
If PSWSeek( aUsuarios[nx][2], .T.)
//Incproc("Processando "+Alltrim(PswRet()[1,4]))
aLogon := FWUsrUltLog(PswRet()[1,1])
if(aLogon[1]==dDatabase)
nDuracao := SubtHoras(aLogon[1],aLogon[2],dDataBase,Left(Time(),5))
If nDuracao < 0
nDuracao := 0
EndIf
cDuracao := SUBSTR(STRZERO(nDuracao, 5, 2), 1, 2) + ":" + STRZERO((nDuracao - INT(nDuracao) )* 60, 2)
aadd(aOnline,{Alltrim(PswRet()[1,4]),dtoc(aLogon[1]),aLogon[2],cDuracao/*,aLogon[3],aLogon[4],aLogon[5]*/})
Endif
Endif
Next
aOnline := aSort(aOnline,,,{|x,y| x[1]<y[1]})
Return
Por favor Acessar ou Registrar para participar da conversa.
- piwtorak
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 2
- Obrigados Recebidos: 0
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Checagem de usuario on-Line
Tempo para a criação da página:0.091 segundos