26-01-2009, 11:27 PM
بالنسبة للتمرين بالرابط فهو مثال فقط عن فلترة ف ينفس السنة 2008
بالنسبة للمتغير y كتبت y+1 لكن لو لاحظت كتبت 1 بالنسبة للشهر و 1 بالنسبة للسنة
اي اول يوم من سنة 2009 وبعدها لو لاحظت جيدا كتبت -1 للمتغير d2 اي انقصت يوم من ذلك التاريخ ليصبح اخر يوم من سنة2008 وهي مجرد طريقة لمعرفة اخر يوم بالشهر (31)
لذلك تظهر فقط تواريخ سنة 2008 والشهر المختار
ان اردت ان تكون السنة ماخوذة من الجهاز فيمكن
تغير الكود من
PHP كود :
m:= ComboBox1.ItemIndex + 1;
y := 2008;
PHP كود :
DecodeDate(now,y,m,d);
m:= ComboBox1.ItemIndex + 1;
يصبح المثال السابق بعد التعديل هكذا
PHP كود :
var
d,m,y: word;
d1,d2 : TDateTime;
begin
DateSeparator:='/';
ShortDateFormat:='DD/MM/YYYY';
DecodeDate(now,y,m,d);
m:= ComboBox1.ItemIndex + 1;
d1:=EncodeDate(y,m,1);
if m=12 then d2:=EncodeDate(Y+1,1,1) else
d2:=EncodeDate(Y,M+1,1);
d2 := d2 -1 ;
Table1.Filter := '(Date>='+QuotedStr(DateToStr(d1))+') and (Date<='+QuotedStr(DateToStr(d2))+')';
Table1.Filtered := True;
Caption:= Table1.Filter;
end;
ان كنت تقصد شيئ اخر او فلترة من شهر من سنة الى شهر اخر من سنة اخرى فالمثال بحاجة لتعديل اخر
والسلام عليكم

