اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر
21 دقائق مضت, The best said:

هذا ما كنت سأقوله 

طيب يا صديقي ، قبل خروجي من العمل ، جرب هذا التعديل
حيث تم ما يلي :-
1. في الجدول Tb_School تم اضافة الحقل WSat من نوع = Yes/No ، حيث :-

  • إذا كانت المدرسة تعطل يوم السبت ( WSat=True ) ، وبالتالي يتم تجاهل الجمعة والسبت .
  • إذا كانت المدرسة تعمل يوم السبت ( WSat=False ) وبالتالي يتم تجاهل يوم الجمعة ولا يتم احتسابه في الأيام .

2. تعديل الدوال في المديول :

Public Function WorkDaysBetween(StartDate As Date, EndDate As Date, schoolID As Long) As Long
    Dim i As Long
    Dim d As Date
    Dim count As Long
    Dim SaturdayOff As Boolean

    If EndDate < StartDate Then
        WorkDaysBetween = 0
        Exit Function
    End If

    SaturdayOff = Nz(DLookup("WSat", "Tb_School", "School_ID = " & schoolID), True)

    For i = 0 To DateDiff("d", StartDate, EndDate)
        d = DateAdd("d", i, StartDate)
        
        If Weekday(d, vbSaturday) = 7 Then
        ElseIf SaturdayOff And Weekday(d, vbSaturday) = 1 Then
        Else
            count = count + 1
        End If
    Next i

    WorkDaysBetween = count
End Function

Public Function NextWorkingDay(d As Date, schoolID As Long) As Date
    Dim SaturdayOff As Boolean
    SaturdayOff = Nz(DLookup("WSat", "Tb_School", "School_ID = " & schoolID), True)

    Do While Weekday(d, vbSaturday) = 7 Or (SaturdayOff And Weekday(d, vbSaturday) = 1)
        d = d + 1
    Loop

    NextWorkingDay = d
End Function

 

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

Private Sub UpdateModa()
    Dim daysCount As Long
    Dim schoolID As Long

    If Not IsNull(Me.Parent!Gha_Aml) Then
        schoolID = Nz(Me.Parent!Gha_Aml, 0)
    Else
        schoolID = 0
    End If

    If Not IsNull(tr_bda_tdbreeb) And Not IsNull(tr_nhay_tdree) Then
        daysCount = WorkDaysBetween(tr_bda_tdbreeb, tr_nhay_tdree, schoolID)
        tr_moshrt_aml = NextWorkingDay(tr_nhay_tdree + 1, schoolID)
        moda = daysCount
    Else
        moda = Null
        tr_moshrt_aml = Null
    End If
End Sub

 

جربه وأخبرني ..

 

Personnel_affairs.zip

قام بنشر
1 ساعه مضت, Foksh said:

طيب يا صديقي ، قبل خروجي من العمل ، جرب هذا التعديل
حيث تم ما يلي :-
1. في الجدول Tb_School تم اضافة الحقل WSat من نوع = Yes/No ، حيث :-

  • إذا كانت المدرسة تعطل يوم السبت ( WSat=True ) ، وبالتالي يتم تجاهل الجمعة والسبت .
  • إذا كانت المدرسة تعمل يوم السبت ( WSat=False ) وبالتالي يتم تجاهل يوم الجمعة ولا يتم احتسابه في الأيام .

2. تعديل الدوال في المديول :

Public Function WorkDaysBetween(StartDate As Date, EndDate As Date, schoolID As Long) As Long
    Dim i As Long
    Dim d As Date
    Dim count As Long
    Dim SaturdayOff As Boolean

    If EndDate < StartDate Then
        WorkDaysBetween = 0
        Exit Function
    End If

    SaturdayOff = Nz(DLookup("WSat", "Tb_School", "School_ID = " & schoolID), True)

    For i = 0 To DateDiff("d", StartDate, EndDate)
        d = DateAdd("d", i, StartDate)
        
        If Weekday(d, vbSaturday) = 7 Then
        ElseIf SaturdayOff And Weekday(d, vbSaturday) = 1 Then
        Else
            count = count + 1
        End If
    Next i

    WorkDaysBetween = count
End Function

Public Function NextWorkingDay(d As Date, schoolID As Long) As Date
    Dim SaturdayOff As Boolean
    SaturdayOff = Nz(DLookup("WSat", "Tb_School", "School_ID = " & schoolID), True)

    Do While Weekday(d, vbSaturday) = 7 Or (SaturdayOff And Weekday(d, vbSaturday) = 1)
        d = d + 1
    Loop

    NextWorkingDay = d
End Function

 

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

Private Sub UpdateModa()
    Dim daysCount As Long
    Dim schoolID As Long

    If Not IsNull(Me.Parent!Gha_Aml) Then
        schoolID = Nz(Me.Parent!Gha_Aml, 0)
    Else
        schoolID = 0
    End If

    If Not IsNull(tr_bda_tdbreeb) And Not IsNull(tr_nhay_tdree) Then
        daysCount = WorkDaysBetween(tr_bda_tdbreeb, tr_nhay_tdree, schoolID)
        tr_moshrt_aml = NextWorkingDay(tr_nhay_tdree + 1, schoolID)
        moda = daysCount
    Else
        moda = Null
        tr_moshrt_aml = Null
    End If
End Sub

 

جربه وأخبرني ..

 

Personnel_affairs.zip 141.93 kB · 3 downloads

حضرتك مسمى الحقل دوام السبت وده معناه اللى عليه صح يعمل يوم السبت والعكس صحيح 

وده خلانى اتلخبط لما جربت لأنه بالنسبة لى كانت النتيجة بتطلع العكس 

انظر الصورة التالية

الصورة الأولى لموظف مدرسته تعمل السبت ( الزوايدة الابتدائية المشتركة ) بما إن دوام السبت = صواب وده معناه أنه لو تاريخ نهاية التدريب الخميس  يبقى تاريخ مباشرة العمل يبقى السبت , لكن النتيجة طالعة تاريخ المباشرة الاحد

الصورة الثانية العكس 

فايه رأيك أغير مسمى الحقل لـ ( إجازة السبت )

Screenshot_٢٠٢٥-٠٤-٢١-٢١-٣٣-٣٢-٢٣٧_com.miui.gallery-edit.jpg

Screenshot_٢٠٢٥-٠٤-٢١-٢١-٣١-٣٦-٣٧٨_com.miui.gallery-edit.jpg

قام بنشر
14 دقائق مضت, The best said:

فايه رأيك أغير مسمى الحقل لـ ( إجازة السبت )

 

دي مش محتاجة سؤال ؛ غيرها بما يتناسب مع مشروعك يا صديقي ، ما دام الأمر يسري بالشكل الصحيح !!

قام بنشر
7 دقائق مضت, Foksh said:

دي مش محتاجة سؤال ؛ غيرها بما يتناسب مع مشروعك يا صديقي ، ما دام الأمر يسري بالشكل الصحيح !!

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

لأنه اللى بيعمل السبت عدد قليل 

وشكرا جزيلا على جهدكم وسرعة ردكم 

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

قام بنشر
4 دقائق مضت, The best said:

لو حبيت أغير فى الدالة مش فى المسمى أعملها ازاى 

الدالة تعمل بشكل سليم . وقد تمت تجربتها مراراً على أكثر من مدرسة باخلاف الدوام ( يوم السبت ) وبتواريخ مختلفة .

لذا قد أكود عكست التسمية ليس إلا :rol: .

 

اجعل التسمية لا تعمل يوم السبت ، وتنتهي مشكلتك

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information