فلترة بيانات جدول حسب تاريخين من سنوات مختلفة
#2

بالنسبة للتمرين بالرابط فهو مثال فقط عن فلترة ف ينفس السنة 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; 
انتبه اظفت متغير d فقط لكي استعمل DecodeDate

ان كنت تقصد شيئ اخر او فلترة من شهر من سنة الى شهر اخر من سنة اخرى فالمثال بحاجة لتعديل اخر
والسلام عليكم
الرد


الردود في هذا الموضوع
فلترة بيانات جدول حسب تاريخين من سنوات مختلفة - بواسطة محمد عبد العزيز - 26-01-2009, 11:27 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم