الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف حساب الاجازة الاظطرارية

مغلق
بدأه CoooL في 27 أبريل 2007 · 5 رد · 1,063 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

برنامج الاجازة الاظطرارية وهي 5 ايام في السنة لكل موظف

عملت الجداول بااكسس وربطتها بفجول بيسك دوت نت

وعملت حقول في فجول وهي كالااتي

رقم الموظف و اسم الموظف على طريقة ComboBox لعرض اسماء الموظفين

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

والخانه الاخيره تعرض فيها كم رصيد كل موظف المتبقي للاجازه يعني اذا اخذ الموظف 5 ايام تصبح خانة الرصيد 0 يعني استهلك الاجازة كلها اما لو اخذ يوم واحد يتبقى في خانة الرصيد 4 ايام كيف عمل هذه الطريقة

سوف ارفق المشروع كي يتضح سؤالي وقاعده البيانات سوف تجدها في هذا المجلد Debug

test.rar

#2

وين الاخوان ارجو المساعدة

لازم اسلم المشروع

#3

هل تريد حفظ البيانات على قاعدة البيانات

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

اذا كان الجواب هو الحالة الثانية فاليك الكود :

		TextBox3.Text = 5 - Val(TextBox5.Text)

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

#4

طبعا اريدة اول مايفتح البرنامج يكتب التاريخ بنفسة ومدة الاجازه وخانة الرصيد تخصم تلقائي كل ماكتب يوم يخصم ويصير 4 ايام

ويتم التحديث في قاعده البيانات بمجرد الضغط على الرصيد

هذا ماكتبته من تجربة يتم الحفظ لكن يعمل حقل جديد ويكتب البيانات وليس على نفس الاسم الي عدلة بياناته

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

	Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
		Try
			Dim SavInto As New OleDb.OleDbCommand
			Dim ConStr As String = _
				"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & _
				Application.StartupPath & "\vic.mdb"
			Dim Conn As New OleDbConnection(ConStr)
			SavInto.Connection = Conn
			SavInto.CommandType = CommandType.Text
			SavInto.CommandText = "INSERT INTO Table1(datastart,vicdur,maxvic)" & _
			"values ('" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox3.Text & "') "
			Conn.Open()
			SavInto.ExecuteNonQuery()
			Conn.Close()
			TextBox3.Text = 5 - Val(TextBox5.Text)
			MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح")
		Catch ex As Exception
			Exit Sub
		End Try
	End Sub

ومشكور للمساعدة

تم تعديل هذه المشاركة بواسطة CoooL في 28 أبريل 2007 في 18:59

#5

up

#6

السلام عليكم

أولاً قبل كل شيء يفترض ان تسمي اسماء الخانات بأسماء تدل على مضامينها, وليس textbox3 و 5 وغير ذلك.

كذلك مثل هذه الامور يفترض ان تكون في شبكية DataGridView فهي أفضل بكثير من خانات نصية

لانه لو إفترضنا ان الموظف خرج السنة السابقة 5 ايام فكيف سيخرج السنة الحالية ؟

فإن شرط التحقق من التاريخ مهم بالاهميةِ نفسها للتحقق من كلتا الخانتين 3 و 5 , أليس كذلك ؟

هنالك طريقة تستخدم لمثل هذه المشاريع تعرف بـ run Time Calcuation Column وهو ان نقوم بصنع عامود وقت التشغيل

يقوم بعملية حسابية لكل تاريخ بداية ونهاية للإجازة و يتضمن هذا العامود المدة المستهلكه من تلك الاجازة بحسب نوعها ( اضطرارية , سنوية , الخ )

وحسب تاريخها ( السنة الماضية , الحالية , ) ...

انا عدلت على المشروع , لكن أقول ليس هذا هو الحل الافضل ,و الحل الافضل هو أن تقوم بتحليل المشروع من جديد وتضع كل الاحتمالات

قبل الخوض في النصوص البرمجية . موفق إن شاء الله.

test.rar

في المثال يتضح المقال

هذا الموضوع مغلق.

مواضيع مشابهة