Ir para conteúdo
Fórum Script Brasil
  • 0

Nao Repetir


Guest - ANONIMO -

Pergunta

Guest - ANONIMO -

Bom dia Galera...tudo bem?!

É o seguinte...tenho um formulario que busca informacoes em um arq TXT...

quando eu digito a matricula no campo determinado ele varre o arq TXT e se houver essa matricula gravada ele tras todas as informaçoes, agora, se não houver ele da uma msg para criar uma nova prescricao para o paciente.....ate ai tudo bem...

o problema é o seguinte: se eu digitar a matricula e ela não existir a msg e dada...ai quando vou digitar a nova prescricao preciso digitar essa matricula, so que a msg aparece toda hora, como eu porderia fazer para que ela aparecece somente da primeira vez que eu digitasse a matricula inexistente..

SE alguém PUDER ME AJUDAR....VALEU...

O CODIGO TA AI...

////

if not Achou then

EditNomePaciente.Text := '';

ComboBoxLeito.Text := '';

ComboBoxNAtendimento.Text := '';

EditNProntuario.Text := '';

MemoVaiParaPrescricao.Clear;

ShowMessage('Prontuário não encontrado!'+#13+'Comece uma nova prescrição para este paciente');

EditNProntuario.SetFocus;

end;

////

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá,

Não sei se entendi muito bem, mas olhando no código tente assim:

////
if not Achou then
 begin
  // Coloque aki os comandos caso não achar o registro
 EditNomePaciente.Text := '';
 ComboBoxLeito.Text := '';
 ComboBoxNAtendimento.Text := '';
 EditNProntuario.Text := '';
 MemoVaiParaPrescricao.Clear;
 ShowMessage('Prontuário não encontrado!'+#13+'Comece uma nova prescrição para este paciente');
 EditNProntuario.SetFocus;
 end;

qualquer coisa posta ae

Abs.

Kiko

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - anonimo -

VOU COLOCAR O CODIGO TODO...TALVEZ ASSIM FIQUE MAIS FACIL DE ENTENDER...

não É ISSO QUE você ME PASSOU não..OLHA SO:

ELE FAZ O SEGUINTE...VARRE O ARQ "PROCORDIS.TXT" SE não ENCONTRAR O NUM ELE VARRE O ARQ "PACIENTES.TXT"....AI SE ELE AINDA não ENCONTRAR,

ELE DA ESSA MSG "Prontuário não encontrado!'+#13+'Comece uma nova prescrição para este paciente".

AI quando EU "DOU" OK NA TELA DA MSG, E VOU ATE O CAMPO DA MATRICULA DIGITO NOVAMENTE O NUMERO PRA EFETUAR O CADASTRO, E quando MUDO DE CAMPO(EDIT) A MSG APARECE NOVAMENTE.......E FICA NESSE "LOOP INFINITO".

///

procedure TFormPrescricao.EditNProntuarioExit(Sender: TObject);

var

linha, codigo : string;

i, x : integer;

ArqTxt : TextFile;

achou : boolean;

begin

AssignFile(ArqTxt,'C:\PROCORDIS.txt');

Reset(ArqTxt);

i := 0;

achou := False;

while not eof(ArqTxt) do

begin

i := i + 1;

Readln(ArqTxt,linha);

Codigo := Copy(Linha,1,Pos(';',Linha)-1);

x := Length(Linha) - Length(Codigo);

if Trim(EditNProntuario.Text) = Codigo then

begin

achou := True;

Delete(linha,1,Pos(';',linha));

EditNomePaciente.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

ComboBoxLeito.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

ComboBoxNAtendimento.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

MemoVaiParaPrescricao.Clear;

while Pos(';',linha) > 0 do

begin

MemoVaiParaPrescricao.Lines.Add(Copy(linha,1,pos(';',linha)-1));

Delete(linha,1,Pos(';',linha));

end;

MemoVaiParaPrescricao.Lines.Add(linha);

Break;

end;

end;

Closefile(ArqTxt);

if not Achou Then

begin

AssignFile(ArqTxt,'C:\PACIENTES.txt');

Reset(ArqTxt);

i := 0;

achou := False;

while not eof(ArqTxt) do

begin

i := i + 1;

Readln(ArqTxt,linha);

Codigo := Copy(Linha,1,Pos(';',Linha)-1);

x := Length(Linha) - Length(Codigo);

if Trim(EditNProntuario.Text) = Codigo then

begin

achou := True;

Delete(linha,1,Pos(';',linha));

EditNomePaciente.Text:= Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

ComboBoxNAtendimento.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

Break;

end;

end;

Closefile(ArqTxt);

if not Achou then

EditNomePaciente.Text := '';

ComboBoxLeito.Text := '';

ComboBoxNAtendimento.Text := '';

EditNProntuario.Text := '';

MemoVaiParaPrescricao.Clear;

ShowMessage('Prontuário não encontrado!'+#13+'Comece uma nova prescrição para este paciente');

EditNProntuario.SetFocus;

end;

end;

end;

///

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - ANONIMO -
VOU COLOCAR O CODIGO TODO...TALVEZ ASSIM FIQUE MAIS FACIL DE ENTENDER...

não É ISSO QUE você ME PASSOU não..OLHA SO:

ELE FAZ O SEGUINTE...VARRE O ARQ "PROCORDIS.TXT" SE não ENCONTRAR O NUM ELE VARRE O ARQ "PACIENTES.TXT"....AI SE ELE AINDA não ENCONTRAR,

ELE DA ESSA MSG "Prontuário não encontrado!'+#13+'Comece uma nova prescrição para este paciente".

AI quando EU "DOU" OK NA TELA DA MSG, E VOU ATE O CAMPO DA MATRICULA DIGITO NOVAMENTE O NUMERO PRA EFETUAR O CADASTRO, E quando MUDO DE CAMPO(EDIT) A MSG APARECE NOVAMENTE.......E FICA NESSE "LOOP INFINITO".

///

procedure TFormPrescricao.EditNProntuarioExit(Sender: TObject);

var

linha, codigo : string;

i, x : integer;

ArqTxt : TextFile;

achou : boolean;

begin

AssignFile(ArqTxt,'C:\PROCORDIS.txt');

Reset(ArqTxt);

i := 0;

achou := False;

while not eof(ArqTxt) do

begin

i := i + 1;

Readln(ArqTxt,linha);

Codigo := Copy(Linha,1,Pos(';',Linha)-1);

x := Length(Linha) - Length(Codigo);

if Trim(EditNProntuario.Text) = Codigo then

begin

achou := True;

Delete(linha,1,Pos(';',linha));

EditNomePaciente.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

ComboBoxLeito.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

ComboBoxNAtendimento.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

MemoVaiParaPrescricao.Clear;

while Pos(';',linha) > 0 do

begin

MemoVaiParaPrescricao.Lines.Add(Copy(linha,1,pos(';',linha)-1));

Delete(linha,1,Pos(';',linha));

end;

MemoVaiParaPrescricao.Lines.Add(linha);

Break;

end;

end;

Closefile(ArqTxt);

if not Achou Then

begin

AssignFile(ArqTxt,'C:\PACIENTES.txt');

Reset(ArqTxt);

i := 0;

achou := False;

while not eof(ArqTxt) do

begin

i := i + 1;

Readln(ArqTxt,linha);

Codigo := Copy(Linha,1,Pos(';',Linha)-1);

x := Length(Linha) - Length(Codigo);

if Trim(EditNProntuario.Text) = Codigo then

begin

achou := True;

Delete(linha,1,Pos(';',linha));

EditNomePaciente.Text:= Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

ComboBoxNAtendimento.Text := Copy(linha,1,pos(';',linha)-1);

Delete(linha,1,Pos(';',linha));

Break;

end;

end;

Closefile(ArqTxt);

if not Achou then

EditNomePaciente.Text := '';

ComboBoxLeito.Text := '';

ComboBoxNAtendimento.Text := '';

EditNProntuario.Text := '';

MemoVaiParaPrescricao.Clear;

ShowMessage('Prontuário não encontrado!'+#13+'Comece uma nova prescrição para este paciente');

EditNProntuario.SetFocus;

end;

end;

end;

///

alguém pode......please?!:!:!:!:

Link para o comentário
Compartilhar em outros sites

  • 0

cara nesse caso você pode usar outro edit pra inserir esse código ou então coloque um IF nesse codigo ae pra identificar quando era feito a consulta e quando será feito a inserção, tipo assim:

var Situacao : String;

begin

if Situacao = 'C' then begin // C --> Consulta

  bla, bla..

  etc...

end else begin

  //aqui vai o outro codigo pra inserir

  etc...

end;

Tem que ter algo que identifique quando será uma consulta e quando uma inserção.

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...