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

كيف اعمل هذا الاستعلام

بدأه aiasalem في 20 فبراير 2008 · 7 رد · 1,460 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وتعالي

شرح المطلوب

انا دلوقتي عندي في البرنامج اداتي تايم بيكر

الاداة الاولي خاصة بداية تاريخ الاجازة

والثانية بنهاية تاريخ الاجازة

فمثلا التاريخ في بداية الاجازة هو 20/2/2008

والنهاية 24/2/2008

الفرق بينهما 5 ايام هي ايام الاجازة ولكن تتوسط هذي الاجازة يومي الجمعة والسبت وهما عطلة في الشركة

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

واذا لم يجد يضيف علي طول

كيف اعمل هذا الاستعلام

#2

سهل جداً اخي العزيز مثل هذا الاستعلام في البدايه اخي العزيز لازم تجلب العدد الكامل للايام داخل DataSet

ومن ثماء تعمل كونتر يزيد بحسب الايام اذا كان ايام جمعه او سبت لايزيد الكاونتر واذا كان غير ذلك يزيك

ولاحظ هناء

في البدايه نفرض انك ملئت DataSet بعدد الايام
DataSet ds=new DataSet();
int CountDay=ds.Tables[0].Rows.Count;

for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
if(ds.Table[0].Rows["DayName"].ToString()=="الجمعه"||ds.Table[0].Rows["DayName"].ToString()=="السبت")
{
--CountDay;
}
}

في البدايه عرفت متغير كونت ادي يحتوي على عدد الايام التي عملت لها انت امر select ونظرض انها خمسه

وراح يكون المتغير 5 وبعدها راح يدخل في اللوب واذا كان احد اسامي الايام يساوي السبت او الجمعه راح ينقص

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

#3

السلام عليكم ورحمة الله وتعالي

اما بعد

انا لم استطيع فهم هذا الكود وقمت بقرائته جيدا وتجربنه ولكن لم اصل الي شء

فان ارفقت مثال لك لتوضيح الفكرة

واذا كان لديك مثال يمكن ترفقه لي لوسمحت

وشكرا جدا علي اهتمامك البالغ لهذا الموضوع

WindowsApplication1.zip

#4

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

هذا ما فهمته من كلامك ... لكن اذا كنت تريدين ان تحسبي تاريخين محفوظين في قاعدة البيانات فما عليك سوا تعديل هذا الكود ليصبح ملائما لبرنامجك ... و اذا واجهتك مشاكل مع قواعد البيانات يمكنك موافاتي ..

و اليك الكود الذي يجب ان تكتبيه في زر حساب القيم ....

 

Private Sub btn_getdifeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_getdifeer.Click

Dim fri As Integer = 0

Dim str As Integer = 0

Dim z As Integer = 0

txttotal.Text = DateDiff(DateInterval.Day, Me.dtbkr_strat.Value, dtbkr_end.Value).ToString

z = DateDiff(DateInterval.Day, Me.dtbkr_strat.Value, dtbkr_end.Value)

Dim dt As Date = Me.dtbkr_strat.Value

Dim i As Integer

For i = 0 To z

If (dt.AddDays(i)).DayOfWeek = System.DayOfWeek.Friday Then

fri += 1

ElseIf dt.AddDays(i).DayOfWeek = System.DayOfWeek.Saturday Then

str += 1

Else

fri = fri

str = str

End If

Next

txtfriday.Text = fri

txtsatrday.Text = str

txtfinalresult.Text = z - (str + fri)

End Sub

اتمنى ان اكون قد وفقت في الحل .. مع تحياتي و امنياتي

مرفق المشروع

Date_differ_project.rar

#5

مشكوررررررررررررررررر

#6

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

Private Sub btn_getdifeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

Handles btn_getdifeer.Click

Dim fri As Integer = 0

Dim str As Integer = 0

Dim z As Integer = 0

txttotal.Text = DateDiff(DateInterval.Day, Me.dtbkr_strat.Value, dtbkr_end.Value).ToString

z = DateDiff(DateInterval.Day, Me.dtbkr_strat.Value, dtbkr_end.Value)

Dim dt As Date = Me.dtbkr_strat.Value

Dim i As Integer

For i = 0 To z

If (dt.AddDays(i)).DayOfWeek = System.DayOfWeek.Friday Then

fri += 1

ElseIf dt.AddDays(i).DayOfWeek = System.DayOfWeek.Saturday Then

str += 1

Else

fri = fri

str = str

End If

Next

txtfriday.Text = fri

txtsatrday.Text = str

txtfinalresult.Text = z - (str + fri)

End Sub

#7

اليك البرنامج بعد التعديل

WindowsApplication1.rar

كل من فى الوجود يطلب صيداً :::: غير ان الشباك مختلفات

#8

مشكور فكره جامد جدا مشكور مشكور

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