delphi4arab منتديات دلفي للعرب
كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة (/showthread.php?tid=10580)



كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - dahmane26 - 12-12-2019

السلام عليكم 
لدي برنامج به 10 جداول وهذه الجداول لها نفس اسماء الحقول كانه جدول واحد مكرر ولها حقل رئيسي متمثل في تاريخ اليوم
كل جدول من هذه الجداول تسجل به ادخال العمليات يوميا على حسب العمل كما يمكن ان لا تسجل به ليوم او عدة ايام
حث تتم عملية يوقيف حسابات جميع الجداول بتاريخ كل من 26 من كل شهر  وبعدها تجمع مجاميع كل الحقل المتشابه للجداول ال 10 لتعرض النتائج على الشكل التالي في المرفقات
فما هي صيغة SQL اللازمة لذلك علما ان قاعدة المعطيات المستعملة هي Firebird

اتمنا ان اجد الاجابة وشكرا

المشكل الاهم هو ايجاد كيفية عرض نتائج 10 جداول في QuickRep واحدة وما هي الاجراءات اللازومة لذلك


.jpg   f1.jpg (الحجم : 173.16 ك ب / التحميلات : 33)
.jpg   f1.jpg (الحجم : 173.16 ك ب / التحميلات : 33)



RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - Mr.DOS - 12-12-2019

السلام عليكم
استبعد فكرة 10 جداول متشابهة ؟ انصحك بالتفكير في تصميم قاعدة البيانات من جديد !
يمكن اختصارها الى جدولين فقط !


RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - dahmane26 - 12-12-2019

(12-12-2019, 10:27 PM)Mr.DOS كتب : السلام عليكم
استبعد فكرة 10 جداول متشابهة ؟ انصحك بالتفكير في تصميم قاعدة البيانات من جديد !
يمكن اختصارها الى جدولين فقط !
 كيف يتم ذلك اعطني فكرة لاني في امس الحاجة لهذه الفكرة


RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - Mr.DOS - 12-12-2019

طيب
الجدول 1 :
اترك جدول واحد كانموذج وضف اليه حقل جديد يميز الخدمة (serie)
عملية الاضافة تتم من على الفورم بشكل عادي ، على مستخدم البرنامج يحدد (serie) نوع الخدمة فقط deblocage او depense او ap ...
عند نهاية كل اسبوع ، او تاريخ معين ، تتم عملية جمع الحقول وفق الشرط وهو الحقل الاضافي (serie)

شكل عام للاستعلام
select sum(field1),sum(field2),sum(field3),sum(field4),
sum(field5).. from tablenam where condition (exa: where serie = deblocage)
---------------------------- وهكذا مع باقي ( serie)  
الجدول 2 :
الناتج من كل استعلام (الجدول 1): تقوم بإضافته للجدول الثاني


RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - dahmane26 - 13-12-2019

(12-12-2019, 11:15 PM)Mr.DOS كتب : طيب
الجدول 1 :
اترك جدول واحد كانموذج وضف اليه حقل جديد يميز الخدمة (serie)
عملية الاضافة تتم من على الفورم بشكل عادي ، على مستخدم البرنامج يحدد (serie) نوع الخدمة فقط deblocage او depense او ap ...
عند نهاية كل اسبوع ، او تاريخ معين ، تتم عملية جمع الحقول وفق الشرط وهو الحقل الاضافي (serie)

شكل عام للاستعلام
select sum(field1),sum(field2),sum(field3),sum(field4),
sum(field5).. from tablenam where condition (exa: where serie = deblocage)
---------------------------- وهكذا مع باقي ( serie)  
الجدول 2 :
الناتج من كل استعلام (الجدول 1): تقوم بإضافته للجدول الثاني

شكرا اخي وجاري التجريب 
هل ممكن استعلام اضافة النتاىج للجدول الثاني



RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - Mr.DOS - 13-12-2019

سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;


RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - dahmane26 - 16-12-2019

(13-12-2019, 01:56 PM)Mr.DOS كتب : سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;

قمت بمحاولة ادخال المعطيات عن طريق SQL بكتابة مايلي :

