تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] ماهي الطريقة الصحيحة
#1
السلام  عليكم  

  الاخوة  الاعزاء  

  عندي  TEXTBOX1 و TEXTBOX2 

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

3 سنوات 
و18 شهرا
45 يوم 

 وطبعا  عند اختيار  من الكومبوكس  اي  من الخيارات  اعلاه راح يظهر  في  التكست بوكس  2  المطلوب  هو  

  لو  ظهر  في  التكست بوكس 2  3 سنوات  يقوم  بانقاص  القيمة  الي  ظهرت  من  التكست بوكس 1 وهو  ناتج  الفرق بين  تاريخ  يعني  لو  طلع  3 سنوات  بينقص  من السنين 3 سنوات ولو  ظهر 18 شهرا بينقص  من الشهور  ولو  ظهر  ايام بينقص  من  الايام  طبعا  هو  لو  نقص  18 شهر  بالتاكيد القيمة  اكثر  من سنة فانه سوف يقوم بانقاص  السنة بشكل اتوماتك  ولو  انقص من الايام  45 يوم  ايضا  يقوم بنفس  العملية  الي  اجراها  على  الشهور  لان  45 يوم اكثر  من شهر  ينقص  شهر  من الشهور  و15 يوم  من الايام  حتى يكون الناتج صحيح  

اتمنى  تكون الفكرة و اضحة  اخوتي  
((  لا أحد يمكن له  ان يحدد متى يموت ولكن هو  من يقدر  ان يحدد  كيف يعيش بعد الموت فالحياة والمماة بيد الله  لكن  حياتك بعد الموت بيدك  فلا  تندم  على شيء فاتك في الدنيا لربما يرزقك  الله  خير  منه في  الاخرة  او لربما  دفع الله  عنك به  شيأ  اعظم  ...  تلك  هي  مشيئة الله  عز  وجل )) 
الرد }}}
تم الشكر بواسطة:
#2
قم اولا بعمل  Imports System.Text.RegularExpressions
هذا الكود لفصل الارقام عن الحروف
كود :
Dim x = Regex.Replace(Textbox2.Text, "\D", "")

ثم نقوم بعملية الطرح
كود :
Dim y As Integer = TextBox1.Text
Dim z = y - x
       MsgBox(z)
الرد }}}
#3
(03-11-18, 11:25 AM)larbihamri كتب : قم اولا بعمل  Imports System.Text.RegularExpressions
هذا الكود لفصل الارقام عن الحروف
كود :
Dim x = Regex.Replace(Textbox2.Text, "\D", "")

ثم نقوم بعملية الطرح
كود :
Dim y As Integer = TextBox1.Text
Dim z = y - x
       MsgBox(z)

شكرا لك  اخي لم  تفلح  مع  فكل  ما  اعطي  اظهر  النتائج بينقص  من التاريخ  ارسلت اليك رسالة خاصة
((  لا أحد يمكن له  ان يحدد متى يموت ولكن هو  من يقدر  ان يحدد  كيف يعيش بعد الموت فالحياة والمماة بيد الله  لكن  حياتك بعد الموت بيدك  فلا  تندم  على شيء فاتك في الدنيا لربما يرزقك  الله  خير  منه في  الاخرة  او لربما  دفع الله  عنك به  شيأ  اعظم  ...  تلك  هي  مشيئة الله  عز  وجل )) 
الرد }}}
تم الشكر بواسطة:
#4
فراس الغزي كتب : كتب :
elgokr كتب : كتب :
فراس الغزي كتب : كتب :
elgokr كتب : كتب :
فراس الغزي كتب : كتب :السلام  عليكم  اخي  كيفك  

  اخذ  بداية  انا اسف ارسلت اليك رسالة  خاصة  

 ولكن  عندي  استفسار  

  لاحظ الصورة المرفقة  شاهد الصورة  المرفقة  الان  انا  عندي  حقل  تاريخ  وشاهد  مكتوب ثلاث  سنةة  ابي لما اختار  من الكومبوكس  مثلا خيار  بيطلع  هو 3 سنوات  او 18 شهر  او  45 يوم  ابي  تنقص  من  حق  التاريخ  الي  موجود  بالفورم  الي  ماشر  عليه  وبصراحة  محتاجة  ولا افهم الفكرة  كيف  تكون  ممكن مساعدة  من  جنابك  الكريم  وهذا رابط  المشروع  اخي  واتمنى  منك المساعدة  اخي  
اخي  الي بدياه لما اختار الخدمة  ويطلع  الناتلج في  اليبل  3 سنوات بينقص  من  الناتج الي  ماشر  عليه بالصورة ولو  اختار 18 شهر بينقص  من الشهور  ولو  اختار 90 يوم  بينقص  من  الايام     وهكذا  اخي  ربي يوفقك  اتمنى  منك المساعدة  اخي 
https://up.top4top.net/downloadf-103756v2q1-zip.html


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


لنقول ان اللى مكتوب به 18 اسمه TYear1
ونقول اللى مكتوب به 3 سنة تحت اسم Tyear2

الان المطلوب طرح 18-3 ليصبح 15
واللى هى عبارة عن : TYear1 TYear2

طيب كيف يصبح الكود
لنوضح اولاً بما ان جملة 3 سنة هى عبارة عن الرقم اولاً من ثم الاسم ويوجد بينهم مسافة
اى انها بهذا الشكل [ 3 سنة ]
فالكود سيصبح بهذا الشكل
كود :
كود :
TYear1.text = TYear1.text - val(TYear2.text)

بمجرد تنفيذ الكود ستجد 18 تحول الى 15
واذا كان المطلوب عرضها فى مكان اخر سيتم كالتالى
كود :
كود :
Dim ii as integer = TYear1.text - val(TYear2.text)

طيب ما هى وظيفة Val اليس هى لعرض الارقام
نعم لعرض الارقام التى تبداء قبل النصوص 

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

اتمنى ان تكون الصورة وضحت لك كاملاً

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

 بداية  شكرا لك  لك  اخي  وفقك  الله  بداية  شكرا لك  اخي لكن  واجهتني  مشكلة  وهي  الان  انا  عندي  عدة  خيارات  منها  3 سنوات  و عندي  18 شهر  وعدي  90 يوم  الان  لما  جربت الكود  وطبقته  على  الكل  بيظهر  عندي  خطا يعني مثلا لو  اخترت الخدمة  18 شهر  نقص  لي  من السنوات  ومن الاشهر  ومن  الايام  18  وكذلك  الايام  لما  ختار  90 يوم  نقص  قيمة  ال  90 يوم  من  كل  الناتج  اليوم  والشهر  والسنة  

  ولا  ادري  ما الخلل

الفكرة لما شرحتها وضحتها على كونها للسنة

وما ينقصك فعله هو عملية تحقق
ان الكمبوبوكس المحدد فى نتتصف الشاشة هل هى 3 سنوات أم انها 18 شهر أم انها 90 يوم

وبنائاً على التحديد يقوم بالعملية الحسابة

فمثلا كود التحقق سيكون على مثال التالى
كود :
كود :
       If ComboBox1.SelectedItem = "3 سنوات" Then
           'الكود الذى سبق وتم شرحه
           TYear1.text = TYear1.text - Val(TYear2.text)
       ElseIf ComboBox1.SelectedItem = "18 شهر" Then
           'هنا ستقوم بعمل كود التالى كونها سنة ونص
           ' جلب عدد السنوات
           Dim yy As Double = Val(Val(TYear1.text) / 12).ToString("0")
           ' جلب عدد الاشهر
           Dim mm As Double = Val(TYear1.text) - Val(yy * 12)
           ' الكود للمعادلة 
           TYear1.text = TYear1.text - yy
           TMonth.text = TMonth.text - mm
       ElseIf ComboBox1.SelectedItem = "90 يوم" Then
           'هنا ستقوم بعمل كود التالى كونها 3 اشهر
           ' جلب عدد الاشهر
           Dim mm As Double = Val(Val(TYear1.text) / 30).ToString("0")
           ' جلب عدد الايام
           Dim dd As Double = Val(TYear1.text) - Val(mm * 30)
           ' الكود للمعادلة 
           TMonth.text = TMonth.text - mm
           TDay1.text = TDay1.text - dd
       End If

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

اخي  العزيز  ولو  تعبتك  ولكن  اعتقد  حصل  عندي  خطا  اتمنى  منك المساعدة  

كود :
كود :
            Label21.Text = CalcAge(Format(DateTimePicker2.Value, "dd/MM/yyyy"), Format(DateTimePicker1.Value, "dd/MM/yyyy"))
            Label22.Text = CalcAge(Format(DateTimePicker2.Value, "dd/MM/yyyy"), Format(DateTimePicker1.Value, "dd/MM/yyyy"))
            Label23.Text = CalcAge(Format(DateTimePicker2.Value, "dd/MM/yyyy"), Format(DateTimePicker1.Value, "dd/MM/yyyy"))
        Else



            Label21.Text = CalcAge(DateTimePicker1.Value, DateTimePicker2.Value)
            Label22.Text = CalcAge2(DateTimePicker1.Value, DateTimePicker2.Value)
            Label23.Text = CalcAge3(DateTimePicker1.Value, DateTimePicker2.Value)

        End If

        If ComboBox1.SelectedItem = "3 سنوات" Then
            'الكود الذى سبق وتم شرحه
            Label21.Text = CalcAge(DateTimePicker1.Value, DateTimePicker2.Value) - Val(muda.Text)
        ElseIf ComboBox1.SelectedItem = "18 شهر" Then
            'هنا ستقوم بعمل كود التالى كونها سنة ونص
            ' جلب عدد السنوات
            Dim yy As Double = Val(Val(muda.Text) / 12).ToString("0")
            ' جلب عدد الاشهر
            Dim mm As Double = Val(Label22.Text) - Val(yy * 12)
            ' الكود للمعادلة 
            Label21.Text = muda.Text - yy
            Label22.Text = muda.Text - mm
        ElseIf ComboBox1.SelectedItem = "90 يوم" Then
            'هنا ستقوم بعمل كود التالى كونها 3 اشهر
            ' جلب عدد الاشهر
            Dim mm As Double = Val(Val(muda.Text) / 30).ToString("0")
            ' جلب عدد الايام
            Dim dd As Double = Val(muda.Text) - Val(mm * 30)
            ' الكود للمعادلة 
            Label23.Text = muda.Text - mm
            Label23.Text = muda.Text - dd
        End If


ضع الخطاء الذى يحدث معك

واتمنى ان تستكمل الرسالة فى الموضوع الخاص بك


حتى تعم الفائدة للجميع

ويكون جميل اذا قمت باقتباس الردود السابقة هنا بموضوعك ليتم الاستكمال به


لا تنسي توضيح ما الخطاء الذى يحدث معك

وهل الكمبو الخاص بتحديد السنة والشهر واليوم هل هو اسمه 

ComboBox1


كما انا ذكرته فى كود المثال ؟؟


تحياتى لك

وتمنياتى لك التوفيق
((  لا أحد يمكن له  ان يحدد متى يموت ولكن هو  من يقدر  ان يحدد  كيف يعيش بعد الموت فالحياة والمماة بيد الله  لكن  حياتك بعد الموت بيدك  فلا  تندم  على شيء فاتك في الدنيا لربما يرزقك  الله  خير  منه في  الاخرة  او لربما  دفع الله  عنك به  شيأ  اعظم  ...  تلك  هي  مشيئة الله  عز  وجل )) 
الرد }}}
تم الشكر بواسطة:
#5
تم اضافة فورم فى السورس المرفق بالرابط مسبقاً
كل ما هو مطلوب منك التركيز على الفكرة اللى تمت
حتى تتمكن من انهاء ما تريده تماماً

تم استخدام النتائج للسنة والاشهر والايام بعد اتمام المعدلة الحسابية
اى تم استخدام الادوات التى تحمل الارقام وليس التواريخ واعادة استخراج المدة مجدداً 
من ثم طرح القيم المطلوبة طبقاً لما هو تم تحديدة لذلك تم وضع النتائج يدوياً لتوضح الفكرة لك

الكود المستخدم فى الفوم المضاف هو
كود :
       REM هنا يخص طرح السنوات
       If ComboBox1.SelectedItem = "3 سنوات" Then

           TextBox6.Text = TextBox3.Text - Val(ComboBox1.SelectedItem)
           '---------------------------------------------------------------------------------------'

           REM هنا يخص طرح الاشهر
       ElseIf ComboBox1.SelectedItem = "18 شهر" Then

           Dim yy As Double = CStr(Val(ComboBox1.SelectedItem) / 12).Split(".")(0)
           Dim mm As Double = Val(ComboBox1.SelectedItem) - Val(yy * 12)

           TextBox6.Text = TextBox3.Text - yy

           If mm < Val(TextBox2.Text) Then
               TextBox5.Text = Val(TextBox2.Text) - mm
           Else
               TextBox6.Text = Val(TextBox6.Text) - 1
               TextBox5.Text = Val(TextBox2.Text + 12) - mm
           End If
           '---------------------------------------------------------------------------------------'

           REM هنا يخص طرح الايام
       ElseIf ComboBox1.SelectedItem = "90 يوم" Then

           Dim mm As Double = CStr(Val(ComboBox1.SelectedItem) / 30).Split(".")(0)
           Dim dd As Double = Val(ComboBox1.SelectedItem) - Val(mm * 30)

           TextBox5.Text = Val(TextBox2.Text) - mm

           If dd < Val(TextBox1.Text) Then
               TextBox4.Text = Val(TextBox1.Text) - dd
           Else
               TextBox5.Text = Val(TextBox5.Text) - 1
               TextBox4.Text = Val(TextBox1.Text + 30) - dd
           End If
           '---------------------------------------------------------------------------------------'
       Else
           MsgBox("يجب اختيار المدة قبل اتمام عملية الحسابية")
       End If

مرفق السورس + برنامج للمعينة
السورس (2010)

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


الملفات المرفقة
.zip   Pro.zip (الحجم : 544.73 ك ب / التحميلات : 32)
.zip   Try DateTime.zip (الحجم : 582.61 ك ب / التحميلات : 13)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: فراس الغزي
#6
(04-11-18, 12:50 AM)elgokr كتب :
تم اضافة فورم فى السورس المرفق بالرابط مسبقاً
كل ما هو مطلوب منك التركيز على الفكرة اللى تمت
حتى تتمكن من انهاء ما تريده تماماً

تم استخدام النتائج للسنة والاشهر والايام بعد اتمام المعدلة الحسابية
اى تم استخدام الادوات التى تحمل الارقام وليس التواريخ واعادة استخراج المدة مجدداً 
من ثم طرح القيم المطلوبة طبقاً لما هو تم تحديدة لذلك تم وضع النتائج يدوياً لتوضح الفكرة لك

الكود المستخدم فى الفوم المضاف هو
كود :
       REM هنا يخص طرح السنوات
       If ComboBox1.SelectedItem = "3 سنوات" Then

           TextBox6.Text = TextBox3.Text - Val(ComboBox1.SelectedItem)
           '---------------------------------------------------------------------------------------'

           REM هنا يخص طرح الاشهر
       ElseIf ComboBox1.SelectedItem = "18 شهر" Then

           Dim yy As Double = CStr(Val(ComboBox1.SelectedItem) / 12).Split(".")(0)
           Dim mm As Double = Val(ComboBox1.SelectedItem) - Val(yy * 12)

           TextBox6.Text = TextBox3.Text - yy

           If mm < Val(TextBox2.Text) Then
               TextBox5.Text = Val(TextBox2.Text) - mm
           Else
               TextBox6.Text = Val(TextBox6.Text) - 1
               TextBox5.Text = Val(TextBox2.Text + 12) - mm
           End If
           '---------------------------------------------------------------------------------------'

           REM هنا يخص طرح الايام
       ElseIf ComboBox1.SelectedItem = "90 يوم" Then

           Dim mm As Double = CStr(Val(ComboBox1.SelectedItem) / 30).Split(".")(0)
           Dim dd As Double = Val(ComboBox1.SelectedItem) - Val(mm * 30)

           TextBox5.Text = Val(TextBox2.Text) - mm

           If dd < Val(TextBox1.Text) Then
               TextBox4.Text = Val(TextBox1.Text) - dd
           Else
               TextBox5.Text = Val(TextBox5.Text) - 1
               TextBox4.Text = Val(TextBox1.Text + 30) - dd
           End If
           '---------------------------------------------------------------------------------------'
       Else
           MsgBox("يجب اختيار المدة قبل اتمام عملية الحسابية")
       End If

مرفق السورس + برنامج للمعينة
السورس (2010)

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

بداية  اشكرك  اخي  على  هذا المجهود الي بذلته  معي  بصراحة  مجهود تشكر  عليه  ولكن  اخي  ظهر  عندي  مشكلة فقط في  السنوات  علما  انا  طبقت  كل  الي  انت  عامله في  مثالك  ولكن  لم  تنجح  عمليية حساب  السنين  الشهور  تمام  والايام  تمام لكن  السنوات  لا  تقوم بعملية  الحساب
((  لا أحد يمكن له  ان يحدد متى يموت ولكن هو  من يقدر  ان يحدد  كيف يعيش بعد الموت فالحياة والمماة بيد الله  لكن  حياتك بعد الموت بيدك  فلا  تندم  على شيء فاتك في الدنيا لربما يرزقك  الله  خير  منه في  الاخرة  او لربما  دفع الله  عنك به  شيأ  اعظم  ...  تلك  هي  مشيئة الله  عز  وجل )) 
الرد }}}
تم الشكر بواسطة:
#7
يبدو انه لديك سهور فقط
لان السنوات لا يوجد بها اى معاجلة لو تلاحظ ان السنوات عبارة عن سطر واحد عكس الاشهر و الايام

لو تلاحظ بالاعلى هو عبارة عن التالى
كود :
TextBox6.Text = TextBox3.Text - Val(ComboBox1.SelectedItem)

وهو قيمة السنوات الفعلية وليكن كمثال الصورة 18 يطرح منها عد السنوات الـ 3 ليعطى القيمة النهائية 15

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

راجع الامور لديك وعادة استخدام الكود من جديد
وستوضح الصورة معك كاملاً

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

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ماهي طريقة نقل محتويات checkedlistbox الى داتاقريدفيو صالح عبدالله 3 253 06-01-24, 03:20 PM
آخر رد: Kamil
  [VB.NET] ماهي الارقام الصحيحة من نوع Integer فطومة 1 387 03-06-23, 08:48 PM
آخر رد: Taha Okla
  [سؤال] ماهي اشهر مواقع لبيع نظام ERP في العالم ؟ ahmed_king2023 0 367 24-05-23, 10:10 PM
آخر رد: ahmed_king2023
  [VB.NET] ماهي overload LoveVb 4 2,413 06-03-23, 11:16 AM
آخر رد: زياد جلال محمد جلال
  استخدم هذه الطريقة فى التصدير الى اكسيل حماده ممدوح البحيرى 3 385 18-12-22, 10:20 AM
آخر رد: حماده ممدوح البحيرى
  ماهي طريقة انشاء hash invoice بطريقة اوتوماتيكية malsofi 0 348 04-12-22, 11:49 AM
آخر رد: malsofi
  [سؤال] ماهي فائدة ال class scluay 5 9,805 25-11-22, 03:21 PM
آخر رد: مهندس ابوبكر
  ماهي معادلة تقسيم شيء ما سعود 16 1,476 26-08-22, 06:31 AM
آخر رد: سعود
  ماهي طريقة عمل download لصورة من قاعدة البيانات sql إلى سطح المكتب ؟ جيولوجي مبتدئ 2 833 19-08-22, 10:53 PM
آخر رد: جيولوجي مبتدئ
  ماهي طريقة تحويل الصور إلى pdf ؟ جيولوجي مبتدئ 6 1,219 30-07-22, 02:24 AM
آخر رد: جيولوجي مبتدئ

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


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