Clipper On Line • Ver Tópico - Solução pra cursor do tbrowse

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

 

Solução pra cursor do tbrowse

Mensagempor JoséQuintas » 29 Mar 2020 08:44

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.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13530
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

Solução pra cursor do tbrowse

Mensagempor JoséQuintas » 29 Mar 2020 08:55

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.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13530
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

Solução pra cursor do tbrowse

Mensagempor JoséQuintas » 29 Mar 2020 09:03

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.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13530
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

Solução pra cursor do tbrowse

Mensagempor JoséQuintas » 29 Mar 2020 09:09

Como resolvi a questão de atualizar o browse:

   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

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.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13530
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

Solução pra cursor do tbrowse

Mensagempor JoséQuintas » 29 Mar 2020 09:30

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.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13530
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro