Fórum Pesquisa tabela paradox #187487
09/10/2003
0
Tenho uma tabela paradox com o seguintes campos
Lacre Atesatado status
0101 0101 estoque
0102 0121 usado
0103 0122 retirado
Gostaria de saber assim que digitar o numero do lacre em um edit faça um busaca na tabela e me mostre uma messagem se ja esta em uso ou não se foi retirado usando as informações lacre atestado status.
Pode ser em SQL
Valeu
Dart
Dart
Curtir tópico
+ 0Posts
09/10/2003
Marlon Spiess
vc pode usar no evento onkeyup do edit a função
tabela.findnearest([strtoint(edit1.text)])
é uma alternativa.
Espero ter ajudado
Gostei + 0
10/10/2003
Dart
Na verdade eu queria mais completo. Assim que digita-se o numero do lacre em um edit fize-se uma pesquisa na tebela de lacres onde tem as imformações do status do lacre.
Tipo se o campo status da tabela conter ´estoque´ então posso usar o lacre.
Se o campo status conter ´usado´ então apareça uma mensagem com informações do lacre tipo data do uso , atestato usado para o lacre e se ja foi retirado do equipamento.
Acho que em SQL isso dever ser facil e que nao sei direito como usar.
Se não fui muito claro me avisem que vou tentar explicar melhor.
Valeu
Dart
Gostei + 0
10/10/2003
Bacalhau
if key = #13 then // foi digitado um Enter
begin
table1.fieldbyname(´Lacre´).asstring := edit1.text;
table1.gotonearest;
if table1.fieldbyname(´Lacre´).asstring = edit1.text then
begin
if table1.fieldbyname(´Status´).asstring = ´estoque´
then showmessage(´estoque´);
if table1.fieldbyname(´Status´).asstring = ´retirado´
then showmessage(´retirado´);
if table1.fieldbyname(´Status´).asstring = ´em uso´
then showmessage(´em uso´);
end; // se o lacre foi encontrado
end; // se foi digitado um Enter
Esta é a base. Agora tens de enriquecer o código para obteres o que pretendes. Isto só funciona se houver um indice segundario do campo Lacre
abraço
bacalhau
Gostei + 0
10/10/2003
Marlon Spiess
Espero ter ajudado.
Boa Sorte e qualquer coisa MP-me;
Gostei + 0
10/10/2003
Dart
Um dia eu estarei respondendo topicos assim como vcs fazem para
ajudar.
Esse e meu primeiro Sistema apesar de ser simples mas ser amuito util onde eu trabalho.
E isso pode me garantir uma promoção. (É ... Mais trabalho). :)
Valeu
Dart
Gostei + 0
10/10/2003
Bacalhau
abraço
Gostei + 0
10/10/2003
Dart
e que ele so faz a pesquisa no primeiro registro .
como fazer para ler a tabela inteira.
valeu
Dart
Gostei + 0
10/10/2003
Dart
Gostei + 0
10/10/2003
Dart
Gostei + 0
10/10/2003
Thalesribeiro
Faça um laço na tabela lacre com o comando while..do
por exemplo
while (not lacre.EOF) do
begin
a opção q quiser filtar
end;
Gostei + 0
11/10/2003
Dart
while (not tblacre.EOF) do
begin
if tblacre.FieldByName(´lacres´).asstring <> lret.Text then
begin
showmessage(´ Lacre número ´+lret.text+ ´ não existente! ´);
lret.SetFocus;
exit;
end;
end;
o que estou fazendo de errado?
Gostei + 0
11/10/2003
Marlon Spiess
inicialmente, a tabela é em paradox, vc definiu como chave o campo lacre ?
Se definiu como chave, não há a necessidade de fazer um varedura, basta dar um find, caso contrario esse ai é o caminho. Outro exemplo, tendo como base o campo Lacre como chave, vc tem um Edit qualquer, onde vai digitar o nr do lacre, então:
no evento onexit do Edit vc digita
var
cod : integer;
begin
try cod := strtoint(Edit.Text);
except cod := 0
end;
if cod > 0 then
if Tabela.findkey([cod]) then
begin
// ai já tem todas informações do registro
if TabelaStatus.value = ´usado´ then
showmessage(´lacre já usado´);
end
else
showmessage(´Lacre não cadastrado´)
else
showmessage(´Nro do Lancre invalido´);
// observe q antes do else não vai o ponto e virgula
Essa rotina resolve muito bem.
Esero ter ajudado
Boa sorte
Gostei + 0
12/10/2003
Fabio.hc
Está faltando o comando ´next´ avançar p/ o próximo registro.
Tente assim:
while (not tblacre.EOF) do
begin
if tblacre.FieldByName(´lacres´).asstring <> lret.Text then
begin
showmessage(´ Lacre número ´+lret.text+ ´ não existente! ´);
lret.SetFocus;
exit;
end;
[color=blue:ea8a98cc62] tblacre.next;[/color:ea8a98cc62]
end;
Gostei + 0
12/10/2003
Dart
exit;
tblacre.Prior;
while not( tblacre.EOF) do
begin
if tblacrelacres.Value <> lret.Text then
begin
showmessage(´ Lacre número ´+lret.text+ ´ não existente! ´);
lret.SetFocus;
exit;
end
else
tblacre.Next;
end;
Quando eu digite um lacre que ja na tem tabela ele diz que o lacre não existe e quando digito um lacre que não tem ele diz a mesma coisa.
Ainda não finciona por que? aaaaahhhh
Gostei + 0
12/10/2003
Fabio.hc
Tente assim:
Troque o
tblacre.Prior; // volta um registro (se vc está posicionado no ultimo ele volta um registro e faz o ´while´ sempre com um registro)
por
tblacre.First; // posiciona no primeiro registro ( e faz o ´While´ na tabela inteira)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)