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

نسخة كاملة : للخبراء اطلب منكم المساعدة في برنامج مصغر خاص بحساب عمولات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
مشكورين شباب ...............

ياريت لو تفيدوني بتعديل المشروع بهذا الشكل تما ارفاااق ملف المشروع بعد التعديل

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

1 / اذا تكرر الرقم داخل العمود  code  اكثر من او يساوي 4 مرات .
2/اذا كان المجموع الخاص بالكود اكبر من او يساوي ال 500 داخل العمود total .
3/اذا كان الفرق بين العمود date1 و date2  3 ايام .


تحسب عموله خاصه من العمود total وتكون بالشروط التاليه وسوف يكون لها حق خاص جديد بأسم total2 ب datagridviwe2  وهاذه العمولة الخاصه بالشكل هذا :
"VAL([number])>=" & 1 & " AND VAL([number])<=" & 10 & ", " & 500 & "," &
"VAL([number])>=" & 11 & " AND VAL([number])<=" & 20 & "," & 700 & "," &
"VAL([number])>=" & 21 & " and VAL([number])<=" & 30 & ", " & 1000 &


اذا تحققت الشرووووووووط اعلاه يتم عرض البيانات في  datagridviwe2 .....  بالحقول التاليه كما هو مبين بالصورة

1 / رقم الكود ومن ثم
2 / عدد مرات التكرار في العمود code
3/ المجموع الكلي الخاص بالكود داخل العمود total .
4/ المجموع الخااص اسنادا للقيم السابقه (total2)

الملف المرفق التالي
سلام


بناء على الملف المرفق
كود :
Dim sql As String = " SELECT [code],                                        " &
                    "        COUNT([code]) As [count],                      " &
                    "        SUM([total]) As [total1],                      " &
                    "        SUM(SWITCH(VAL([total])>=" & 100 & " AND VAL([total])<=" & 200 & "," & 500 & "," &
                    "                   VAL([total])>=" & 201 & " AND VAL([total])<=" & 300 & "," & 700 & "," &
                    "                   VAL([total])>=" & 301 & " AND VAL([total])<=" & 400 & "," & 1000 & "," &
                    "                   VAL([total])>=" & 401 & " AND VAL([total])<=" & 500 & "," & 2000 &
                    "        )) AS [total2]                                 " &
                    "                                                       " &
                    " FROM [Reports]                                        " &
                    "                                                       " &
                    " WHERE (DATEDIFF('d',[data1],[data 2]) >= 3 )          " &
                    "                                                       " &
                    " GROUP BY [code]                                       " &
                    "                                                       " &
                    " HAVING (SUM([total]) > 500) AND (COUNT([code]) >= 4)  "


موفقين
SQL
تسوي البدع
مشكورين اخواني الكرااااام ............... اخي الطالب وفقا للكود لم تظهر معي مخرجات في عند التنفيذ في ال  data gridviwe2  .....  وجزيت خيرا ان شاء الله  ماهو الحل او ايش سبب المشكله يرجى رفع المشروع بعد التعديل
ونحن في انتظاركم جزيتو خيرا ووفقكم الله
سلام


انا طبقت على اخر ملف مرفق منك زالنتيجه ظهرت


موفقين
بارك الله فيك ياطالب مجهود رائع منك مزيدا من التقدم انت و اخي  khodor1985 ............. بس باقي شرط واحد ماتحقق معي الي هو الفرق بين التاريخين 3 يام فقط لاحظ معي الصورة الفرق بين التاريخ الاول والثاني 19  يوم ودخل الحسبة المفروض هذا الحقل يعتبر ملغي نهائي وتحسب باقي الحقوووول فقط يعني المفرروض تطلع معي النتائج كما هي في الصورة على datagridviwe2  او اصلا المفروض اصلا ماتظهر معي نتاااااااائج بالمرة لانو الحين صار مرات التكرار  3 مرات فقط باعتبار ال 4 ملغيه لانو في فرق اكثر من 3 ايام في الحقلين يعني المفترض يعتبر رقم 1 كلو ملغي نهائيا ويصير البرنامج يراجع في ارقام اخرى ...... انا بس سويت ليك النتائج على datagridviwe2  على سبيل المثال فقط بس المفروض ماتطلع نتائج لانو عندي الرقم 1 تكرر اكثر من او يساوي 4 مرات نجـــــــــــــــــد هنا تحقق الشرط ونجد ان الشرط اختل في حالة صااارت عدد الحقول 3 فقط بسبب انو في حقل في فرق اكثر من 3 ايام بينه وبين التاريخين .... يعني المفترض رقم 1 مايكون له نتائج نهائيا على الداتا جيردفيو 2 ..... اتمنى الصورة او شرح يكون وضح وجزيت خيرا في الدااارين اخي وحبيبي الطالب .
سلام


