الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تجميع تراكمي في التقرير

مغلق
بدأه jameel10 في 30 مارس 2006 · 10 رد · 2,124 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني في المنتدى أنا بحاجة من أي عضو أو مشرف لفكرة عمل تقرير كالتالي:

مجموع الطلاب (مثلا) في الصفحة الأولى من التقرير في "تذييل الصفحة" ـ هذا معروف ـ

ولكن في الصفحة الثانية أريد مجموع الطلاب الذي كان في تذييل الصفحة الأولى ـ في سطر مستقل ـ يليها مجموع الصفحة الثانية ـ فقط ـ في سطر مستقل وفي السطر الثالث مجموع الصفحتين ..

وهكذا ..في الصفحة الثالثة يكون في التذييل مجموع الطلاب للصفحة الحالية في سطر وتحته مجموع الطلاب في الصفحات السابقة ثم الاجمالي كاملا ..وهكذا ..أتمنى أن يوجد من يفهم سؤالي على الأقل..

شكرا لكم ...

#2

السلام عليكم ورحمة الله

أخى الكريم

أتمنى اكون فهمت سؤالك صح,

عملت لحضرتك تقرير يكون فى تذييله ثلاثة مربعات نص فقط,

1) مجموع السابق ( مجموع جميع الصفحات السابقة معا ).

2) مجموع الصفحة الحالية.

3) المجموع الكلى.

( ارجو من الإخوة المشرفين تغيير عنوان الموضوع بما يناسب محتواه )

والله الموفق,,,

PageSum.rar

تم تعديل هذه المشاركة بواسطة عماد حمدي احمد في 30 مارس 2006 في 04:14

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#3

الأخ / عماد حمدي السلام عليكم ورحمة الله

في الحقيقة أناملي تقف عاجزة عن التعبير بالامتنان والشكر لكم ولجميع رواد ومشرفي منتدانا الغالي ..وأسأل من الله لكم دوام التوفيق والنجاح...

أشكرك مرة أخرى لأنك فكرت في مشكلتي وأنرت لي طريق التفكير ...

هذا كل ما أريد ...وللعلم فقد كدت أن أيأس وأتحول الى لغة برمجة أخرى علها تسعفني ...

مرة أخرى أشكرك وجزالك الله خير الجزاء .. في الدنيا والآخرة ..لك ولكل من قرأ ملاحظاتك..

وادامك الله ذخرا للممتدئيين...وشـــــــــــــــــــكــــــرا

#4

الأستاذ الفاضل ...حياك الله

أرجو التكرم بشرح الطريقة التي اتبعتها لأني لم أجد أي معادلات في الحدث event

وكذا لم أفهم كيف استطعت اقناع التقرير بان يجمع بالطريقة التي أبحث عنها!!!

هل تتكرم بالايضاح ؟؟

وشكرا لك

#5

السلام عليكم ورحمة الله

اخى الكريم jameel10

بارك الله فيك , وشكرا على كلامك ودعواتك , ولك مثلها ان شاء الله.

بالنسبة للتقرير فهو مكون من ثلاثة حقول كما رايت , وجميعها من الجدول المسمى main , وهذه الحقول هى

1) code وهو مفتاح اساسى

2) name

3) salary

والمفروض طبعا حسب طلب حضرتك , ان يتم تجميع الــ Salary ( مثلا ) فى تذييل التقرير بحيث يتم حساب مجموع ما سبق , ومجموع الصفحة الحالية , والمجموع الكلى.

ولذلك انشأت لك ثلاث مربعات نص باسماء Prev (ماقبله) , ThisPage (الحالى) , Total (المجموع الكلى) .

فى الحقيقة اخى الكريم التركيز الفعلى هنا والفكرة الرئيسية هنا على اثنين فقط وهما Prev , Total والثالث سيخرج نتيجة الطرح بينهم.

لو ان حضرتك عملت بحث فى المنتدى على كلمة ( مجموع ) ستجد العديد من المواضيع المشابهة لحالتك تقريبا , وجميعها به افكار ممتازه.

ولكن فى الحقيقة قمت بعمل هذا المجموع بافكار مختلفة تماما عنهم , واعتقد انها اسرع واسهل ( صراحة لم اتاكد هل سبقنى اليها احد ام لا , يمنكنك عمل بحث والتاكد).

كل الفكرة تقوم بعمل ايجاد مجموع الــ Salary من الجدول الرئيسى main , باستخدام الدالة التجميعية DSum ,على هذا الشكل

DSum("[salary]", "main", "[Code]<=" & VALUE)

وطبعا قيمة الـ VALUE هذه هى الفكرة كلها .

طبعا التقرير مسلسل فى صورة سجلات متصلة بحيث يبدأ فى اعلى الصفحة بقيمة معينه لحقل الكود ولتكن Val1 وينتهى فى اسفل الصفحة بقيمة اخرى Val2 وبالتالى ستكون صيغة الجمع كالتالى

