و عليكم السلام و رحمة الله وبركاته
لا أدري إن وجدتَ حلاّ بَعدْ ... لكن الطريقة التي اشتغلتُ عَلَيْهَا في وضع مشابه :
***- جدول مساعدة فارغ ننشئه في قاعدة البيانات و هو الذي سنربطه بالتقرير ، على افتراض أن لديك 40 سطرا على الأكثر مثلا .
الجدول المساعد فيه مثلا 6 خانات في هذه الحالة :
رقم الجلوس ص2--- الاسم ص2--- م ص2--- رقم الجلوس ص3--- الاسم ص3--- م ص3
***- إجراء يقوم بالتعبئة وفق حلقة تكرارية
DataModule1.class2.RecNo:=1
DataModule1.class3.RecNo:=1
DataModule1.all_classes.RecNo:=1
![[صورة: star.png]](http://delphi4arab.net/forum/images/icons/star.png)
//
في هذه المرحلة قمنا بتحديد السجل الأول في كل جدول ،
for n :=0 to 40 do
all_classes.Append
DataModule1.all_classes.FieldByName('class2_placeN').AsString:=DataModule1.class2.FieldByName('placeN').AsString
DataModule1.all_classes.FieldByName('class2_Name').AsString:=DataModule1.class2.FieldByName('Name').AsString
DataModule1.all_classes.FieldByName('class2_Nt').AsString:=DataModule1.class2.FieldByName('Nt').AsString
DataModule1.all_classes.FieldByName('class3_placeN').AsString:=DataModule1.class3.FieldByName('placeN').AsString
DataModule1.all_classes.FieldByName('class3_Name').AsString:=DataModule1.class3.FieldByName('Name').AsString
DataModule1.all_classes.FieldByName('class2_Nt').AsString:=DataModule1.class2.FieldByName('Nt').AsString
DataModule1.class2.Next
DataModule1.claa3.Next
DataModule1.all_classes.Next
class2:----------------- جدول الصف الثاني
class3: ----------------جدول الصف الثالث
all_classes: ---------------الجدول المساعد
رقم الجلوس ص2 ------------- class2_placeN
الاسم ص2 ---------------- class2_Name
م ص 2 ------------- class2_Nt
رقم الجلوس ص3 -------------- class3_placeN
الاسم ص3----------------- class3_Name
م ص 3 ----------------- class3_Nt
*

يجب أن نأخذ بالحسبان جعل جميع حقول الجدول المساعد قابلة لإضافة قيمة خالية Null_Value_Allowed