Fórum Pesquisa tabela paradox #187487

09/10/2003

0

Ola


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

Dart

Responder

Posts

09/10/2003

Marlon Spiess

Olá,
vc pode usar no evento onkeyup do edit a função
tabela.findnearest([strtoint(edit1.text)])
é uma alternativa.

Espero ter ajudado


Responder

Gostei + 0

10/10/2003

Dart

Valeu Marlon

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


Responder

Gostei + 0

10/10/2003

Bacalhau

Na propriedade OnKeyDown do Edit, coloca um procedure com o seguinte código:

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


Responder

Gostei + 0

10/10/2003

Marlon Spiess

Dart, o exemplo do amigo bacalhau, está mais completo, acho q dá pra ter uma idéia melhor, mas o que eu quis, é mostrar um caminho, via sql tbm dá, mas acho melhor por essa linha. Como no meu exemplo, o primeiro, as informações já estão lá, é só vc trabalahr elas.

Espero ter ajudado.

Boa Sorte e qualquer coisa MP-me;


Responder

Gostei + 0

10/10/2003

Dart

Muito obrigado Marlon e bacalhau

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


Responder

Gostei + 0

10/10/2003

Bacalhau

manda sempre. há pelos menos umas 500 maneiras de fazer. Só demos as pistas
abraço


Responder

Gostei + 0

10/10/2003

Dart

so mais uma coisa

e que ele so faz a pesquisa no primeiro registro .

como fazer para ler a tabela inteira.


valeu

Dart


Responder

Gostei + 0

10/10/2003

Dart

Como faz para ler a tabela toda para verificar as situações dos lacres.


Responder

Gostei + 0

10/10/2003

Dart

so falta isso ..... :cry:


Responder

Gostei + 0

10/10/2003

Thalesribeiro

so falta isso ..... :cry:

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;


Responder

Gostei + 0

11/10/2003

Dart

eu fiz assim so que ainda não finciona.

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?


Responder

Gostei + 0

11/10/2003

Marlon Spiess

Olá Dart,
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


Responder

Gostei + 0

12/10/2003

Fabio.hc

eu fiz assim so que ainda não finciona. 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?


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;


Responder

Gostei + 0

12/10/2003

Dart

if lret.Text = ´´ then
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


Responder

Gostei + 0

12/10/2003

Fabio.hc

if lret.Text = ´´ then 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


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)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar