|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Mazo1 Aprendiz
Registrado: Domingo, 3 de Janeiro de 2010 Mensagens: 256 Localização: Alagoas
|
Enviada: Sex Out 04, 2019 9:18 am Assunto: Com resolver essa lógica? |
|
|
Amigos não consigo resolver essa lógica já tentei de várias formas e nada, alguém pode mim ajudar?
Código: |
procedure TFrmCadTurDisc.FichaIndividualEJA12ou4ETAPAFASEdoEnsinoFundamental1Click(
Sender: TObject);
if (DmDados.IBQryTurmaTURNO.AsString <> ('Matutino')) or
(DmDados.IBQryTurmaTURNO.AsString <> ('Vespertino')) or
(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 1ª FASE - Ensino Fundamental')) then
begin
Application.MessageBox('Ficha Individual inválida para a Turma selecionada, verifique e tente novamente!','Atenção',mb_ok + MB_ICONWARNING);
abort;
end
else
if(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 3ª FASE - Ensino Fundamental')) or
(DmDados.IBQryTurmaTURNO.AsString <> ('Noturno')) then
begin
Application.MessageBox('Ficha Individual inválida para a Turma selecionada, verifique e tente novamente!','Atenção',mb_ok + MB_ICONWARNING);
abort;
end
else
if (DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 2ª ETAPA - Ensino Fundamental')) or
(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 2ª FASE - Ensino Fundamental')) or
(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 3ª ETAPA - Ensino Fundamental')) then
begin
Application.MessageBox('Ficha Individual inválida para a Turma selecionada, verifique e tente novamente!','Atenção',mb_ok + MB_ICONWARNING);
abort;
end;
Dmdados.chamaForm(TFrmRelFichaIndiv_2e3_ETAPAChamar,TCustomForm(FrmRelFichaIndiv_2e3_ETAPAChamar));
end;
|
|
|
Voltar ao Topo |
|
|
joemil Moderador
Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9098 Localização: Sinop-MT
|
Enviada: Sex Out 04, 2019 10:06 am Assunto: |
|
|
e qual a logica? _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
|
johnny-walker Moderador
Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Sex Out 04, 2019 11:04 am Assunto: |
|
|
Você reparou que a sua lógica do operador OR não está correta, visto que, se for Matutino ou vespertino ou EJA, será sempre verdadeiro.
Observe que o turno será um ou outro, só aí já dá verdadeiro, lembrando que se você montar a tabela verdade, dará sempre verdadeiro, pois F ou V = V, somente sendo falso quando os dois forem falsos.
Tabela do operador OR
Citação: | F OR F = F
F OR V = V
V OR F = V
V OR V = V |
Tabela do operador AND
Citação: | F OR F = F
F OR V = F
V OR F = F
V OR V = V |
Veja a tabela
https://pt.wikipedia.org/wiki/Operador_l%C3%B3gico
Repense sua lógica.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
|
Mazo1 Aprendiz
Registrado: Domingo, 3 de Janeiro de 2010 Mensagens: 256 Localização: Alagoas
|
Enviada: Sex Out 04, 2019 1:04 pm Assunto: |
|
|
Amigo obrigado pela dica, tentei fazer de outra forma, mas ainda não está passando, veja só:
a turma que está focada no grid é: EJA - 1ª FASE - Ensino Fundamental - Turno: Vespertino.
Ao debugar quando passa pelo primeiro bloco, já chama a mensagem, não deveria chamar o Form?
Código: |
procedure TFrmCadTurDisc.FichaIndividualEJA12ou4ETAPAFASEdoEnsinoFundamental1Click(
Sender: TObject);
begin
if (((DmDados.IBQryTurmaTURNO.AsString <> ('Matutino')) and
(DmDados.IBQryTurmaTURNO.AsString <> ('Vespertino')) and
(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 1ª FASE - Ensino Fundamental')))) or
((DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 3ª FASE - Ensino Fundamental')) and
(DmDados.IBQryTurmaTURNO.AsString <> ('Noturno'))) or
((DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 2ª ETAPA - Ensino Fundamental')) and
(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 2ª FASE - Ensino Fundamental')) and
(DmDados.IBQryTurmaGRAU.AsString <> ('EJA - 3ª ETAPA - Ensino Fundamental'))) then
begin
Application.MessageBox('Ficha Individual inválida para a Turma selecionada, verifique e tente novamente!','Atenção',mb_ok + MB_ICONWARNING);
abort;
end;
Dmdados.chamaForm(TFrmRelFichaIndiv_2e3_ETAPAChamar,TCustomForm(FrmRelFichaIndiv_2e3_ETAPAChamar));
end;
|
|
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Out 04, 2019 4:44 pm Assunto: |
|
|
Boa tarde,
Com esses valores nos campos e esse código que você postou a mensagem deve ser exibida mesmo, tanto pelas condições da "parte 2" já que o grau e a turma são diferentes, como da "parte 3" já que o grau é diferente de todos.
obs: não tem relação com o problema mas esses parênteses em torno das strings ( ex: ('Matutino') ) não são necessários e acho que prejudicam a visualização do código
Espero que ajude |
|
Voltar ao Topo |
|
|
Mazo1 Aprendiz
Registrado: Domingo, 3 de Janeiro de 2010 Mensagens: 256 Localização: Alagoas
|
Enviada: Sex Out 04, 2019 7:06 pm Assunto: |
|
|
Boa noite Imex, agradeço a dica e percebi que retirando o excesso de parênteses não muda muita coisa em relação ao problema. Por favor você poderia mim ajudar?, não estou conseguindo resolver. |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Out 07, 2019 9:21 am Assunto: |
|
|
Bom dia,
Acho que para podermos sugerir algum código você teria que postar quais são as regras, quais combinações de grau e turno são permitidas. |
|
Voltar ao Topo |
|
|
Mazo1 Aprendiz
Registrado: Domingo, 3 de Janeiro de 2010 Mensagens: 256 Localização: Alagoas
|
Enviada: Seg Out 07, 2019 7:55 pm Assunto: |
|
|
Boa noite,
Amigos quero agradecer a todos pelas dicas, mas consegui resolver o problema, vejam como ficou:
Código: | if (DmDados.IBQryTurmaTURNO.AsString <> 'Noturno') and
(DmDados.IBQryTurmaGRAU.AsString = 'EJA - 1ª FASE - Ensino Fundamental') or
(DmDados.IBQryTurmaGRAU.AsString = 'EJA - 2ª ETAPA - Ensino Fundamental') or
(DmDados.IBQryTurmaGRAU.AsString = 'EJA - 2ª FASE - Ensino Fundamental') or
(DmDados.IBQryTurmaGRAU.AsString = 'EJA - 3ª ETAPA - Ensino Fundamental') or
(DmDados.IBQryTurmaGRAU.AsString = 'EJA - 3ª FASE - Ensino Fundamental') and
(DmDados.IBQryTurmaTURNO.AsString = 'Noturno') then
Dmdados.chamaForm(TFrmRelFichaIndiv_2e3_ETAPAChamar,TCustomForm(FrmRelFichaIndiv_2e3_ETAPAChamar))
else
begin
Application.MessageBox('Ficha Individual inválida para a Turma selecionada, verifique e tente novamente!','Atenção',mb_ok + MB_ICONWARNING);
abort;
end;
|
|
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|