Ajuda com DBEDIT

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
EANDRIOLI
Usuário Nível 3
Usuário Nível 3
Mensagens: 109
Registrado em: 22 Jun 2007 18:31
Localização: Sorriso-MT

Ajuda com DBEDIT

Mensagem por EANDRIOLI »

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.
Anexos
locloca.prg
(25.36 KiB) Baixado 94 vezes
Avatar do usuário
EANDRIOLI
Usuário Nível 3
Usuário Nível 3
Mensagens: 109
Registrado em: 22 Jun 2007 18:31
Localização: Sorriso-MT

SEGUE DBFS...

Mensagem por EANDRIOLI »

ANEXO, DBFS ZIPADOS...
Anexos
LOCDBF.ZIP
(2.85 KiB) Baixado 87 vezes
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: AJUDA COM DBEDIT

Mensagem por alaminojunior »

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
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Ajuda com DBEDIT

Mensagem por Pablo César »

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.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Ajuda com DBEDIT

Mensagem por alaminojunior »

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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Ajuda com DBEDIT

Mensagem por Eolo »

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.

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 x

Código: Selecionar todos

function deleta()
*...

function edita()
*...
rbonotto
Usuário Nível 3
Usuário Nível 3
Mensagens: 253
Registrado em: 06 Mai 2005 18:52

Re: Ajuda com DBEDIT

Mensagem por rbonotto »

No final de sua função coluW voce tem um RETURN(1)
Troque-o por RETURN(2)

Abs,
mixsistemas@gmail.com
Ademir
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 31 Jul 2007 16:28
Localização: Porto Ferreira-SP

Re: Ajuda com DBEDIT

Mensagem por Ademir »

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.
Responder