Witam wszystkich
bolpolbc
jak w dbgrid wyświetlicz ilość lat
w tabeli man pola:
-nazwisko
-data_urodznia
-ilosc_lat
pozdrawiam
Witam wszystkich
bolpolbc
jak w dbgrid wyświetlicz ilość lat
w tabeli man pola:
-nazwisko
-data_urodznia
-ilosc_lat
pozdrawiam
napisz to jeszcze raz tylko teraz zrozumiale. Zacznij od podania bazy i struktury tabeli
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
Skoro w bazie masz pole ilosc_lat to gdzie tkwi problem?
w polu ilosc lat chcę żeby wiek Pana X był wyliczony automatycznie od aktualnej daty systemowej
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.
pobierz rok urodzenia z bazy i z daty systemowej (DecodeDate) odejmij i masz wynik nie widze zadnego problemu
witam
a możesz podać kawałek kodu może jakiś przykład jak to zrobić
pozdrawiam
bolpolbc
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
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