كيف جمع مجموع dbgrid في dbgrid
#1
Star 
<p>السلام عليكم

لدي جدولين table1 و table2
و dbgrid1 مع dbgrid2
قمت بربطهم عن طريق master détail
اريد عند  اظهار dbgrid يتم حسباب مجموع كل يوزر كما يتم عدد عدد سجلته
ايضا بمجرد التعديل متلا في  dbgrid2 كاضافة سجل او تغير قيمة يتم التحديث فوق في dbgrid1 فورا
اذا امكن ايضا اريد جعل العمود price بصيغة المئات ويتجه من اليمين
شكرااا مسبقا وجزاكم الله خيراا

الملف <br><br><br>[صورة: vvvvvvvvvvvvvvv.jpg]<br></p>


https://www.mediafire.com/file/0ky0pczln...g.zip/file
الرد
#2
و عليكم السلام ورحمة الله

ممكن يحل مشكلتك 
https://delphi4arab.net/forum/showthread.php?tid=10737
[-] كل من 1 user says قال شكرا ل Lam.Abdeldjalil على المشاركة المفيدة
  • Med-01
الرد
#3
إقتباس :اذا امكن ايضا اريد جعل العمود price بصيغة المئات ويتجه من اليمين
الازاحة الى اليمين اليا بالنسبة للارقام هناك خطا في تحديد نوع المجال price يجب ان يكون float Double Currency او اي نوع من الاعداد حاليا هو Text اذهب الي قاعدة البيانات و غيره ,,,بالنسبة الى فورمة العدد يوجد في كل مجال Field خاصية DisplayFormat لاظهار بالشكل المراد ,,,   double click  على   ADOTable اضف العمدة التي تحتاها و قم بتحديد DisplayFormat للمجال   price



إقتباس :لدي جدولين table1 و table2
و dbgrid1 مع dbgrid2
قمت بربطهم عن طريق master détail
اريد عند عرض dbgrid يتم حسباب مجموع كل يوزر كما يتم عدد سجلته
قم بالخطوات التالية بالترتيب

اظف TADOQuery غير اسمه الي Qry للاختصار
حدد Connection الموجودة عندك
في SQL اضف
كود :
select sum([price]) as [UserSum], count([price]) as [UserRecords] from [Table2] where  [id_user]=:param0

واخيرا قم بتفعيله Active

في ADOTable2  اظف الكود التالي في  OnAfterDelete  و OnAfterPost 

كود :
procedure TForm5.ADOTable2AfterPost(DataSet: TDataSet); begin   if ADOTable1.RecordCount = 0 then     Exit;   ADOTable1.Refresh;   ADOTable1.Edit;   try      Qry.Active:=False;      Qry.Parameters[0].Value:=ADOTable1id_user.AsInteger;{id_user}      Qry.Active:=True;      ADOTable1sum.AsFloat:=Qry.Fields[0].AsFloat;{UserSum}      ADOTable1count_record.AsInteger :=Qry.Fields[1].AsInteger;{UserRecords}   finally     ADOTable1.Post;   end; end;

انظر الى ملف المرفق


الملفات المرفقة
.rar   ADO.rar (الحجم : 20.02 ك ب / التحميلات : 30)
[-] كل من 1 user says قال شكرا ل Ndagor على المشاركة المفيدة
  • Med-01
الرد
#4
PHP كود :
procedure TForm1.BtnSaveClick(Sender: TObject);
begin
       with Table1 
do
          begin
            Edit
;
            FieldByName('sum').AsFloat:= strtofloat( edtSubTotal2.Text);
            post;
          end;
end;

procedure TForm1.dsTable1DataChange(Sender: TObject; Field: TField);
begin
     with QryCalcul 
do
                begin
               Close
;
                SQL.Clear;
                  SQL.Add('SELECT SUM(sum) AS AmountP from Table1');
                SQL.Add('where ID  = :Cod');
                 parameters.ParamByName('Cod').Value := Table1ID.Value ;
                 Open;
                 edtSubTotal1.Text :=FormatFloat('###,###,##0.00', FieldByName('AmountP').Asfloat);

                         end;

end;

procedure TForm1.dsTable2DataChange(Sender: TObject; Field: TField);
begin
       with QryCalcul 
do
                begin
               Close
;
                SQL.Clear;
                  SQL.Add('SELECT SUM(price) AS AmountT from Table2');
                SQL.Add('where UserID  = :Cod');
                 parameters.ParamByName('Cod').Value := Table2UserID.Value ;
                 Open;
                 edtSubTotal2.Text :=FormatFloat('###,###,##0.00', FieldByName('AmountT').Asfloat);
                 end;

end;

end. 
[-] كل من 2 users say قال شكرا ل anter2016 على المشاركة المفيدة
  • Med-01, belkhir2
الرد
#5
Ndagor
جزاك الله كل خير كنت راح اضيع من دونك اكثر من اسبوع ولا ايجابة بل حتى رد
اسئل الله ان يرحم والديك

اخي اريد ان اتواصل معك في الخاص اذا امكن

anter2016
في ميزان حسناتك ان شاء الله اخي الكريم جزاك الله خيرا ورحم الله والديك
الرد
#6
شكرا,,,   ولكنك تطرح اسئلة من البديهيات و معظم الذين قرؤوا السؤال يعرفون الاجابة بطريقة او اخرى و ان لم تستغل هذه المواقف لتتعلم و تبحث بنفسك فمتى تتعلم,,,

إقتباس :اخي اريد ان اتواصل معك في الخاص اذا امكن
 خير ان شاء الله,,, الرسائل خاصة مفتوحة
[-] كل من 1 user says قال شكرا ل Ndagor على المشاركة المفيدة
  • Med-01
الرد
#7
قلت بديهيات Huh معظم الذين قرؤوا السؤال يعرفون الاجابة Angry لماذا لم يجيبوا Dodgy اين انا اذا Angel
الرد


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


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