Problema nos blocos???
alguem consegue me dizer por que esse procedure só funciona pros alunos? ele nao chega a rodar nos professores. acho que tem algum problema nos blocos(begin / end)... olhei olhei mas nao consegui encherga-lo. Se alguem puder me ajudar...
--------------------------------------------------
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject);
var
d1,d2 : TDateTime;
vdDATA,multa : extended;
Cod1,Cod2,viMINUTOS,viHORAS : integer;
begin
// Verifica o tipo de consulta
if Combo_TipoConsulta.Text <>´´ Then
begin
Dm.Tbl_TipoConsulta.Close;
Dm.Tbl_TipoConsulta.SelectSQL.Clear;
Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´);
Dm.Tbl_TipoConsulta.Open;
end;
Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´,Date);
// uses: DateUtils
vdDATA := DaysBetween(date, StrToDateTime(Edit_DATAEMPR.text));
{Checa as unidades de tempo}
//-----------------------------------------------------
if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then
begin
multa := ((( (vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString)-1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString)));
// subtração de data para verificar multa
d1 := StrToDate(Edit_DataBaixa.Text);
d2 := StrToDate(Edit_DataDev.Text);
// se o emprestimo for para aluno
if Combo_Tipo.Text = ´ALUNO´ then
begin
if d1 > d2 then
// emprestimo para aluno com multa
begin
ShowMessage(´emprestimo para aluno com multa:´+FloatToStr(multa));
end
else
// emprestimo para aluno sem multa
begin
ShowMessage(´emprestimo para aluno sem multa:´+FloatToStr(multa));
end;
end;
end
else
// se o emprestimo for para Professor
if Combo_Tipo.Text = ´PROFESSOR´ then
begin
if d1 > d2 then
//emprestimo para Professor com multa
begin
ShowMessage(´emprestimo para Professor com multa:´+FloatToStr(multa));
end
else
// emprestimo para Professor sem multa
begin
ShowMessage(´emprestimo para Professor sem multa:´+FloatToStr(multa))
end;
end;
//-----------------------------------------------------
end;
--------------------------------------------------
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject);
var
d1,d2 : TDateTime;
vdDATA,multa : extended;
Cod1,Cod2,viMINUTOS,viHORAS : integer;
begin
// Verifica o tipo de consulta
if Combo_TipoConsulta.Text <>´´ Then
begin
Dm.Tbl_TipoConsulta.Close;
Dm.Tbl_TipoConsulta.SelectSQL.Clear;
Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´);
Dm.Tbl_TipoConsulta.Open;
end;
Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´,Date);
// uses: DateUtils
vdDATA := DaysBetween(date, StrToDateTime(Edit_DATAEMPR.text));
{Checa as unidades de tempo}
//-----------------------------------------------------
if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then
begin
multa := ((( (vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString)-1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString)));
// subtração de data para verificar multa
d1 := StrToDate(Edit_DataBaixa.Text);
d2 := StrToDate(Edit_DataDev.Text);
// se o emprestimo for para aluno
if Combo_Tipo.Text = ´ALUNO´ then
begin
if d1 > d2 then
// emprestimo para aluno com multa
begin
ShowMessage(´emprestimo para aluno com multa:´+FloatToStr(multa));
end
else
// emprestimo para aluno sem multa
begin
ShowMessage(´emprestimo para aluno sem multa:´+FloatToStr(multa));
end;
end;
end
else
// se o emprestimo for para Professor
if Combo_Tipo.Text = ´PROFESSOR´ then
begin
if d1 > d2 then
//emprestimo para Professor com multa
begin
ShowMessage(´emprestimo para Professor com multa:´+FloatToStr(multa));
end
else
// emprestimo para Professor sem multa
begin
ShowMessage(´emprestimo para Professor sem multa:´+FloatToStr(multa))
end;
end;
//-----------------------------------------------------
end;
Mahdak
Curtidas 0
Respostas
Rjun
16/05/2005
[/code]
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject);
var
d1,d2 : TDateTime;
vdDATA,multa : extended;
Cod1,Cod2,viMINUTOS,viHORAS : integer;
begin
if Combo_TipoConsulta.Text <>´´ Then
begin
Dm.Tbl_TipoConsulta.Close;
Dm.Tbl_TipoConsulta.SelectSQL.Clear;
Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´);
Dm.Tbl_TipoConsulta.Open;
end;
Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´,Date);
vdDATA := DaysBetween(date, StrToDateTime(Edit_DATAEMPR.text));
if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then
begin
multa := ((( (vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString)-1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString)));
d1 := StrToDate(Edit_DataBaixa.Text);
d2 := StrToDate(Edit_DataDev.Text);
if Combo_Tipo.Text = ´ALUNO´ then
begin
if d1 > d2 then
ShowMessage(´emprestimo para aluno com multa:´+FloatToStr(multa))
end
ShowMessage(´emprestimo para aluno sem multa:´+FloatToStr(multa));
end
else
begin
if Combo_Tipo.Text = ´PROFESSOR´ then
begin
if d1 > d2 then
ShowMessage(´emprestimo para Professor com multa:´+FloatToStr(multa))
else
ShowMessage(´emprestimo para Professor sem multa:´+FloatToStr(multa))
end;
end;
end;
end;
[/code]
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject);
var
d1,d2 : TDateTime;
vdDATA,multa : extended;
Cod1,Cod2,viMINUTOS,viHORAS : integer;
begin
if Combo_TipoConsulta.Text <>´´ Then
begin
Dm.Tbl_TipoConsulta.Close;
Dm.Tbl_TipoConsulta.SelectSQL.Clear;
Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´);
Dm.Tbl_TipoConsulta.Open;
end;
Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´,Date);
vdDATA := DaysBetween(date, StrToDateTime(Edit_DATAEMPR.text));
if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then
begin
multa := ((( (vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString)-1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString)));
d1 := StrToDate(Edit_DataBaixa.Text);
d2 := StrToDate(Edit_DataDev.Text);
if Combo_Tipo.Text = ´ALUNO´ then
begin
if d1 > d2 then
ShowMessage(´emprestimo para aluno com multa:´+FloatToStr(multa))
end
ShowMessage(´emprestimo para aluno sem multa:´+FloatToStr(multa));
end
else
begin
if Combo_Tipo.Text = ´PROFESSOR´ then
begin
if d1 > d2 then
ShowMessage(´emprestimo para Professor com multa:´+FloatToStr(multa))
else
ShowMessage(´emprestimo para Professor sem multa:´+FloatToStr(multa))
end;
end;
end;
end;
[/code]
GOSTEI 0
Mahdak
16/05/2005
amigo... nao deu certo... vou postar o codigo novamente aqui:
----------------------------------
----------------------------------
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject); var d1,d2 : TDateTime; vdDATA,multa : extended; Cod1,Cod2,viMINUTOS,viHORAS : integer; begin if Combo_TipoConsulta.Text <>´´ Then begin Dm.Tbl_TipoConsulta.Close; Dm.Tbl_TipoConsulta.SelectSQL.Clear; Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´); Dm.Tbl_TipoConsulta.Open; end; Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´,Date); vdDATA := DaysBetween(date, StrToDateTime(Edit_DATAEMPR.text)); if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then begin multa := ((( (vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString)-1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString))); d1 := StrToDate(Edit_DataBaixa.Text); d2 := StrToDate(Edit_DataDev.Text); if Combo_Tipo.Text = ´ALUNO´ then begin if d1 > d2 then ShowMessage(´emprestimo para aluno com multa:´+FloatToStr(multa)) else ShowMessage(´emprestimo para aluno sem multa:´+FloatToStr(multa)); end; end else begin if Combo_Tipo.Text = ´PROFESSOR´ then begin if d1 > d2 then ShowMessage(´emprestimo para Professor com multa:´+FloatToStr(multa)) else ShowMessage(´emprestimo para Professor sem multa:´+FloatToStr(multa)) end; end; end;
GOSTEI 0
Massuda
16/05/2005
Formatando corretamente seu código fica assimParece que o teste para o caso do professor está no lugar errado, mas só sabendo as regras de negócio para saber onde deveria estar. Me parece que devia estar logo após o teste do caso de ser aluno. A propósito, se a unidade for diferente de dias, a pessoa não paga multa?
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject); var d1, d2: TDateTime; vdDATA, multa: extended; Cod1, Cod2, viMINUTOS, viHORAS: Integer; begin if Combo_TipoConsulta.Text <> ´´ then begin Dm.Tbl_TipoConsulta.Close; Dm.Tbl_TipoConsulta.SelectSQL.Clear; Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´); Dm.Tbl_TipoConsulta.Open; end; Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´, Date); vdDATA := DaysBetween(Date, StrToDateTime(Edit_DATAEMPR.Text)); if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then begin multa := ((((vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString) - 1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString))); d1 := StrToDate(Edit_DataBaixa.Text); d2 := StrToDate(Edit_DataDev.Text); if Combo_Tipo.Text = ´ALUNO´ then begin if d1 > d2 then ShowMessage(´emprestimo para aluno com multa:´ + FloatToStr(multa)) else ShowMessage(´emprestimo para aluno sem multa:´ + FloatToStr(multa)); end; end else begin if Combo_Tipo.Text = ´PROFESSOR´ then begin if d1 > d2 then ShowMessage(´emprestimo para Professor com multa:´ + FloatToStr(multa)) else ShowMessage(´emprestimo para Professor sem multa:´ + FloatToStr(multa)) end; end; end;
GOSTEI 0
Mahdak
16/05/2005
sim claro, a pessoa paga multa sim, mas só coloquei essa unidade aqui em questao, por que o codigo varia pouco de unidade para unidade, sendo o formato dele praticamente o mesmo. testarei o codigo e qualquer coisa entro em contato. Por enquanto muito obrigado.
Abraços
Abraços
GOSTEI 0
Mahdak
16/05/2005
oi, nao deu nao... :( a unica parte do código que nao funciona eh a que diz respeito ao professor... simplismente o sistema nao calcula, nao manda mensagem, ou seja, nao faz nada... eu ja to apavorado aqui, pq tenho que entregar esse sistema em 15 dias....
Parte que nao funciona:
Parte que nao funciona:
else begin if Combo_Tipo.Text = ´PROFESSOR´ then begin if d1 > d2 then ShowMessage(´emprestimo para Professor com multa:´ + FloatToStr(multa)) else ShowMessage(´emprestimo para Professor sem multa:´ + FloatToStr(multa)) end; end; end;
GOSTEI 0
Mahdak
16/05/2005
agora sim... era só tinha que descer um end la pro final do bloco e remover outro no fial do aluno...
Abraços a todos e valleu!
segue o codigo certo abaixo:
-------------------------------------------
Abraços a todos e valleu!
segue o codigo certo abaixo:
-------------------------------------------
procedure TEmprestimo.Btn_BaixarClick(Sender: TObject); var d1, d2: TDateTime; vdDATA, multa: extended; Cod1, Cod2, viMINUTOS, viHORAS: Integer; begin if Combo_TipoConsulta.Text <> ´´ then begin Dm.Tbl_TipoConsulta.Close; Dm.Tbl_TipoConsulta.SelectSQL.Clear; Dm.Tbl_TipoConsulta.SelectSQL.Add(´select * from TIPO_CONSULTA Where TIPO = ´´´ + Trim(Combo_TipoConsulta.Text) + ´´´´); Dm.Tbl_TipoConsulta.Open; end; Edit_DataBaixa.Text := FormatDateTime(´dd/mm/yyyy´, Date); vdDATA := DaysBetween(Date, StrToDateTime(Edit_DATAEMPR.Text)); if Dm.Tbl_TipoConsultaUNIDADE.AsString = ´Dia(s)´ then begin multa := ((((vdDATA / StrToFloat(DM.Tbl_TipoConsultaTEMPO.AsString) - 1)) * StrToFloat(DM.Tbl_TipoConsultaMULTA.AsString))); d1 := StrToDate(Edit_DataBaixa.Text); d2 := StrToDate(Edit_DataDev.Text); if Combo_Tipo.Text = ´ALUNO´ then begin if d1 > d2 then ShowMessage(´emprestimo para aluno com multa:´ + FloatToStr(multa)) else ShowMessage(´emprestimo para aluno sem multa:´ + FloatToStr(multa)); end else begin if Combo_Tipo.Text = ´PROFESSOR´ then begin if d1 > d2 then ShowMessage(´emprestimo para Professor com multa:´ + FloatToStr(multa)) else ShowMessage(´emprestimo para Professor sem multa:´ + FloatToStr(multa)) end; end; end; end;
GOSTEI 0
Rjun
16/05/2005
Amigo, acho q essa lógica esta errada. Repare que ele só vai entrar no IF para professor se a unidade for diferente de ´Dia(s)´.
GOSTEI 0
Massuda
16/05/2005
...Repare que ele só vai entrar no IF para professor se a unidade for diferente de ´Dia(s)´.
Não... agora está certo. Você está sendo ´tapeado´ pela (má) formatação do código.GOSTEI 0
Mahdak
16/05/2005
ok, vou implementar as unidades restantes aqui e verificar meu erro, qualquer coisa entro em contato. Agradeço o toque :wink:
Abração!
Juliano
Abração!
Juliano
GOSTEI 0
Rjun
16/05/2005
[quote:a081e4003f=´Rjun´]...Repare que ele só vai entrar no IF para professor se a unidade for diferente de ´Dia(s)´.
Não... agora está certo. Você está sendo ´tapeado´ pela (má) formatação do código.[/quote:a081e4003f]Massuda, você esta absolutamente certo. Esse monte de IF me confundiu mesmo.
GOSTEI 0