Repetir o mesmo dia para todos os meses da tabela
Olá pessoal,
Tenho uma tabela com 15 registros, onde a única coisa q será alterada é o mês e o ano, isto é,:
10/11/2003
10/12/2003
10/01/2004
10/02/2004
10/03/2004
10/04/2004
10/05/2004
...
Como posso fazer isso?
Grato,
Ilano.
Tenho uma tabela com 15 registros, onde a única coisa q será alterada é o mês e o ano, isto é,:
10/11/2003
10/12/2003
10/01/2004
10/02/2004
10/03/2004
10/04/2004
10/05/2004
...
Como posso fazer isso?
Grato,
Ilano.
Ilanocf
Curtidas 0
Respostas
Motta
05/11/2003
procedure TForm1.Button1Click(Sender: TObject);
var i,ano,mes,dia : word;
d : TDateTime;
begin
ano := 2003;
mes := 1;
dia := 10; //cuidado com 29/30/31
for i := 1 to 15 do
begin
d := EncodeDate(ano,mes,dia);
memo1.Lines.Add(DateTimeTostr(d));
Inc(mes);
if mes > 12 then
begin
mes := 1;
Inc(ano);
end;
end;
end;
var i,ano,mes,dia : word;
d : TDateTime;
begin
ano := 2003;
mes := 1;
dia := 10; //cuidado com 29/30/31
for i := 1 to 15 do
begin
d := EncodeDate(ano,mes,dia);
memo1.Lines.Add(DateTimeTostr(d));
Inc(mes);
if mes > 12 then
begin
mes := 1;
Inc(ano);
end;
end;
end;
GOSTEI 0
Ilanocf
05/11/2003
Como faço para jogar isso nos registros da minha tabela?
GOSTEI 0
Motta
05/11/2003
Como vc faz gravação em tabela ?
vc parece ter mais dúvidas do que apresenta.
tente ler mais sobre acesso a base de dados.
componentes
ttable,tquery e derivados.
nao dá para responder sua pergunta de forma rápida
vc parece ter mais dúvidas do que apresenta.
tente ler mais sobre acesso a base de dados.
componentes
ttable,tquery e derivados.
nao dá para responder sua pergunta de forma rápida
GOSTEI 0
Ilanocf
05/11/2003
Olá pessoal,
Mota, realmente eu ainda tenho muitas dúvidas em Delphi, pois ainda sou aprendiz, mas quebrei bastante a cabeça e consegui resolver meu problema, não sei se esta era a melhor forma de se fazer isso, mas foi a melhor forma q encontrei e por isso vou compartilhar com vcs:
1º) Coloquei mais dois campos Edit2 e Edit3 para pegarem a parte do dia das datas;
2º) No botão Salvar, fiz:
------------------------------------------------
Try
DMDados.TBDetCarne.Post;
Edit3.Text:=Copy(DMDados.TBDetCarneVencimento.Text, 1, 2); //Edit3 será igual ao dia da data informada no primeiro registro.
DMDados.TBDetCarne.Active:=False;
DMDados.TBDetCarne.Active:=True;
Label5.Enabled:=False;
DBEdit4.Enabled:=False;
Label4.Enabled:=False;
ComboVencimento.Enabled:=False;
BtnImprimir1.Enabled:=True;
BtnImprimir2.Enabled:=True;
BtnNovo2.SetFocus;
Except
ShowMessage(´Comando não disponível.´);
End;
------------------------------------------------
3º) Coloquei um botão para fazer o cácluo, isto é, colocar o dia igual ao valor do campo Edit3:
------------------------------------------------
procedure TFrmCarne.BtnCalcularClick(Sender: TObject);
Var
cVencto, VDia, VCorrecao: String; //As variáveis VDia e VCorreção irão pegar o dia das datas
begin
DMDados.TBDetCarne.Last;
While (DMDados.TBDetCarne.RecordCount < StrToIntDef(Edit1.Text, 0)) Do
Begin
cVencto:=DateToStr(DMDados.TBDetCarneVencimento.AsDateTime);
DMDados.TBDetCarne.Append;
DMDados.TBDetCarneValorDoCurso.Value:=DMDados.TBCarneValorDoCurso.Value;
DMDados.TBDetCarneNomeDoAluno.Text:=DBEdit6.Text;
DMDados.TBDetCarneVencimento.Text:=DateToStr(StrToDate(cVencto) + 30);
Edit2.Text:=DMDados.TBDetCarneVencimento.Text;
VDia:=copy(Edit2.Text, 2, 2);
If VDia <> Edit3.Text Then
Begin
VDia:=Edit3.Text;
VCorrecao:=Edit3.Text + copy(Edit2.Text, 3,8);
Edit2.Text:=VCorrecao;
DMDados.TBDetCarneVencimento.Text:=Edit2.Text;
DMDados.TBDetCarne.Post
End
Else
DMDados.TBDetCarne.Post;
End;
DMDados.TBDetCarne.First;
Edit1.Clear;
RzPanel4.Visible:=False;
With DMDados.TotalDetCurso Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT Sum(TB_DetalheDoCarne.ValorDoCurso) AS SomaDeValorDoCurso FROM TB_DetalheDoCarne´);
Open;
End;
DMDados.TBDetCarne.Active:=False;
DMDados.TBDetCarne.Active:=True;
Panel2.Caption:= ´ Nº de Parcelas: ´ + FormatFloat(´00´, DMDados.TBDetCarne.RecordCount) + ´ x Valor Unitário: ´ + FormatFloat(´#,0.00´, DMDados.TBCarneValorDoCurso.Value) + ´ = Total R$: ´ + FormatFloat(´,0.00´, DMDados.TotalDetCursoSomaDeValorDoCurso.Value);
end;
------------------------------------------------
Ufa! Finalmente deu certo, como eu já disse, só não sei se é a melhor maneira, mas foi a melhor maneira q encontrei.
Grato pela ajuda.
Ilano.
Mota, realmente eu ainda tenho muitas dúvidas em Delphi, pois ainda sou aprendiz, mas quebrei bastante a cabeça e consegui resolver meu problema, não sei se esta era a melhor forma de se fazer isso, mas foi a melhor forma q encontrei e por isso vou compartilhar com vcs:
1º) Coloquei mais dois campos Edit2 e Edit3 para pegarem a parte do dia das datas;
2º) No botão Salvar, fiz:
------------------------------------------------
Try
DMDados.TBDetCarne.Post;
Edit3.Text:=Copy(DMDados.TBDetCarneVencimento.Text, 1, 2); //Edit3 será igual ao dia da data informada no primeiro registro.
DMDados.TBDetCarne.Active:=False;
DMDados.TBDetCarne.Active:=True;
Label5.Enabled:=False;
DBEdit4.Enabled:=False;
Label4.Enabled:=False;
ComboVencimento.Enabled:=False;
BtnImprimir1.Enabled:=True;
BtnImprimir2.Enabled:=True;
BtnNovo2.SetFocus;
Except
ShowMessage(´Comando não disponível.´);
End;
------------------------------------------------
3º) Coloquei um botão para fazer o cácluo, isto é, colocar o dia igual ao valor do campo Edit3:
------------------------------------------------
procedure TFrmCarne.BtnCalcularClick(Sender: TObject);
Var
cVencto, VDia, VCorrecao: String; //As variáveis VDia e VCorreção irão pegar o dia das datas
begin
DMDados.TBDetCarne.Last;
While (DMDados.TBDetCarne.RecordCount < StrToIntDef(Edit1.Text, 0)) Do
Begin
cVencto:=DateToStr(DMDados.TBDetCarneVencimento.AsDateTime);
DMDados.TBDetCarne.Append;
DMDados.TBDetCarneValorDoCurso.Value:=DMDados.TBCarneValorDoCurso.Value;
DMDados.TBDetCarneNomeDoAluno.Text:=DBEdit6.Text;
DMDados.TBDetCarneVencimento.Text:=DateToStr(StrToDate(cVencto) + 30);
Edit2.Text:=DMDados.TBDetCarneVencimento.Text;
VDia:=copy(Edit2.Text, 2, 2);
If VDia <> Edit3.Text Then
Begin
VDia:=Edit3.Text;
VCorrecao:=Edit3.Text + copy(Edit2.Text, 3,8);
Edit2.Text:=VCorrecao;
DMDados.TBDetCarneVencimento.Text:=Edit2.Text;
DMDados.TBDetCarne.Post
End
Else
DMDados.TBDetCarne.Post;
End;
DMDados.TBDetCarne.First;
Edit1.Clear;
RzPanel4.Visible:=False;
With DMDados.TotalDetCurso Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT Sum(TB_DetalheDoCarne.ValorDoCurso) AS SomaDeValorDoCurso FROM TB_DetalheDoCarne´);
Open;
End;
DMDados.TBDetCarne.Active:=False;
DMDados.TBDetCarne.Active:=True;
Panel2.Caption:= ´ Nº de Parcelas: ´ + FormatFloat(´00´, DMDados.TBDetCarne.RecordCount) + ´ x Valor Unitário: ´ + FormatFloat(´#,0.00´, DMDados.TBCarneValorDoCurso.Value) + ´ = Total R$: ´ + FormatFloat(´,0.00´, DMDados.TotalDetCursoSomaDeValorDoCurso.Value);
end;
------------------------------------------------
Ufa! Finalmente deu certo, como eu já disse, só não sei se é a melhor maneira, mas foi a melhor maneira q encontrei.
Grato pela ajuda.
Ilano.
GOSTEI 0