تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مساعدة فى برنامج الاجازات
#2
وعليكم السلام ورحمة الله وبركاته! يمكنك استخدام الكود التالي في Visual Basic لتنفيذ ما طلبت:


كود :
Option Explicit

Private Sub UpdateVacationBalances()
   Dim EmpCount As Integer
   Dim EmpID As Long
   Dim EmpVacRemaining As Single
   Dim i As Integer
   Dim j As Integer
   Dim YearSelected As Integer

   ' 1- اختيار العام من خلال DataCombo1
   YearSelected = DataCombo1.Text

   ' 2- على أساس العام يتم حساب أجمالي عدد الموظفين لهذا العام (Count_Vac_Year)
   EmpCount = GetEmployeeCountForYear(YearSelected)

   For i = 1 To EmpCount
       ' 3- اظهار المتبقي من الاجازات لكل موظف على حدة (Get_Emp_Vac_Year_E)
       EmpID = GetEmployeeID(i)
       EmpVacRemaining = GetEmpVacYearE(YearSelected, EmpID)

       ' ربط المتبقي مع text1, text2, ..., text5 في الشاشة
       Controls("text" & i).Text = EmpVacRemaining

       ' اضافة المتبقي من رصيد العام لرصيد المدة السابقة
       UpdateVacationBalance(EmpID, EmpVacRemaining)

       ' ملئ Picture2 بأي لون تدريجيا
       For j = 0 To 100
           Picture2.FillColor = RGB(255 * j / 100, 0, 0)
           Picture2.FillPercent = j
           DoEvents
           Sleep 50
       Next j

       ' فاصل زمني 5 ثواني بين كل موظف واخر
       Sleep 5000
   Next i
End Sub

' استبدل هذه الوظائف بتلك المتصلة بقاعدة البيانات الخاصة بك
Private Function GetEmployeeCountForYear(YearSelected As Integer) As Integer
   ' هنا يجب عليك استخدام استعلام SQL للحصول على عدد الموظفين للعام المحدد
   ' كود مثال:
   ' SELECT COUNT(*) FROM T_Employee WHERE [Year] = YearSelected
End Function

Private Function GetEmployeeID(Index As Integer) As Long
   ' هنا يجب عليك استخدام استعلام SQL للحصول على معرف الموظف بناءً على الفهرس
   ' كود مثال:
   ' SELECT [Emp_ID] FROM T_Employee ORDER BY [Emp_ID] OFFSET (Index - 1) ROWS FETCH NEXT 1 ROWS ONLY
End Function

Private Function GetEmpVacYearE(YearSelected As Integer, EmpID As Long) As Single
   ' هنا يجب عليك استخدام استعلام SQL للحصول على المتبقي من الاجازات لموظف معين في العام المحدد
   ' كود مثال:
   ' SELECT [Vac_Year_ERemain] FROM T_Vac_Year WHERE [Year] = YearSelected AND [Emp_ID] = EmpID
End Function

Private Sub UpdateVacationBalance(EmpID As Long, EmpVacRemaining As Single)
   ' هنا يجب عليك استخدام استعلام SQL لتحديث رصيد المدة السابقة للموظف
   ' كود مثال:
   ' UPDATE T_Employee SET [Vac_Rasid_Count] = [Vac_Rasid_Count] + EmpVacRemaining WHERE [Emp_ID] = EmpID
End Sub


لاحظ أنه يتعين عليك استبدال الاستعلامات بالاستعلامات المناسبة لقاعدة البيانات الخاصة بك. قد تحتاج إلى تعديل أسماء الجداول والأعمدة لتطابق مخطط قاعدة البيانات الخاص بك.
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: مساعدة فى برنامج الاجازات - بواسطة sanyor77 - 26-03-23, 03:56 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في تغيير حجم الفورم حسب دقة عرض الشاشة amazonette 3 596 30-03-23, 02:47 PM
آخر رد: amazonette
  برنامج الفاتورة الاصدار الثاني من برمجتي في المنتدى القديم ahmedabdelaliem 16 12,157 31-10-22, 11:50 PM
آخر رد: Ibrahimxp
  برنامج تعبئة الرصيد للثلاث متعاملين في الجزائر AHMED213 3 2,984 04-10-22, 10:11 PM
آخر رد: Taha Okla
  تحويل برنامج تم تصميمه بلغة الفيجوال بيسك الى مايكروسوفت اكسيس shabrawy 3 871 07-09-22, 10:05 PM
آخر رد: Taha Okla
  [سؤال] اريد مساعدة donia hamdan 2 972 03-09-22, 10:23 AM
آخر رد: سعود
  برنامج مترجم قوقل مفتوح المصدر samee119485r 23 11,232 20-12-21, 12:44 AM
آخر رد: marmarmar
  [vb6.0] أريد المساعدة بشأن كود أو برنامج يرسل لـ whatsapp صعب الوصول 10 5,812 21-11-21, 05:43 PM
آخر رد: mona82
Thumbs Up مشكلة في برنامج مبرمج بلغة الفيجول بيسك palart 2 1,904 04-05-21, 05:59 PM
آخر رد: palart
  برنامج جديد benali17 2 1,666 27-01-21, 11:27 PM
آخر رد: benali17
Wink [مشروع] اريد برنامج فيجوال بيسك 2010 عن حساب سعر السلعة بعد الخصم Aiosh15 0 1,620 10-12-20, 04:43 PM
آخر رد: Aiosh15

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم