منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+--- الموضوع : سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ (/showthread.php?tid=50317)



سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ - Mohaben88 - 18-09-24

شباب من فضلكم في برنامج لحساب استهلاك عداد الماء
مثلا لدي شطربن

الشطر الأول : من 0 إلى 6 متر مكعب=3 دراهم
الشطر الثاني : من 7 إلى 12 متر مكعب= 5 دراهم
مثال : إذا استهلكت 9 متر مكعب سيتم فوترة 6 متر مكعب بثمن الشطر الأول(3دراهم) و 3 أمتار مكعبة بثمن الشطر الثاني(5 دراهم)


فيجوال بيسك ٦


RE: سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ - Mohaben88 - 18-09-24

في اجابة اخوان


RE: سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ - Taha Okla - 19-09-24

لتبسيط الحل
أفرض أنه عندك ثلاث شرائح
3 دراهم -  من 0 حتى 6.
5 دراهم - أكبر من 6وحتى 12.
8 دراهم - أكبر من 12.

تحتاج الأدوات التالي على النافذة :
Command1 :  لنكتب ضمنه الكود.
Text1 :  لتكتب فيها كمية الاستهلاك.
List1 :  لتعرض لك الشرائح بحسب الكمية
List2 :  لتعرض لك الشرائح بحسب السعر.

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

كود :
Private Sub Command1_Click()
   List1.Clear
   List2.Clear
   '==========================
   Dim vE As Double             '   نعرف متغير يعبر عن كمية الاستهلاك
   vE = Val(Text1.Text)
   
   If vE <= 0 Then Exit Sub
  '===========================
 
  If vE > 12 Then
    List1.AddItem (vE - 12)    ' نقتص مجموع الشرائح الأدنى والناتج يكون هو الشريحة الأكبر
    List2.AddItem (8)          ' قيمة تسعير الشريحة الأكبر
    vE = 12
  End If
 
  If vE > 6 Then
       List1.AddItem (vE - 6)      '  نقتص قيمة الشرائح الأدنى منها والباقي نعرضه
       List2.AddItem (5)           ' قيمة الشريحة قبل الأخيرة
       vE = 6
  End If
 
   If vE > 0 Then
       List1.AddItem (vE)      'حجم الشريحة الأولى
       List2.AddItem (3)       ' قيمة الشريحة الأولى
  End If
   
   Dim dValue As Double
   For i = 0 To List1.ListCount - 1
       dValue = dValue + List1.List(i) * List2.List(i)
   Next i
   
   MsgBox "قيمة الاستهلاك" & vbNewLine & dValue & " درهم "
End Sub

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


RE: سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ - Mohaben88 - 19-09-24

(18-09-24, 06:18 PM)Mohaben88 كتب : شباب من فضلكم في برنامج لحساب استهلاك عداد الماء
مثلا لدي شطربن

الشطر الأول : من 0 إلى 6 متر مكعب=3 دراهم
الشطر الثاني : من 7 إلى 12 متر مكعب= 5 دراهم
مثال : إذا استهلكت 9 متر مكعب سيتم فوترة 6 متر مكعب بثمن الشطر الأول(3دراهم) و 3 أمتار مكعبة بثمن الشطر الثاني(5 دراهم)


فيجوال بيسك ٦

(19-09-24, 02:01 AM)Taha Okla كتب : لتبسيط الحل
أفرض أنه عندك ثلاث شرائح
3 دراهم -  من 0 حتى 6.
5 دراهم - أكبر من 6وحتى 12.
8 دراهم - أكبر من 12.

تحتاج الأدوات التالي على النافذة :
Command1 :  لنكتب ضمنه الكود.
Text1 :  لتكتب فيها كمية الاستهلاك.
List1 :  لتعرض لك الشرائح بحسب الكمية
List2 :  لتعرض لك الشرائح بحسب السعر.

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

كود :
Private Sub Command1_Click()
   List1.Clear
   List2.Clear
   '==========================
   Dim vE As Double             '   نعرف متغير يعبر عن كمية الاستهلاك
   vE = Val(Text1.Text)
   
   If vE <= 0 Then Exit Sub
  '===========================
 
  If vE > 12 Then
    List1.AddItem (vE - 12)    ' نقتص مجموع الشرائح الأدنى والناتج يكون هو الشريحة الأكبر
    List2.AddItem (8)          ' قيمة تسعير الشريحة الأكبر
    vE = 12
  End If
 
  If vE > 6 Then
       List1.AddItem (vE - 6)      '  نقتص قيمة الشرائح الأدنى منها والباقي نعرضه
       List2.AddItem (5)           ' قيمة الشريحة قبل الأخيرة
       vE = 6
  End If
 
   If vE > 0 Then
       List1.AddItem (vE)      'حجم الشريحة الأولى
       List2.AddItem (3)       ' قيمة الشريحة الأولى
       vE = 6
  End If
   
   Dim dValue As Double
   For i = 0 To List1.ListCount - 1
       dValue = dValue + List1.List(i) * List2.List(i)
   Next i
   
   MsgBox "قيمة الاستهلاك" & vbNewLine & dValue & " درهم "
End Sub

فلو كان عندك شريحة رابعة : فعليك إضافتها في البداية بنفس الطريقة التي استخدمناها ..
--
هناك أكواد مختصرة أكثر بكثير من هذه  .. ولكن هذه تناسب من كان في البدايات..
ومع كثرة التجريب ستصل لطرق أبسط بكثير.
مشكور كثير اخي الكريم حفظك الله ورعاك


RE: سؤال بخصوص جمع حسابات في فيجوال بيسك ٦ - Mohaben88 - 19-09-24

قمت بكتابة كود لجمع عناصر ليست ١ و ليست٢ في ليست ٣
كيف اقوم بتسجيلها الى قاعدة بيانات