Prev = DSum("[salary]", "main", "[Code]<" & Val1)
Total= DSum("[salary]", "main", "[Code]<=" & Val2)

ولكن المشكله فين ؟ انه كيف سنعرف قيمة Val1 و Val2 لكل صفحة ؟

والاجابة بمنتهى البساطة هى فى رأس وتذييل الصفحة ...

فى راس الصفحة ستكون قيمة الــ code هى القيمة Val1 , وفى تذييل الصفحة ستبلغ قيمة الــ code القيمة Val2.

ولذلك أخى الكريم سيتم حساب القيمة Prev فى حدث On Format لرأس الصفحة , وتحسب قيمة الــ Total فى حدث On Format لتذييل الصفحة كالتالى

Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer)
Total = Nz(DSum("[salary]", "main", "[Code]<=" & code), 0)
ThisPage = Nz([Total] - [Prev], 0)
End Sub

Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer)
Prev = Nz(DSum("[salary]", "main", "[Code]<" & code), 0)
End Sub

هذا كل ما فى الامر,,,

ملاحـــظات:

1) الدالة Nz تستخدم للعودة بالقيمة صفرا لو كانت النتيجة هى Null ( اى لا يوجد سجلات للجمع )

2) تم حذف علامة التساوى اثناء حساب الــ Prev , لتجنب دخول اول سجل فى الصفحة فى حساب مجموع ما قبله.

3) تم احتساب قيمة المجموع للصفحة الحالية , على انه الفرق بين Total ,Prev.

4) يجب ملاحظة ايضا اننا استخدمنا الدالة DSum على الجدول الذى يستمد منه التقرير بياناته , ولو كان التقرير يستمد بياناته من استعلام خلاف الجدول , سنقوم بتغيير اسم الجدول داخل الكود الى اسم الاستعلام.

هذا وبالله التوفيق ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6

الأستاذ الفاضل عماد حمدي ............السلام عليكم ورحمة الله :

أشكرك من كل قلبي .. وللامانة حاولت كثيرا أن ابحث عن هذه المعادلات بشتى الطرق ..جعل الله كل حرف مما كتبت في ميزان حسناتك ..وزادك الله علما وفهما ...

أعتقد انني الآن استطيع أن أحمل هذه المعادلات حتى من استعلام .. وسأوافيك بالنتيجة لاحقا ...وشكرا لك ولمن أسس هذا النتدى الرائع..

#7

الأستاذ عماد ...

نجحت وبجدارة أشكرك من كل قلبي .....سأظل أتابع ابداعاتكم في هذا المنتدى ........

أتمنى لك التوفيق والنجاح ... وأتمنى لكل الزملاء دوام التواصل لأني بحثت في أغلب

المنتديات طوال ستة أشهر ولم أجد ردا على سؤالي .

الى اللقاء والله يوفق الجميع

#8

السلام عليكم ورحمة الله

أخى الكريم jameel10

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

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#9

الأخ الكريم عماد

السلام عليكم ورحمة الله وبركاته

هل من الممكن لزيادة الناحية الجمالية للتقرير ان يكون السطر الأول فى الصفحة التالية لإجمالى ماقبله وهكذا حتى الصفحة الأخيرة والسطر الأخير من الصفحة الأولى حتى قبل الأخيرة يكون بإسم رصيد منقول او نقل بعده او اى تعبير محاسبى آخر وفى الصفحة الأخيرة من التقرير يكون الإجمالى ولا تظهر عبارة نقل بعده او بعده او رصيد منقول ولك منى الدعاء بالتوفيق

أخوك إبراهيم _ إسكندرية ملاحظة لقد عملت على برنامج مصمم بالأكسيس منذ 11 سنة وبه هذه الإمكانيات ولكنى نسيت كيف صمم هذا البرنامج لإنقطاعى عن الأكسيس فترة طويلة

#10

السلام عليكم ورحمة الله

الأخ الكريم etqan54

كل عام وحضرتك بخير

للاسف اخى الكريم لم افهم قصدك جيدا , ارجو التوضيح جيدا,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#11

الأخ الكريم عماد

شكر الله لك إهتمامك وأتمنى لك التوفيق والسعادة فى الدنيا والآخرة مرفق ملف لتقرير على الإكسل به ما أتمنى عمله بالأكسيس كتقرير فقط اما الجداول والنمازج فهى تقريبا جاهزة ولك منى الدعاء

أخوك إبراهيم

الأخ الكريم عماد وكل عام وأنت الى الله أقرب وشكر الله لك إهتمامك وأتمنى لك التوفيق والسعادة فى الدنيا والآخرة مرفق ملف لتقرير على الإكسل به ما أتمنى عمله بالأكسيس كتقرير فقط اما الجداول والنمازج فهى تقريبا جاهزة ولك منى الدعاء

أخوك إبراهيم

Book1.rar

Book1.rar

هذا الموضوع مغلق.

مواضيع مشابهة