keysec(27,20,,.T.) no hBrowse()

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

keysec(27,20,,.T.) no hBrowse()

Mensagem por gilbertosilverio »

Ola amigos,

Existe alguma maneira para fechar uma célula aberta na hBROWSE, tipo o keysec(27,20,,.T.) do READ.

Código: Selecionar todos


       @ 13,400 BROWSE oBrw2 DATABASE SIZE 960,150 STYLE WS_TABSTOP AUTOEDIT                  ;
            FIRST {|| XARDEX->( DBSEEK(xESTOQUE->(SUBSTR(DESCRICAO,1,49)), .F.) ) }           ;
            WHILE {|| XARDEX->(SUBSTR(DESCRICAO,1,49)) == xESTOQUE->(SUBSTR(DESCRICAO,1,49))} ;
            ON UPDATE {|| kardex_onPosChange() }

       oBrw2:nHeadHeight := 24
       oBrw2:alias       := 'xARDEX'
       oBrw2:nColumns    := 4
       Obrw2:freeze      := 1

       SELECT (oBrw2:alias)

       oBrw2:AddColumn( HColumn():New('Descrição', FieldBlock( 'DESCRICAO' ) ,'C',50, 0 ,.F.,0,0,,,,,,,,,)) // ESQUERDA
       oBrw2:AddColumn( HColumn():New('N Lote'   , FieldBlock( 'nlote' )     ,'C',20, 0 ,.T.,0,0,,,,,,,,,))
       oBrw2:AddColumn( HColumn():New('Validade' , FieldBlock( 'validade')   ,'C',10, 0 ,.T.,0,0,'99/9999',,,,,,,,)) // CENTRO
       oBrw2:AddColumn( HColumn():New('Qtde'     , FieldBlock( 'qtde' )      ,'N',06, 0 ,.T.,1,2,'9999999',,,,,,,,))

       oBrw2:acolumns[03]:footing    := [Qtde Total: ]
       oBrw2:acolumns[04]:footing   := TRANSF( fVLR01, [@E 999,999] )
       oBrw2:aColumns[03]:nJusFoot   := DT_RIGHT
       oBrw2:aColumns[04]:nJusFoot   := DT_RIGHT
O que preciso, e fechar uma coluna que foi deixada aberta depois de um determinado período, tem como?

Grato
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

keysec(27,20,,.T.) no hBrowse()

Mensagem por asimoes »

Eu não sei exatamente o que você quer fazer, mas o evento de tempo em hwgui é SET TIMER

Código: Selecionar todos

SET TIMER oTimer of oJanela VALUE 1000 ACTION {|| Acao() }
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

keysec(27,20,,.T.) no hBrowse()

Mensagem por gilbertosilverio »

Asimoes,

O que acontece, e que tem usuário, que principalmente no final do expediente, larga tudo aberto e vai embora, queria fechar a tabela que ficou aberta, dei como exemplo este caso, que e quando o pessoal ta acertando os itens em estoque, e isso as vezes deixa o item do arquivo preso.

Queria matar esta janela ou pelo menos liberar o arquivo, para que o item não fique preso para outro usuário poder usar.

Ja cansei de pedir para fecharem tudo antes de saírem, mais sabe como é... neguinho na hora de ir embora não quer nem saber, larga tudo e se manda... kkkk

Você tem algum exemplo pratico, baseado no set timer para fechar uma janela em execução apos um tempo de inatividade, ou isso não existe.

Grato
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

keysec(27,20,,.T.) no hBrowse()

Mensagem por asimoes »

Código: Selecionar todos

SET TIMER oTimer of oJanela VALUE 10000 ACTION {|| Acao() } // 10 segundos para inibir a coluna 1

FUNCTION Acao()

   oBrowse:aColumns[1]:lHide := .T. // .T. esconde, .F. exibe
   
ENDIF   
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

keysec(27,20,,.T.) no hBrowse()

Mensagem por asimoes »

Tenho exemplo sim de inatividade, espera um pouco que vou olhar nos meus arquivos.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

keysec(27,20,,.T.) no hBrowse()

Mensagem por asimoes »

Não testei , mas a ideia é seguinte se não houver atividade de teclado/mouse em 30 segundos as tabelas serão fechadas em seguida a janela.

Código: Selecionar todos

SET TIMER oTimer of oJanela VALUE 1000 ACTION {|| Inatividade( 30, oJanela )} //Aguarda 30 segundos para fechar se não houver atividade na jenela

FUNCTION Inatividade( nTime, oJanela )

THREAD STATIC nSeconds

   IF nSeconds = Nil
      nSeconds := Seconds()
   ENDIF

   IF Round( PegaInatividade(), 0 ) == 0
      nSeconds := Seconds()
   ENDIF
      
   IF Seconds() - nSeconds >= nTime
      DbCloseAll()
      oJanela:Close()
      nSeconds:=Seconds()
   ENDIF
    
   hwg_doevents()
   
RETURN Nil

#pragma BEGINDUMP
#include "windows.h"
#include "time.h"
#include "hbapi.h"
#include "hbapiitm.h"
#include "hbapifs.h"
#include "shellapi.h"
#include "shlobj.h"
#include "shlwapi.h"
#include "lmcons.h"
#include "commctrl.h"

HB_FUNC( PEGAINATIVIDADE ) 
{
   LASTINPUTINFO lpi;
   lpi.cbSize = sizeof (LASTINPUTINFO);
   GetLastInputInfo (&lpi);
   hb_retnd( ( DOUBLE ) ( GetTickCount() - lpi.dwTime ) / CLOCKS_PER_SEC ); 
}

#pragma ENDDUMP
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

keysec(27,20,,.T.) no hBrowse()

Mensagem por gilbertosilverio »

Asimões,

Muito obrigado,

Ja me deu uma luz de como proceder, vou testar e ver se mato mais este problema...


:-Y :-Y :-Y
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Responder