Solução pra cursor do tbrowse

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Solução pra cursor do tbrowse

Mensagem por JoséQuintas »

Chega a ser ridícula a solução do tbrowse.
Até pensei em usar o que muitos usam, que é o SET CURSOR OFF, mas....

Problema:
browse.png
cursor.png
O browse é temporário, KEYBOARD ESC pra sair fora, mas.... o cursor tá lá... parecendo que o browse ainda está ativo.

Solução:
cursor2.png
Bem simples: ao encerrar o tbrowse, posiciona na mensagem.
mdfe.png
Agora, só se procurar o cursor de propósito.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Solução pra cursor do tbrowse

Mensagem por JoséQuintas »

E mais ainda...
Como modifiquei a rotina de browse, pra uso dessa forma
as cores não deixam dúvida
browse.png
Nota:
Ok, já uso isso pra DBF faz tempo.
Mas é a primeira desse tipo pra uso com ADO.
Sempre detestei a idéia de usar SET CURSOR OFF.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Solução pra cursor do tbrowse

Mensagem por JoséQuintas »

Aproveitando....

Pra DBF até hoje tenho duas rotinas básicas de browse:
- uma pra quando é pesquisa
- uma pra quando é desse tipo

Pra ADO, simplifiquei mais ainda:

Agora é uma única rotina de tbrowse.
A de pesquisa monta a parte gráfica e chama a rotina única.
No caso desse tipo, é diretamente a rotina única, sem parte gráfica.

Nota:
Não me preocupei com isso, mas com ADO facilita se quiser adicionar scrollbars indicando posição atual.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Solução pra cursor do tbrowse

Mensagem por JoséQuintas »

Como resolvi a questão de atualizar o browse:

Código: Selecionar todos

   WITH OBJECT cnSQLBrowse
      :cSQL := "SELECT JPMDFDET.*, JPCADASTRO.CDNOME" + ;
         " FROM JPMDFDET" + ;
         " LEFT JOIN JPCADASTRO ON JPCADASTRO.IDCADASTRO = JPMDFDET.MDCLIENTE" + ;
         " WHERE MDMDFNUM = " + NumberSQL( mIdMdfCab )
      :Execute()
      BrowseADORC( nRowTBrowse, 0, MaxRow() - 3, MaxCol(), @cnSQLBrowse, oTBrowse,,,{ || DigMdf( @cnSQLBrowse, midMdfCab ) } )
      :CloseRecordset()
   ENDWITH
simples, re-executar o comando de pesquisa

Código: Selecionar todos

STATIC FUNCTION DigMDF( cnSQLBrowse, midMdfCab )
...
               cnSQLBrowse:CloseRecordset()
               cnSQLBrowse:Execute()
Lembrando:
Neste caso se trata de notas fiscais do manifesto, mas poderiam ser produtos de um pedido.
Re-executar o comando é extremamente rápido.
Na pesquisa geral isso não existe (apesar que abre novas possibilidades).
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Solução pra cursor do tbrowse

Mensagem por JoséQuintas »

BrowseADORC() é a com linha/coluna pra essas situações.
BrowseADO() é a de pesquisa
browseado.png
BrowseADO() cria a parte gráfica acima, e repassa o controle pra BrowseADORC()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder