wyświetlanie ilości lat w dbgrid

0

Witam wszystkich
bolpolbc

jak w dbgrid wyświetlicz ilość lat
w tabeli man pola:
-nazwisko
-data_urodznia
-ilosc_lat

pozdrawiam

0

napisz to jeszcze raz tylko teraz zrozumiale. Zacznij od podania bazy i struktury tabeli

0

Witam serdecznie
Bolpol

Bazę mam w DBE (Paradox) komponenty Table1 i DataSource1 standardowe
W tabeli są pola (nazwisko, data_urodzenia i ilosc_lat).
A dokładnie chodzi mi oto aby w polu ilość_lat pokazało się od daty systemowej ile ta osoba ma lat
Oto przykład

Nazwisko Data urodzenia Lata
Pan X 1968-02-10 40

Pozdrawiam bolpol

0

Skoro w bazie masz pole ilosc_lat to gdzie tkwi problem?

0

w polu ilosc lat chcę żeby wiek Pana X był wyliczony automatycznie od aktualnej daty systemowej

0

Mam taki kod programu

unit Unit1;

interface

uses
SysUtils, Classes, Controls, Forms, DTCalc, ComCtrls, StdCtrls, DB,
DBTables, Grids, DBGrids, ExtCtrls, DBCtrls, DBDateTimePicker,
JvDBGridFooter;

type
TForm1 = class(TForm)
DTCalc: TDTCalc;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
DBNavigator1: TDBNavigator;
DBDateTimePicker1: TDBDateTimePicker;
DBText1: TDBText;
JvDBGridFooter1: TJvDBGridFooter;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);

begin
DTCalc.StartTime := DBDateTimePicker1.Date;
DTCalc.EndTime := Date;
DBDateTimePicker1.Date;
DBText1.Caption := 'ilosc lat:' + IntToStr(DTCalc.Years);
Table1.edit;
Table1.FieldByName ('ilosc-lat) + IntToStr(DTCalc.Years);
//Table1.FieldByName('Lata').AsDateTime:=DBDateTimePicker1.Date;
Table1.post;
end;

end.

0

pobierz rok urodzenia z bazy i z daty systemowej (DecodeDate) odejmij i masz wynik nie widze zadnego problemu

0

witam
a możesz podać kawałek kodu może jakiś przykład jak to zrobić

pozdrawiam
bolpolbc

0

a) klikasz dwa razy na table
b) prawym na tym okienku i New Field
c) wpisujesz nazwę pola, które będzie pokazywało tą datę (musi być inna od już istniejących pól) (np. WyliczonyWiek)
d) w component podajesz nazwę pola, jak będzie ono widoczne w kodzie (np. WyliczonyWiek)
e) Type wybierasz Integer
f) zaznaczasz Calculated
g) klikasz ok
h) klikasz jeszcze raz prawym i wybierasz add all field
i) jeśli jakichś pól nie chcesz pobierać to je kasujesz (WAŻNE: musisz mieć dodane to pole, gdzie w bazie masz datę, czyli u Ciebie data_urodznia)
j) zamykasz to okienko
k) zaznaczasz table
l) w OI klikasz na Events i dwa razy na OnCalcField
m) w metodzie wpisujesz coś na kształt

WyliczonyWiek.Value := YearsBetween(Now, Table1data_urodzenia.Value);
//Table1data_urodzenia to nazwa jaką dostało twoje pole data_urodzenia i może być inna

więcej o polach wyliczalnych w helpie i googlach

0

witam

udało mi się to w końcu zrobić dzieki twojej pomocy i instrukcjom MISIEKD
wielkie dzieki za pomoc i zainteresowanie się miom problemem

serdecznie pozdrawiam
bolpolbc

1 użytkowników online, w tym zalogowanych: 0, gości: 1