اعتذر عن الخطا، فقد اعتقدت انك تقصد ان فارق الايام 3 او اكثر، الان حذفت < من مقارنه فارق التاريخين

الان بناء على التواريخ اللتي في الصوره الاخير يحصل قولك (او اصلا المفروض اصلا ماتظهر معي نتاااااااائج بالمرة)

كود :
Dim sql As String = " SELECT [code],                                        " &
                    "        COUNT([code]) As [count],                      " &
                    "        SUM([total]) As [total1],                      " &
                    "        SUM(SWITCH(VAL([total])>=" & 100 & " AND VAL([total])<=" & 200 & "," & 500 & "," &
                    "                   VAL([total])>=" & 201 & " AND VAL([total])<=" & 300 & "," & 700 & "," &
                    "                   VAL([total])>=" & 301 & " AND VAL([total])<=" & 400 & "," & 1000 & "," &
                    "                   VAL([total])>=" & 401 & " AND VAL([total])<=" & 500 & "," & 2000 &
                    "        )) AS [total2]                                 " &
                    "                                                       " &
                    " FROM [Reports]                                        " &
                    "                                                       " &
                    " WHERE (DATEDIFF('d',[data1],[data 2]) = 3 )           " &
                    "                                                       " &
                    " GROUP BY [code]                                       " &
                    "                                                       " &
                    " HAVING (SUM([total]) > 500 )                          " &
                    "    AND (COUNT([code]) >= 4 )                          "



موفقين
سلام


ما شاء الله اخ خضر

النتائج في طريقتك مطابقه لما اراد اخونا


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

1 - اضافه صف في  datagridviwe2  تلقائيا مع كل حقل جديد راح يجي على ال datagridviwe2  راح يكون التاريخ بتاريخ فتح البرنامج يعني مثلا اليوم 6/9/2015 يضيف لي على طول تاريخ اليوم الي انفتح عليه البرنامج يعني بالدارجي تاريخ اليوم ......

2/ ياخذ لي الاسم من جدول جديد بمسى table1  انا اضفتو من في الداتا بيز موجود عليه 3 حقول ....... القسم والاسم و الكود  المفروض كل مايجي رقم كود على الداتا جيرد فيو 2 ياخذ من الجدول هذا الحقلين ..........القسم ...........و..........الاسم ........... على حسب رقم الكود  الي راح يظهر في الداتا جيرد فيو 2 وانا موضح الشرح بصورة اعمق في الصور عندكم .
3 / الشيئ الاخير يتم عرض البيانات الموجوده في الداتا جيرد فيو 2 الى ............form 2...... علما بأنه تم ربط form2  بجدول موجود الحين ومربوط مع نفس قاعدة البيانات بأسم save................... يعني المفروض لمن اضغط على ذر التالي في فورم1 تظهر معي اليبيانات الموجودة في datagridviwe2  الى  form2 ...... savedatagridviwes2  >>>> , ومن ثم عند الظغط على ذر حفظ تنحفظ عندي البيانات مباشرة بقاعدة البيانات في الجدول save .......  تم ارفاق المشروووع جاهز باقي ال 3 تعديلات هاذي بس ..... افضل الاكواد تكون منفصلة من  ال  button  المسمى بالاسم  عرض ..... وجزاكم الله الف خير انتظر منكم الرد ويعطيكم الف عافيه

(06-09-15, 11:13 PM)khodor1985 كتب : [ -> ]شكرا لك أخي العزيز طالب على هذا المجهود الرائع، كما أشكر أيضا الأخ moh61 على هذه المشاركة فقد تعلمت منها الكثير.

تفضل أخي العزيز لقد أضفت بعض التعديلات على المشروع :

أشكركم جميعا

الله يعطيك الف عافية ما شاء الله اخ خضر شغل اكثر من رائع جزيتو خيرا جميعااااااا اخواني الكرام ماقصرتو والله معي الله يوفقكم
الصفحات : 1 2 3