Olá pessoal, gostaria de saber se a forma de trabalhar com o Dbedit,é diferente do clipper, na rotina abaixo se o arquivo estiver vazio, ele nao executa o modo = 3, e deveria executar quandoo arquivo estiver vazio. Na rotina abaixo eu vou excluindo os registros um a um, mas quando excluo o ultimo registro, ele nao executa a linha (elseif modo = 3) para voltar para a tela anterior.
Estou compilando com o xHarbour 1.2.1
obrigado.
if modo = 1
mensagem("Inicio do arquivo")
return(1)
elseif modo = 2
mensagem("Fim do arquivo")
return(1)
elseif modo = 3 && arquivo Vazio <-- nao executa
mensagem("Arquivo vazio")
return(0)
elseif modo = 4
if lastkey() = 101 && teclei a letra 'e' para excluir o registro
rlock()
delete
pack
return(2)
endif
endif
problemas com o Dbedit
Moderador: Moderadores
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
problemas com o Dbedit
Olá Porter,
Tente alterar o modo de exclusão assim:Teste e veja se é isso que vc quer.
Tente alterar o modo de exclusão assim:
Código: Selecionar todos
if lastkey() = 101 && teclei a letra 'e' para excluir o registro
rlock()
delete
pack
If Recc() > 0
return(2)
ElseIf Recc() = 0
return( 0 )
EndIf
endifAbraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
problemas com o Dbedit
Olá Jairo,
Acho que nao expliquei corretamente, eu tenho um Dbedit, e vou excluindo registro por registro, quando excluo o ultimo registro e o arquivo fica vazio, ele nao executa o comando abaixo (modo =3 arquivo vazio) para voltar para a tela anterior, entendeu ?
Tenho que pressionar uma tecla para direita ou esquerda para ai sim ele executar o comando abaixo e voltar para a tela anterior. No clipper funciona legal, parece que no xHarbour a forma de trabalhar com isso é diferente.
elseif modo = 3 && arquivo Vazio <-- nao executa
mensagem("Arquivo vazio")
return(0)
Valeu, Obrigado.
Acho que nao expliquei corretamente, eu tenho um Dbedit, e vou excluindo registro por registro, quando excluo o ultimo registro e o arquivo fica vazio, ele nao executa o comando abaixo (modo =3 arquivo vazio) para voltar para a tela anterior, entendeu ?
Tenho que pressionar uma tecla para direita ou esquerda para ai sim ele executar o comando abaixo e voltar para a tela anterior. No clipper funciona legal, parece que no xHarbour a forma de trabalhar com isso é diferente.
elseif modo = 3 && arquivo Vazio <-- nao executa
mensagem("Arquivo vazio")
return(0)
Valeu, Obrigado.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
problemas com o Dbedit
Olá Pórter,
Sim, entendi assim mesmo. Vc fez a alteração que sugeri? Veja:
Vc fez estas alterações?
Sim, entendi assim mesmo. Vc fez a alteração que sugeri? Veja:
Código: Selecionar todos
If Recc() > 0 // Se ainda tem registro no arquivo,
return(2) // permanece no dbedit,
ElseIf Recc() = 0 // se o arquivo está vazio,
return( 0 ) // fecha o dbedit voltando para a tela anterior.
EndIf Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
problemas com o Dbedit
Olá Jairo,
Acho que fui eu que nao entendi o que vc passou.
Resolveu o problema, esta fazendo o que eu quero, mas fiquei sem entender porque quando o arquivo esta vazio, ele nao executa a linha (elseif modo = 3).
elseif modo = 3 && arquivo Vazio <-- nao executamensagem("Arquivo vazio")
return(0)
Acho que fui eu que nao entendi o que vc passou.
Resolveu o problema, esta fazendo o que eu quero, mas fiquei sem entender porque quando o arquivo esta vazio, ele nao executa a linha (elseif modo = 3).
elseif modo = 3 && arquivo Vazio <-- nao executamensagem("Arquivo vazio")
return(0)
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
problemas com o Dbedit
Entendi. Mas é que no xHarbour ele tem um comportamente um pouco diferente. Ele permanece até um novo acesso na UDF. Vc pode acrescentar a mensagem de "arquivo vazio" antes de sair. Assim o usuário sabe pq fechou o editor.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
