تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] حساب الاجازة على حسب الشهر
#1
السلام عليكم

مرفق مثال برجاء التعديل علية

المطلوب هو عندي جدول الاجازات من تاريخ الى تاريخ والمده

مثلا هناك شخص تمتع بأجازة من الفترة 15/3/2014 الى 26/5/2014 مده الاجازة 73 يوم

اريد فردها كا التالي على الاشهر شهر مارس من 15 الى 31 =17 يوم

وشهر ابريل كلة =30 يوم
وشهر مايو = 26 يوم


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

او وضع المطلوب في DataGrid يكون أفضل


الملفات المرفقة
.rar   VB.rar (الحجم : 10.15 ك ب / التحميلات : 114)
الرد }}}
تم الشكر بواسطة:
#2
اولا في زر الحفظ نكتب الكود

Text2.Text = DTPicker2.Value - DTPicker1.Value

مرتين مرة في الاعلى و مرة في الاسفل

ثم ننشئ تكست 4 و 5 و 6 و نجعل الاندكس لكل منهم 0 ثم ننسخهم 6 مرات حيث الاندكس 0 لشهر يناير و الاندكس 1 لشهر شباط .........الخ

و الاندكس 5 للمجموع مع ملاحظة جعلعم مخفيين

ثم ننشئ 2 كوماند واحد للسابق و الآخر للتالي

نكتب في اي منهما الكود التالي نفسه مع تغيير السطر السابع المشار اليه ب * باحدى الكودين Adodc1.Recordset.movenext h او Adodc1.Recordset.MovePrevious


كود :
For i = 0 To 5
text4(i).Visible = False
text5(i).Visible = False
text6(i).Visible = False
Next
on error resume next
*
p = DTPicker2.Month - DTPicker1.Month
s = DTPicker2.Year
ss = s / 4
Dim sss As Integer
sss = ss
w = ss = sss
If w = 0 Then
m = 29
Else: m = 28
End If
If p = 0 Then
y = DTPicker2.Month - 1
If Text3.Text = "عارضة" Then
text4(y).Visible = True
text4(y).Text = Text2.Text
End If
If Text3.Text = "طارئة" Then
text5(y).Visible = True
text5(y).Text = Text2.Text
End If
If Text3.Text = "دورية" Then
text6(y).Visible = True
text6(y).Text = Text2.Text
End If

Else
x = DTPicker1.Month
z = DTPicker2.Month
For i = x To z
y = i - 1
If i = 1 Or i = 3 Or i = 5 Then
If i = DTPicker1.Month Then
q = DTPicker1.Day
qq = 31 - q
End If
If i = DTPicker2.Month Then
q = DTPicker2.Day
qq = 31 - q
End If
If Not i = DTPicker1.Month And Not i = DTPicker2.Month Then qq = 31
End If
If i = 2 Then
If i = DTPicker1.Month Then
q = DTPicker1.Day
qq = m - q
End If
If i = DTPicker2.Month Then
q = DTPicker2.Day
qq = m - q
End If
If Not i = DTPicker1.Month And Not i = DTPicker2.Month Then qq = m
End If
If i = 4 Then
If i = DTPicker1.Month Then
q = DTPicker1.Day
qq = 30 - q
End If
If i = DTPicker2.Month Then
q = DTPicker2.Day
qq = 30 - q
End If
If Not i = DTPicker1.Month And Not i = DTPicker2.Month Then qq = 30
End If
If Text3.Text = "عارضة" Then
text4(y).Visible = True
text4(y).Text = qq
End If
If Text3.Text = "طارئة" Then
text5(y).Visible = True
text5(y).Text = qq
End If
If Text3.Text = "دورية" Then
text6(y).Visible = True
text6(y).Text = qq
End If

Next
endif
الرد }}}
تم الشكر بواسطة:
#3
الشكر واجب اخي الكريم على محاولتك المساعده

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


ولكن المطلوب اخي الكريم هو رصد الاجازة بمعنى عندما يحصل على اجازة 73 يوم
15/3/2014 الى 26/5/2014
اريد فردها كا التالي على الاشهر شهر مارس من 15 الى 31 =17 يوم

وشهر ابريل كلة =30 يوم
وشهر مايو = 26 يوم

اكرر شكري اخوي ومنتظر المساعده
الرد }}}
تم الشكر بواسطة:
#4
ارفق لنا مشروعك
الرد }}}
تم الشكر بواسطة:
#5
عذاً اخوي

المطلوب ترصيد الاجازات - من نوع عارضه -طارئة - دورية - غياب - طبية - عطل

على مدار العام الخاص بالموظف حسب رقمة وشكراً وليس للسجل الحالى

مرفق مثال


الملفات المرفقة
.rar   VB.rar (الحجم : 11.09 ك ب / التحميلات : 95)
الرد }}}
تم الشكر بواسطة:
#6
عذراً الشكل النهائي المطلوب


الملفات المرفقة
.rar   VB1.rar (الحجم : 11.52 ك ب / التحميلات : 113)
الرد }}}
تم الشكر بواسطة:
#7
اولا قبل كل شيء اعد انشاء قاعدة البيانات عبر برنامج الفيجوال و ليس عبر الاكسس ثم ارفقه لوحده علما ان تعديل الاكواد بسيط استبدل ال Adodc1 ب data1

و امسح كل ما في الفورم لود و ذلك لاستخدام خاصية البحث المتقدم نوعا ما بسهولة و ان وافقت سارفق لك المشروع بعد التعديل
الرد }}}
تم الشكر بواسطة:
#8
اخي لا افهم قصدك بأعادة انشاء قاعده البيانات بالفيجوال بيسك

فانا استخدم الاكسس فى الانشاء ولا اعرف انشائها بالفيجوال


قمت بتبديل الربط data1 وكتبت لك اسماء الحقول للتسهيل


الملفات المرفقة
.rar   VB2.rar (الحجم : 11.65 ك ب / التحميلات : 100)
الرد }}}
تم الشكر بواسطة:
#9
تفضل اخي

لم تضبط لا ال data1 و لا حتى اداة Adodc1 في طلبك و قاعدة البيانات الاصلية كما هي بدون تغيير

المهم العرض يتم من خلال القائمة المنسدلة و الاختيار


الملفات المرفقة
.rar   VB3.rar (الحجم : 18.04 ك ب / التحميلات : 152)
الرد }}}
تم الشكر بواسطة:
#10
شكرا لك استاذي الغالى

بس الكود مو مظبوط
الرد }}}
تم الشكر بواسطة:



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


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