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

نسخة كاملة : كيف جمع مجموع dbgrid في dbgrid
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
<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
و عليكم السلام ورحمة الله

ممكن يحل مشكلتك 
https://delphi4arab.net/forum/showthread.php?tid=10737
إقتباس :اذا امكن ايضا اريد جعل العمود 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;

انظر الى ملف المرفق
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. 
Ndagor
جزاك الله كل خير كنت راح اضيع من دونك اكثر من اسبوع ولا ايجابة بل حتى رد
اسئل الله ان يرحم والديك

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

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

إقتباس :اخي اريد ان اتواصل معك في الخاص اذا امكن
 خير ان شاء الله,,, الرسائل خاصة مفتوحة
قلت بديهيات Huh معظم الذين قرؤوا السؤال يعرفون الاجابة Angry لماذا لم يجيبوا Dodgy اين انا اذا Angel