منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : سؤال بخصوص جمع حسابات في فيجوال بيسك ٦
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
شباب من فضلكم في برنامج لحساب استهلاك عداد الماء
مثلا لدي شطربن

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


فيجوال بيسك ٦
في اجابة اخوان
لتبسيط الحل
أفرض أنه عندك ثلاث شرائح
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

فلو كان عندك شريحة رابعة : فعليك إضافتها في البداية بنفس الطريقة التي استخدمناها ..
--
هناك أكواد مختصرة أكثر بكثير من هذه  .. ولكن هذه تناسب من كان في البدايات..
ومع كثرة التجريب ستصل لطرق أبسط بكثير.
(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

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