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

حساب الكمية حسب الشرائح

بدأه ebraheem-w في 17 يونيو 2012 · 24 رد · 1,259 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كود حساب السعر حسب الشرائح الموضحة بالشكل التالي:

post-262597-087686100 1339939395_thumb.p

جزاكم الله عنا كل خير

المرفقات
بدون عنوان.png
#2

اخي الفاضل : ابراهيم

اين هي الشرائح التي تتحدث عنها في الصوره

لا ارى سوى حقلين وهما الإستهلاك والمبلغ والحقل الثالث هو نتيجة ضرب الحقلين في بعضهما البعض

عندما نقول شرائح سواء للمياه او الكهرباء فالوضع مختلف بارك الله بك

بحيث يتم اولا تحديد الشريحة ويكون لها كمية استهلاك وسعر ثابت

وعندما يزيد الإستهلاك يتم الإنتقال الى الشريحة التي بعدها ولها سعر استهلاك اعلى من الأولى ... وهكذا بقية الشرائح

الخلاصة : يجب تحديد عدد الشرائح اولا ( الشريحة الأولى - الشريحة الثانية - الشريحة الثالثة ) ويتم وضع الإستهلاك والسعر لكل شريحة على حده

بعد ذلك يتم حساب اجمالي كل شريحة على حده وكذلك الإجمالي النهائي لكل الشرائح

بالتوفيق

#3
zahrah كتب:

اخي الفاضل : ابراهيم

اين هي الشرائح التي تتحدث عنها في الصوره

لا ارى سوى حقلين وهما الإستهلاك والمبلغ والحقل الثالث هو نتيجة ضرب الحقلين في بعضهما البعض

عندما نقول شرائح سواء للمياه او الكهرباء فالوضع مختلف بارك الله بك

بحيث يتم اولا تحديد الشريحة ويكون لها كمية استهلاك وسعر ثابت

وعندما يزيد الإستهلاك يتم الإنتقال الى الشريحة التي بعدها ولها سعر استهلاك اعلى من الأولى ... وهكذا بقية الشرائح

الخلاصة : يجب تحديد عدد الشرائح اولا ( الشريحة الأولى - الشريحة الثانية - الشريحة الثالثة ) ويتم وضع الإستهلاك والسعر لكل شريحة على حده

بعد ذلك يتم حساب اجمالي كل شريحة على حده وكذلك الإجمالي النهائي لكل الشرائح

بالتوفيق

اشكرك اختي زهرة على المتابعة

سوف اعطيكي مثال

نفرض كان الاستهلاك 80 فإن حسابها على الشكل التالي

1____15 استهلاك * 2.5 سعر =37.5 قيمة

2____10*7=70

3____15*15=225

4____20*22=440

5____20*30=600

كمية الكليةللاستهلاك 80

اجمالي القيمة =1372.5 وهذا الرقم الذي اريد حسابه

#4

تفضل اخي الكريم

post-15367-044000200 1339976420_thumb.gi

za-Water.rar

بالتوفيق

المرفقات
Z1.gif
#5
zahrah كتب:

تفضل اخي الكريم

post-15367-044000200 1339976420_thumb.gi

za-Water.rar

بالتوفيق

جزاك الله عنا كل خير

لكني افضل ان اضع الكمية مثلا 80 تعطيني النتيجة فورا

دون فرزها يدويا

اشكرك اختي ام العهود

تم تعديل هذه المشاركة بواسطة ebraheem-w في 18 يونيو 2012 في 03:31

#6
ebraheem-w كتب:

جزاك الله عنا كل خير

لكني افضل ان اضع الكمية مثلا 80 تعطيني النتيجة فورا

دون فرزها يدويا

اشكرك اختي ام العهود

اخي الفاضل : ابراهيم

ما هو المقصود بأن تضع الكمية 80 وتحصل على النتيجة فورا

اي كمية تقصد ؟

هل تقصد اجمالي الكمية 80 في تذييل النموذج ام تقصد شيء آخر

يا ريت توضح اكثر الفكرة التي تريد الوصول لها !!!!

بالتوفيق

#7

أستاذنك أختي وأستاذتي القديرة أم عهود, وأرجو العفو على تطفلي

ربما كان السائل يرغب بعمل معادلة تحسب قيمة الاستهلاك "س" بحسب الأسعار الموضحة أعلاه.

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

في المرفق تعديل بحسب ما فهمت من طلب السائل.

za-Water1.rar

#8
zahrah كتب:

اخي الفاضل : ابراهيم

ما هو المقصود بأن تضع الكمية 80 وتحصل على النتيجة فورا

اي كمية تقصد ؟

هل تقصد اجمالي الكمية 80 في تذييل النموذج ام تقصد شيء آخر

يا ريت توضح اكثر الفكرة التي تريد الوصول لها !!!!

بالتوفيق

اختي الفاضلة ام العهود

اشكرك على المتابعة

لقد قام اخي غرام العقول بالمشاركة وقد شرح ما اريده بالفعل واشكره جزيل الشكر على هذه المشاركة المفيدة

لكن هذه المعادلة غير قابلة لتعديل سعر الشرائح هل من طريقة لذلك

اشكر تعاونكم جميعا وجزاكم الله عنا كل خير

تم تعديل هذه المشاركة بواسطة ebraheem-w في 18 يونيو 2012 في 21:18

#9

العفو أخي الكريم

يمكنك الآن تعديل الأسعار بحسب المرفق التالي

za-Water2.rar

1
#10

السلام عليكم

الاخ غرام العقول

اطلعت على حلك

ووجدت هناك خطأ في حالة 60=>i

وهذا يتوضح في حالة الاستهلاك 44 في اول سجل

واختصرت الكود

مع العلم لاافهم بالاكواد شىء بس افهم

بالرياضيات

مشكور وجزاك الله خير لقد استفدت

من تعريف الوحدة النمطية

تحياتي

za-Water22.rar

#11
سلامنا لكم كتب:

السلام عليكم

الاخ غرام العقول

اطلعت على حلك

ووجدت هناك خطأ في حالة 60=>i

وهذا يتوضح في حالة الاستهلاك 44 في اول سجل

واختصرت الكود

مع العلم لاافهم بالاكواد شىء بس افهم

بالرياضيات

مشكور وجزاك الله خير لقد استفدت

من تعريف الوحدة النمطية

تحياتي

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

كلامكم صحيح أخي سلامنا لكم بالنسبة للمرفق الأول .. وقد تم التصحيح في المرفق الثاني.

الشكر الجزيل لكم

#12
غرّام العقول كتب:

العفو أخي الكريم

يمكنك الآن تعديل الأسعار بحسب المرفق التالي

اشكرك اخي غرام العقول وجزاك الله عنا كل خير

واشكر جميع المشاركين بهذا الموضوع

#13

السلام عليكم

اخي غرام العقول بارك الله بيك على هذا

التعديل اصبح بشكل عام لاي سعر يعطى

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

للاستهلاك؟

بس لي ملاحظة في حالة 61=<i تجزئة الاكبر من 80 ليس لها معنى

لان لم يعطي سعر للاستهلاك الاكبر من 80

لذلك تبقى ضمن الشرط .

لذلك تعريف sh5 اصبح زيادة ليس له معنى

وتم تعديل الحالة

ومشكور على هذا العمل

za-Water2-up.rar

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 19 يونيو 2012 في 00:26

#14

اشكركم اخواني على المشاركة بهذا الموضوع

لقد واجهتني مشكلة عندما اضع كمية اعلى من 1175

يرجى الرد

#15
ebraheem-w كتب:

اشكركم اخواني على المشاركة بهذا الموضوع

لقد واجهتني مشكلة عندما اضع كمية اعلى من 1175

يرجى الرد

اخي العزيز ابراهيم

من خلال ردودك تبين ان موافق

على توزيع الاخ غرام العقول

هل قيمة الاستهلاك اذا اكثر من 60

تضرب في 30

معنى ذلك 1175 تضرب في 30

نرجو توضيح الامر

#16
zahrah كتب:

اخي الفاضل : ابراهيم

ما هو المقصود بأن تضع الكمية 80 وتحصل على النتيجة فورا

اي كمية تقصد ؟

هل تقصد اجمالي الكمية 80 في تذييل النموذج ام تقصد شيء آخر

يا ريت توضح اكثر الفكرة التي تريد الوصول لها !!!!

بالتوفيق

الاخت الكريمة د زهره

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

والبقاء لله تعالى فى وفاة الأمير نايف بن عبد العزيز

و انا لله وانا اليه راجعون

،،،،،، وبعد

اعتقد ان الحل الذى وضعتيه بالنسبة لموضوع حساب شرائح استهلاك المياه مناسب لو تحقق الآتى :

عند ادخال قيمة الاستهلاك الاجمالية مثلا ( 75 ) يتم توزيع هذه القيمة آليا بجدول الشرائح

يعنى اى رقم يتم ادخاله يتوزع تلقائيا حسب تسلسل الشرائح مثال 75 = 15 + 10 + 15 + 20 + 15

فى حقل الشريحة الاولى يتم ادخال 15 ثم مازاد عن القيمة المخصصة لها يتم ادخال ما يناسب الشريحة الثانية ،

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

فى حالة زيادة كمية الاستهلاك .

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

وتضرب فى اجمالى سعر هذه الشريحة .

لتتم عملية ضرب كل كمية استهلاك فى سعرها ويتم تجميع الناتج فى مربع نص قيمة الاستهلاك

بجوار مربع نص جملة الاستهلاك

المطلوب الان هو كيفية تنفيذ توزيع الادخال تلقائيا كما ذكرت .

وبهذا يتم حل الامر والله اعلم

http://

#17
سلامنا لكم كتب:

اخي العزيز ابراهيم

من خلال ردودك تبين ان موافق

على توزيع الاخ غرام العقول

هل قيمة الاستهلاك اذا اكثر من 60

تضرب في 30

معنى ذلك 1175 تضرب في 30

نرجو توضيح الامر

اخي الكريم سلامنا لكم اشكرك على المتابعة

بالنسبة للاستهلاك مافوق 60 يضرب بالرقم 30

اقتباس
معنى ذلك 1175 تضرب في 30

ليس هو المعني

ان استهلاك 1175 تحتسب حسب الشرائح

اي 15*2.5

10*7

15*15

20*22

1115*30

يكون الناتج

1175 بالكمية

ارجو ان يكون التوضيح في مكانه

#18
سلامنا لكم كتب:

السلام عليكم

اخي غرام العقول بارك الله بيك على هذا

التعديل اصبح بشكل عام لاي سعر يعطى

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

للاستهلاك؟

بس لي ملاحظة في حالة 61=<i تجزئة الاكبر من 80 ليس لها معنى

لان لم يعطي سعر للاستهلاك الاكبر من 80

لذلك تبقى ضمن الشرط .

لذلك تعريف sh5 اصبح زيادة ليس له معنى

وتم تعديل الحالة

ومشكور على هذا العمل

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

وبارك بكم أخي سلامنا لكم

بالنسبة للسؤال الأول: فالجواب لا داعي لاستخدام الدالة DLookup للاستهلاك, لأننا قد مررنا كمية الاستهلاك إلى الدالة conPrice كوسيطة i

Public Function conPrice(ByVal i As Integer) As Double

بالنسبة للسؤال الثاني بأن تجزئة ما فوق 61 ليس له معنى فهذا يبدو صحيحاً في ظل الأسعار الحالية, لكن لو تغيرت الأسعار لاختلف الأمر.

في المشاركة التالية ستجد الكود بشكل أكثر وضوحاً ومنطقية بالنسبة إليك كرجل مهتم بالرياضيات (بالرغم من أن مجال عملي ودراستي أبعد ما تكون عن البرمجة أو الرياضيات).

الشكر الجزيل لكم على حسن المشاركة والمتابعة.

#19
ebraheem-w كتب:

اشكركم اخواني على المشاركة بهذا الموضوع

لقد واجهتني مشكلة عندما اضع كمية اعلى من 1175

يرجى الرد

العفو أخي الكريم إبراهيم

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

على كل حال .. قم بنسخ الدالة التالية وألصقها في الوحدة النمطية بدلاً عن الدالة السابقة.

الفرق بينهما هو مايلي:

1- تم تغيير نوع المتغير المسمى mor من Integer إلى Long لكي يقبل منك كمية أكبر من الوحدات المستهلكة

2- تم إجراء تعديل بسيط على الكود في عبارة Select Case ليكون أكثر وضوحاً بالنسبة للأستاذ سلامنا لكم

Public Function conPrice(ByVal i As Integer) As Double
Dim sh1, sh2, sh3, sh4, sh5 As Integer
Dim mor As Long
Select Case i
Case Is <= 15
	conPrice = i * Nz(DLookup("[Price]", "tblWater", "id=1"), 0)
Case Is <= 25
	sh1 = 15 * Nz(DLookup("[Price]", "tblWater", "id=1"), 0)
	mor = (i - 15) * Nz(DLookup("[Price]", "tblWater", "id=2"), 0)
	conPrice = sh1 + mor
Case Is <= 40
	sh1 = 15 * Nz(DLookup("[Price]", "tblWater", "id=1"), 0)
	sh2 = 10 * Nz(DLookup("[Price]", "tblWater", "id=2"), 0)
	mor = (i - 25) * Nz(DLookup("[Price]", "tblWater", "id=3"), 0)
	conPrice = sh1 + sh2 + mor
Case Is <= 60
	sh1 = 15 * Nz(DLookup("[Price]", "tblWater", "id=1"), 0)
	sh2 = 10 * Nz(DLookup("[Price]", "tblWater", "id=2"), 0)
	sh3 = 15 * Nz(DLookup("[Price]", "tblWater", "id=3"), 0)
	mor = (i - 40) * Nz(DLookup("[Price]", "tblWater", "id=4"), 0)
	conPrice = sh1 + sh2 + sh3 + mor
Case Is <= 80
	sh1 = 15 * Nz(DLookup("[Price]", "tblWater", "id=1"), 0)
	sh2 = 10 * Nz(DLookup("[Price]", "tblWater", "id=2"), 0)
	sh3 = 15 * Nz(DLookup("[Price]", "tblWater", "id=3"), 0)
	sh4 = 20 * Nz(DLookup("[Price]", "tblWater", "id=4"), 0)
	mor = (i - 60) * Nz(DLookup("[Price]", "tblWater", "id=5"), 0)
	conPrice = sh1 + sh2 + sh3 + sh4 + mor
Case Is > 80
	sh1 = 15 * Nz(DLookup("[Price]", "tblWater", "id=1"), 0)
	sh2 = 10 * Nz(DLookup("[Price]", "tblWater", "id=2"), 0)
	sh3 = 15 * Nz(DLookup("[Price]", "tblWater", "id=3"), 0)
	sh4 = 20 * Nz(DLookup("[Price]", "tblWater", "id=4"), 0)
	sh5 = 20 * Nz(DLookup("[Price]", "tblWater", "id=5"), 0)
	mor = (i - 80) * Nz(DLookup("[Price]", "tblWater", "id=5"), 0)
	conPrice = sh1 + sh2 + sh3 + sh4 + sh5 + mor
End Select

End Function

بالتوفيق

#20

السلام عليكم

اخي غرام العقول جزاك الله خير على التواصل

حللك صحيح لغاية قيمة الاستهلاك 1152

وبعدها يعني 1153 يظهر خطأ برأيك ماهو الخطأ

كرجل رياضياتي لم ارى خطأ احتمال في البرمجة

ارجو توضيح الخطأ؟؟؟

اخي ابراهيم

هذة طريقة ثانية للحل عن طريق دالة IIf

وصالحة لاي عدد

ومن وبالله التوفيق

اخي الغالي غرام العقول

توقعت ذلك

واني لست خبير في البرمجة

واعتقدت في احد خصائص الاعداد

سوال اخي

كم حجم العدد الصحبحinteger ؟؟؟

وكم حجم long

