فيما يخص الفلترة بحقول متعددة
#2
و عليكم السلام ورحمة الله وبركاته،

لدينا الاحتمالات التالية:

1- بحث بالتاريخ فقط.
2- بحث بالتاريخ و المستخدمين فقط.
3- بحث بالتاريخ و الحركة فقط.
4- بحث بالتاريخ و المستخدمين و الحركة.
PHP كود :
  if (Check_Boxdate.Checked = true) then
    if  
(Checkbox_User.checked= False) then
      
if (Checkbox_Mouvement.checked= False) then
      begin 
// only Date
            Query1.Close;
            Query1.SQL.Clear;
            Query1.SQL.Add('SELECT  *');
            Query1.SQL.Add('FROM  MyTable1');
            Query1.SQL.Add('where MyDate BETWEEN :Dt1 and :Dt1');
            Query1.ParamByName('Dt1').AsDate := picker1.Date;
            Query1.ParamByName('Dt2').AsDate := picker2.Date;
            Query1.Open;
      end
      
else //filter with  Date and comboboxMouvement  only
      begin
            Query1
.Close;
            Query1.SQL.Clear;
            Query1.SQL.Add('SELECT  *');
            Query1.SQL.Add('FROM  MyTable1');
            Query1.SQL.Add('where (MyDate BETWEEN :Dt1 and :Dt1) and (Mouvement = :Mv)');
            Query1.ParamByName('Dt1').AsDate := picker1.Date;
            Query1.ParamByName('Dt2').AsDate := picker2.Date;
            Query1.ParamByName('Mv').AsString := comboboxMouvement.Text;
            Query1.Open;
      end
    
else
      if (Checkbox_Mouvement.checked= False) then
      begin 
// Date  and user Only
            Query1.Close;
            Query1.SQL.Clear;
            Query1.SQL.Add('SELECT  *');
            Query1.SQL.Add('FROM  MyTable1');
            Query1.SQL.Add('where (MyDate BETWEEN :Dt1 and :Dt1) and (MyUser = :Usr)');
            Query1.ParamByName('Dt1').AsDate := picker1.Date;
            Query1.ParamByName('Dt2').AsDate := picker2.Date;
            Query1.ParamByName('Usr').AsString := comboboxUser.Text;
            Query1.Open;
      end
      
else //filter with  Date and user and comboboxMouvement
      begin
            Query1
.Close;
            Query1.SQL.Clear;
            Query1.SQL.Add('SELECT  *');
            Query1.SQL.Add('FROM  MyTable1');
            Query1.SQL.Add('where (MyDate BETWEEN :Dt1 and :Dt1) and (MyUser = :Usr)  and (Mouvement = :Mv)');
            Query1.ParamByName('Dt1').AsDate := picker1.Date;
            Query1.ParamByName('Dt2').AsDate := picker2.Date;
            Query1.ParamByName('Usr').AsString := comboboxUser.Text;
            Query1.ParamByName('Mv').AsString := comboboxMouvement.Text;
            Query1.Open;
      end 


Query1   هو اسم المكون الذي تتصل به لتجلب المعلومات مثل ADO Query1 .

و الله أعلم.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد


الردود في هذا الموضوع
RE: طلب مساعدة فيما يخص الفلترة بحقول متعددة - بواسطة أبو معاذ - 04-03-2023, 05:23 PM

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


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