Ajuda com DBEDIT
Moderador: Moderadores
Ajuda com DBEDIT
Senhores:
Estou com um problema no fonte anexo, que quando mostra os dados pelo dbedit quando uma locação é excluida, a tela nao está sendo atualizada, ou melhor, devido ao programa buscar os dados de Nome do Veiculo e Nome do Cliente de outro arquivo DBF a atualização nao esta ocorrendo.
Estou enviando o fonte e os dbfs para teste (os dbfs nao sao permitidos).
Aguardo de informações.
Obrigado!!!
Erasmo.
Estou com um problema no fonte anexo, que quando mostra os dados pelo dbedit quando uma locação é excluida, a tela nao está sendo atualizada, ou melhor, devido ao programa buscar os dados de Nome do Veiculo e Nome do Cliente de outro arquivo DBF a atualização nao esta ocorrendo.
Estou enviando o fonte e os dbfs para teste (os dbfs nao sao permitidos).
Aguardo de informações.
Obrigado!!!
Erasmo.
- Anexos
-
locloca.prg- (25.36 KiB) Baixado 93 vezes
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: AJUDA COM DBEDIT
Precisa forçar a re-exibição dos dados. O dbedit envia dois parâmetros, um deles é exatamente para este fim. Se me lembro bem é 2.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Ajuda com DBEDIT
Será que nesses casos o mais indicado não seria utilizar o TBROWSE ?
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Ajuda com DBEDIT
A essa altura do campeonato, seria trocar seis por meia-dúzia.
Mas é só fazer uso correto dos parâmetros que o DbEdit() fornece, que funciona belezinha.
Mas é só fazer uso correto dos parâmetros que o DbEdit() fornece, que funciona belezinha.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Ajuda com DBEDIT
Erasmo,
É só fazer uma função sua trabalhar junto com o DBEdit. Sem essa função (que é o seu caso), o DBEdit
dá respostas "padrão". Com a função, você controla qualquer tecla pressionada pelo usuário.
Veja o EXEMPLO a seguir, que é resumidamente como eu usava.
É só fazer uma função sua trabalhar junto com o DBEdit. Sem essa função (que é o seu caso), o DBEdit
dá respostas "padrão". Com a função, você controla qualquer tecla pressionada pelo usuário.
Veja o EXEMPLO a seguir, que é resumidamente como eu usava.
Código: Selecionar todos
*...
v1:={"strzero(acodi,5)+' '+aapel+iif(empty(arest),' ',' ¦ ')+aclie"}
v2:={"@"}4
v3:={"Cód. Apelido Nome"}
v4:=""
dbedit(04,00,22,70,v1,"QUALQUER",v2,v3,v4)
*...Código: Selecionar todos
FUNCTION QUALQUER
* a função retorna 0, 1 ou 2 ao dbedit
* 0 = sai do dbedit
* 1 = continua o dbedit
* 2 = reconstrói a tela e continua o dbedit
priv x
do case
case lastkey()=27
* o usuário tecla ESC no dbedit, para sair
x=0
case lastkey()=-4
* o usuário tecla F5 para DELETAR registro
deleta()
x=2
case lastkey()=13
* o usuário tecla ENTER para EDITAR registro
edita()
x=1
* outros CASE, para qualquer tecla pressionada pelo usuário
endc
retu xCódigo: Selecionar todos
function deleta()
*...
function edita()
*...Re: Ajuda com DBEDIT
No final de sua função coluW voce tem um RETURN(1)
Troque-o por RETURN(2)
Abs,
Troque-o por RETURN(2)
Abs,
mixsistemas@gmail.com
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Re: Ajuda com DBEDIT
Pessoal ! Muito boa tarde !
Sempre que tinha uma dúvida quanto ao uso do Dbedit, entrava aqui no forum para pedir ajuda e sempre tinha alguem que me dizia: Muda para o Tbrowse que não vai se arrepender !!! Bom, como grande parte dos usuarios, daqui do forum inclusive, alegava certa dificuldade em "entender" o funcionamento do dito Tbrowse, eu sempre acabava desistindo. Começava a ver alguma coisa, mas logo desistia por falta de tempo ou mesmo de entendimento. Esses dias, desenvolvendo um novo sistema para um cliente, resolvi testar a visualização dos dados pelo dbedit em rede. Como sempre usei o Dbedit, fiquei surpreso ao verificar que a atualização das telas em rede não funciona tão bem quanto imaginava. Por exemplo, se na tela onde estou, alguem excluiu um registro em outra estação, a tela é atualizada mas os registros ficam sobrepostos ao serem movimentados pelas setas, o que pode causar confusão ao usuário. Outro exemplo é se nesta mesma tela tento alterar um registro já excluido em outra estação. O registro é editado normalmente, mas quando a alteração é confirmada, o ponteiro volta ao registro anterior, pois a tela é atualizada (set dele ON), o que tambem pode confundir o usuario. Então, hoje, de uma vez por todas resolvI encarar de frente o bicho papão do Tbrowse. Comecei a fuçar em livros e no forum e descobrí que o mesmo funciona legal em rede. Na atualização da tela, a movimentação entre os registros quando ha excluidos funciona perfeitamente. Nas alterações, para resolver o problema, salvo um campo qualquer em uma variavel, e depois da tecla pressionada, dou outro Refreshall() e comparo o campo atual com a variavel. Se forem diferentes, significa que a tela foi atualizada e assim dou um loop e aborto a alteração antes da edição do registro. Como comecei a desvendar o Tbrowse hoje, lógico, tenho ainda um monte de dúvidas. Então, vamos lá:
O loop principal: é o local onde se validam as teclas para cada objeto tbrowse ?
É possivel ter um loop principal "genérico" que funcione em objetos diferentes para tratar teclas comuns ?
As setas para baixo, para cima, para direita e para a esquerda tem que ser obrigatoriamente tratadas em cada loop principal ?
Existe alguma limitação do objeto tbrowse quanto a quantidade de registros no arquivo ?
Como faço para alterar a ordem de visualização das colunas do tbrowse ?
Acho que é só. Espero que tenham entendido minhas duvidas. Tomara que a continuidade desse tópico ajude ainda mais pessoas que assim como eu "tremiam" quando ouviam falar em Tbrowse. Por enquanto, muito obrigado.
Sempre que tinha uma dúvida quanto ao uso do Dbedit, entrava aqui no forum para pedir ajuda e sempre tinha alguem que me dizia: Muda para o Tbrowse que não vai se arrepender !!! Bom, como grande parte dos usuarios, daqui do forum inclusive, alegava certa dificuldade em "entender" o funcionamento do dito Tbrowse, eu sempre acabava desistindo. Começava a ver alguma coisa, mas logo desistia por falta de tempo ou mesmo de entendimento. Esses dias, desenvolvendo um novo sistema para um cliente, resolvi testar a visualização dos dados pelo dbedit em rede. Como sempre usei o Dbedit, fiquei surpreso ao verificar que a atualização das telas em rede não funciona tão bem quanto imaginava. Por exemplo, se na tela onde estou, alguem excluiu um registro em outra estação, a tela é atualizada mas os registros ficam sobrepostos ao serem movimentados pelas setas, o que pode causar confusão ao usuário. Outro exemplo é se nesta mesma tela tento alterar um registro já excluido em outra estação. O registro é editado normalmente, mas quando a alteração é confirmada, o ponteiro volta ao registro anterior, pois a tela é atualizada (set dele ON), o que tambem pode confundir o usuario. Então, hoje, de uma vez por todas resolvI encarar de frente o bicho papão do Tbrowse. Comecei a fuçar em livros e no forum e descobrí que o mesmo funciona legal em rede. Na atualização da tela, a movimentação entre os registros quando ha excluidos funciona perfeitamente. Nas alterações, para resolver o problema, salvo um campo qualquer em uma variavel, e depois da tecla pressionada, dou outro Refreshall() e comparo o campo atual com a variavel. Se forem diferentes, significa que a tela foi atualizada e assim dou um loop e aborto a alteração antes da edição do registro. Como comecei a desvendar o Tbrowse hoje, lógico, tenho ainda um monte de dúvidas. Então, vamos lá:
O loop principal: é o local onde se validam as teclas para cada objeto tbrowse ?
É possivel ter um loop principal "genérico" que funcione em objetos diferentes para tratar teclas comuns ?
As setas para baixo, para cima, para direita e para a esquerda tem que ser obrigatoriamente tratadas em cada loop principal ?
Existe alguma limitação do objeto tbrowse quanto a quantidade de registros no arquivo ?
Como faço para alterar a ordem de visualização das colunas do tbrowse ?
Acho que é só. Espero que tenham entendido minhas duvidas. Tomara que a continuidade desse tópico ajude ainda mais pessoas que assim como eu "tremiam" quando ouviam falar em Tbrowse. Por enquanto, muito obrigado.