--------------------------------------------------
begin
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('insert into S_Jour(DATE_JOURNNEE,SERIE_DU,SERIE_AU,QUITTANCE_DU,QUITTANCE_AU,') ;
DFM.Qadd.SQL.Add ('MONTANT_NUMERAIRE,MONTANT_BANCAIRE,MONTANT_CCP,APPLICATION');
DFM.Qadd.SQL.add(''''+form1.maskedit3.text+''','''+dbedit1.text+''','''+dbedit2.text+''',');
DFM.Qadd.SQL.add(' '''+dbedit3.text+''','''+dbedit4.text+''','''+dbedit5.text+''','''+dbedit6.text+''','''+dbedit7.text+''','''+dbedit21.text+'''');

DFM.Qadd.ExecSQL;
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('select from S_Jour * order by SERIEDATE_JOURNNEE');
DFM.Qadd.Open;
end;
end;
-----------------------------------
نتج عنه الخطا التالي في المرفقات فما هو التصحيح

(13-12-2019, 01:56 PM)Mr.DOS كتب : سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;

قمت بمحاولة ادخال المعطيات عن طريق SQL بكتابة مايلي :

--------------------------------------------------
begin
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('insert into S_Jour(DATE_JOURNNEE,SERIE_DU,SERIE_AU,QUITTANCE_DU,QUITTANCE_AU,') ;
DFM.Qadd.SQL.Add ('MONTANT_NUMERAIRE,MONTANT_BANCAIRE,MONTANT_CCP,APPLICATION');
DFM.Qadd.SQL.add(''''+form1.maskedit3.text+''','''+dbedit1.text+''','''+dbedit2.text+''',');
DFM.Qadd.SQL.add(' '''+dbedit3.text+''','''+dbedit4.text+''','''+dbedit5.text+''','''+dbedit6.text+''','''+dbedit7.text+''','''+dbedit21.text+'''');

DFM.Qadd.ExecSQL;
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('select from S_Jour * order by SERIEDATE_JOURNNEE');
DFM.Qadd.Open;
end;
end;
-----------------------------------
نتج عنه الخطا التالي في المرفقات فما هو التصحيح


RE: كيفية اظهار جمع نتائج عدة جداول في ورقة واحدة - dahmane26 - 21-12-2019

(16-12-2019, 04:32 PM)dahmane26 كتب :
(13-12-2019, 01:56 PM)Mr.DOS كتب : سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;

قمت بمحاولة ادخال المعطيات عن طريق SQL بكتابة مايلي :

--------------------------------------------------
begin
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('insert into S_Jour(DATE_JOURNNEE,SERIE_DU,SERIE_AU,QUITTANCE_DU,QUITTANCE_AU,') ;
DFM.Qadd.SQL.Add ('MONTANT_NUMERAIRE,MONTANT_BANCAIRE,MONTANT_CCP,APPLICATION');
DFM.Qadd.SQL.add(''''+form1.maskedit3.text+''','''+dbedit1.text+''','''+dbedit2.text+''',');
DFM.Qadd.SQL.add(' '''+dbedit3.text+''','''+dbedit4.text+''','''+dbedit5.text+''','''+dbedit6.text+''','''+dbedit7.text+''','''+dbedit21.text+'''');

DFM.Qadd.ExecSQL;
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('select from S_Jour * order by SERIEDATE_JOURNNEE');
DFM.Qadd.Open;
end;
end;
-----------------------------------
نتج عنه الخطا التالي في المرفقات  فما هو التصحيح

(13-12-2019, 01:56 PM)Mr.DOS كتب : سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;

قمت بمحاولة ادخال المعطيات عن طريق SQL بكتابة مايلي :

--------------------------------------------------
begin
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('insert into S_Jour(DATE_JOURNNEE,SERIE_DU,SERIE_AU,QUITTANCE_DU,QUITTANCE_AU,') ;
DFM.Qadd.SQL.Add ('MONTANT_NUMERAIRE,MONTANT_BANCAIRE,MONTANT_CCP,APPLICATION');
DFM.Qadd.SQL.add(''''+form1.maskedit3.text+''','''+dbedit1.text+''','''+dbedit2.text+''',');
DFM.Qadd.SQL.add(' '''+dbedit3.text+''','''+dbedit4.text+''','''+dbedit5.text+''','''+dbedit6.text+''','''+dbedit7.text+''','''+dbedit21.text+'''');

DFM.Qadd.ExecSQL;
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('select from S_Jour * order by SERIEDATE_JOURNNEE');
DFM.Qadd.Open;
end;
end;
-----------------------------------
نتج عنه الخطا التالي في المرفقات  فما هو التصحيح

(21-12-2019, 09:18 PM)dahmane26 كتب :
(16-12-2019, 04:32 PM)dahmane26 كتب :
(13-12-2019, 01:56 PM)Mr.DOS كتب : سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;

قمت بمحاولة ادخال المعطيات عن طريق SQL بكتابة مايلي :

--------------------------------------------------
begin
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('insert into S_Jour(DATE_JOURNNEE,SERIE_DU,SERIE_AU,QUITTANCE_DU,QUITTANCE_AU,') ;
DFM.Qadd.SQL.Add ('MONTANT_NUMERAIRE,MONTANT_BANCAIRE,MONTANT_CCP,APPLICATION');
DFM.Qadd.SQL.add(''''+form1.maskedit3.text+''','''+dbedit1.text+''','''+dbedit2.text+''',');
DFM.Qadd.SQL.add(' '''+dbedit3.text+''','''+dbedit4.text+''','''+dbedit5.text+''','''+dbedit6.text+''','''+dbedit7.text+''','''+dbedit21.text+'''');

DFM.Qadd.ExecSQL;
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('select from S_Jour * order by SERIEDATE_JOURNNEE');
DFM.Qadd.Open;
end;
end;
-----------------------------------
نتج عنه الخطا التالي في المرفقات  فما هو التصحيح

(13-12-2019, 01:56 PM)Mr.DOS كتب : سلام عليكم / تقبل الله منا ومنكم 

هناك عدة طرق  اما عن طريق السحب والافلات او حفظ النتائج في مصفوفة او متغيرات ...
لكن انصحك بالطريقة السهلة
لما تعمل استعلام للجدول الاول : تكون قد جهزته مسبقا من وضع التصميم مع سحب وافلات للحقول على الفورم (طبعا يمكن اخفاءها)

الاضافة تكون على الجدول الثاني 2 استنادا من نتائج الحقول (dbedit....1 2 3 )

شكل عام  SQL
insert into table_name values (value1 value2 value3 ...)
value1=dbedit1.text مثلا وهكذا
value2=dbedit2.text ...

او الاضافة
table.append;
table.fieldbyname(fieldname).value:=dbedit1.text;
table.fieldbyname(fieldname).value:=dbedit2.text;
table.fieldbyname(fieldname).value:=dbedit3.text;
table.post;

قمت بمحاولة ادخال المعطيات عن طريق SQL بكتابة مايلي :

--------------------------------------------------
begin
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('insert into S_Jour(DATE_JOURNNEE,SERIE_DU,SERIE_AU,QUITTANCE_DU,QUITTANCE_AU,') ;
DFM.Qadd.SQL.Add ('MONTANT_NUMERAIRE,MONTANT_BANCAIRE,MONTANT_CCP,APPLICATION');
DFM.Qadd.SQL.add(''''+form1.maskedit3.text+''','''+dbedit1.text+''','''+dbedit2.text+''',');
DFM.Qadd.SQL.add(' '''+dbedit3.text+''','''+dbedit4.text+''','''+dbedit5.text+''','''+dbedit6.text+''','''+dbedit7.text+''','''+dbedit21.text+'''');

DFM.Qadd.ExecSQL;
DFM.Qadd.Close;
DFM.Qadd.SQL.Clear;
DFM.Qadd.SQL.Add('select from S_Jour * order by SERIEDATE_JOURNNEE');
DFM.Qadd.Open;
end;
end;
-----------------------------------
نتج عنه الخطا التالي في المرفقات  فما هو التصحيح
هل من مجيب