delphi4arab منتديات دلفي للعرب

نسخة كاملة : [تمرين] فلترة بيانات جدول حسب الشهر في سنة معينة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
هذا التنسيق من الكود الذي وضعته و هو كما طلبته تماماً :confused:

[صورة: 12yy7.gif]
لا، التاريخ بالتمرين من الشكل dd/mm/yyyy
السلام عليكم و رحمة الله و بركاته

الحل - أن أوفق
PHP كود :
procedure TForm1.ComboBox1Change(Sender: TObject);
var
Fil:String;
M,J,A:Integer;
begin
 Fil 
:='';
 
M:=(Combobox1.ItemIndex+1);
 
A := 2008;
 case 
M of
 1
,3,5,7,8,10,12 : j := 31;
 
4,6,9,11 : j := 30;
 
2 : if (A mod 4)=0 then j:= 29 else j := 28;
 
end;
 
fil := 'Date>=''01/'+formatfloat('00',M)+'/'+Formatfloat('0000',A)+''' and date<='''+Formatfloat('00',j)+'/'+formatfloat('00',M)+'/'+Formatfloat('0000',A)+'''';
 
Table1.Filtered:=true;
 
Table1.Filter:=Fil;
 
end; 

taha_gh فكرة تشبه قليلا فكرة hanipino
وهو اول كود صحيح
والسلام عليكم

اليوم اخر يوم للتمرين
وهذا حلي
PHP كود :
var
  
m,y: word;
  
d1,d2 : TDateTime;
begin
  DateSeparator
:='/';
  
ShortDateFormat:='DD/MM/YYYY';

  
m:= ComboBox1.ItemIndex + 1; if m=0 then Exit;
  
y := 2008;

  
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;
end; 

ملاحظة أول تعليمتين من المفترض وضعهما في الحدث OnCreate للForm الرئيسية لاننا نحتاج تنفيذهما مرة فقط
والسلام عليكم
اووووووووو DaltaAziz واش نحكيلك سيلييييييما ...
هذا هو لب التمرين . مشكور .
إقتباس : DateSeparator:='/';
ShortDateFormat:='DD/MM/YYYY';
EncodeDate

hanipino هي مجرد طريقة ويوجد الكثير غيرها

لكي تعم الفائدة
الطرق الاربع بتعديل بسيط لكي تكون صحيحة حسب التمرين بالمرفق
كل طريقة بزر Button

والسلام عليكم
والله يا عزيز يعطيك الصحة
السلام عليكم يا اخي عزيز سؤال من فضلك حول هذا التمرين ؟
هل يجب تغير السنة كل سنة او كبف الحل

السنة هي المتغير y يمكنك تغييره بما تشاء
ان كنت تقصد شيئ اخر اوضح اكثر في موضوع جديد في قسم الاسئلة
والسلام عليكم
الصفحات : 1 2