تحياتي

za-Water3.rar

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 19 يونيو 2012 في 17:29

#21
سلامنا لكم كتب:

السلام عليكم

اخي غرام العقول جزاك الله خير على التواصل

حللك صحيح لغاية قيمة الاستهلاك 1152

وبعدها يعني 1153 يظهر خطأ برأيك ماهو الخطأ

كرجل رياضياتي لم ارى خطأ احتمال في البرمجة

ارجو توضيح الخطأ؟؟؟

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

لم أجد -بعد التدقيق- أي خطأ في الحسابات كما وجدت أنت, ربما أنك لم تنسخ وتلصق الكود الأخير في المشاركة رقم 19 .. ونعم لقد لاحظت -في الكود- وجود أسطر إضافية يمكن حذفها والاستغناء عنها, لكن الكود يعمل بكفاءة حتى لكمية استهلاك تفوق الـ 2000 وحدة. (وهذا مثال مرفق تم تسجيل 2200 كمية استهلاك)

سلامنا لكم كتب:

اخي ابراهيم

هذة طريقة ثانية للحل عن طريق دالة IIf

وصالحة لاي عدد

ومن وبالله التوفيق

تفكير سليم .. وطريقة صحيحة أيضاً, لكنها لا تحقق طلب الأخ ابراهيم في المشاركة رقم 8 عندما طلب إمكانية تعديل الأسعار من قبل المستخدم.

سلامنا لكم كتب:

سوال اخي

كم حجم العدد الصحبحinteger ؟؟؟

وكم حجم long

حجم المتغير من نوع integer ما بين -32768 و +32767

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

أما المتغير من نوع long فهو ما بين -2 مليون إلى +2 مليون

وهو عدد صحيح طويل يحجز مقدار 4 بايت من حجم الذاكرة.

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

هذا هو الملف يمكنكم أن تجربوا إدخال كمية استهلاك تفوق ما جاء في بداية مشاركتكم.

Water2.rar

تم تعديل هذه المشاركة بواسطة غرّام العقول في 19 يونيو 2012 في 20:35

#22

السلام عليكم

جزاك الله خير اخي غرام العقول

كذا الامور كلها تمام

وكانت مشاركات قيمة ولها طعم خاص

ومشكور

والله يحفظك من كل مكروة

تحياتي

#23

اشكر جميع من شارك بهذا الموضوع

واني قد استفدت من مداخلات الاخ سلامنا لكم

واوجه شكر خاص للاخ غرّام العقول على الاهتمام بهذا الموضوع

وإن خبرته وحسن تعامله دفعتني لأكثر من الاسئلة

1 - هل يوجد متغير يصل 100 مليون

2 - اذا اردت تعديل سعر شريحة فإني استطتع بعد التعديل الذي قمت به، لكن اذا اردت تعديل كمية الشريحة فإنه لا يمكن التعديل

جزاكم الله عنا كل خير

#24

الاخ الكريم سلاما لكم

لى سؤال بارك الله لكم

لو سمحت اريدك ان تقيم مشاركتى فى نفس الموضوع وهى المشاركة رقم 16

وتقول لى هل لها صلة بحل المشكلة ام هى بعيدة عن الحل

ولكم جزيل الشكر ووافر التحية

تم تعديل هذه المشاركة بواسطة المحروسة في 20 يونيو 2012 في 19:00

http://

#25
المحروسة كتب:

الاخ الكريم سلامنا لكم

لى سؤال بارك الله لكم

لو سمحت اريدك ان تقيم مشاركتى فى نفس الموضوع وهى المشاركة رقم 16

وتقول لى هل لها صلة بحل المشكلة ام هى بعيدة عن الحل

ولكم جزيل الشكر ووافر التحية

السلام عليكم

نعم لها صلة بالحل وبشكل كبير

وللتوضيح مقدار الاستهلاك

15 + 20+15+10+15=75

مبلغ الاستهلاك

1222.5=30*15+22*20+15*15+7*10+2.5*15=مبلغ الاستهلاك

وارجوا ان وفقت في توضيح السؤال

مع التقدير

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