منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة فى عمل اشعار من البرنامج
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم 

واجهتني مشكلة وهى عمل اشعار من البرنامج بمعني ادق 
فى الصورة هنا فى 3 تواريخ مختلفه  فى عامود ( تاريخ التركيب ) 
انا عايز البرنامج يعد 90 يوم بعد التاريخ المكتوب فى عامود ( تاريخ التركيب ) ولو كان التاريخ اللى فى عامود ( تاريخ التركيب ) عدى عليه 90 يوم يجبلي السطر كله الخاص بالتاريخ دا فى داتا جريد فيو تانيه او فى ليست بوكس .. عايز عند فتح البرنامج يجبلي اشعار بالسطر كله للتواريخ اللى عدى عليها فقط 90 يوم .
يعني مثلا في الصورة اللى فوق دى المفروض يجبلي التاريخ دا : 1/1/2019 و التاريخ دا 1/12/2018 لان التاريخيين دول بس اللى عدى عليهم اكثر من 90 يوم 
بتمني اى حد يقدر يساعدنى فى حل المشكلة دى 
شكراً مقدماً 
اولا يجب ان يكون عند عامود ثاني بنفس الجدول تسميه تاريخ الاستحقاق يكون عند الحفظ :

PHP كود :
label1.Text dateTimePicker1.Value.AddDays(90).ToString("dd/MM/yyyy"); 

و الباقي كود استعلام على تاريخ اليوم في حدث اللود في الفورم المطلوب .
(12-10-19, 02:41 PM)asemshahen5 كتب : [ -> ]اولا يجب ان يكون عند عامود ثاني بنفس الجدول تسميه تاريخ الاستحقاق يكون عند الحفظ :

PHP كود :
label1.Text dateTimePicker1.Value.AddDays(90).ToString("dd/MM/yyyy"); 

و الباقي كود استعلام على تاريخ اليوم في حدث اللود في الفورم المطلوب .

عفواً اخوى عاصم ولكن انا مش فاهمك كويس 
انا معنديش تاريخ استحاق اصلا .. هعمل تاريخ استحقاق لايه بالظبط ؟؟؟!!
انا عامل كدا علشان يفكرني بعد 3 شهور بالعميل دا مش اكتر  لان بعد 3 شهور المفروض العميل ياخد خصومات 
اكتبه تاريخ التذكير و ما الفرق النتيجة هي المهمة .

او خصم الزبون يبدء بـ
(12-10-19, 03:26 PM)asemshahen5 كتب : [ -> ]اكتبه تاريخ التذكير و ما الفرق النتيجة هي المهمة .

او خصم الزبون يبدء بـ

تمام اخوى عاصم جزاك الله خير 
بس فيه حاجه تانيه ازاى اعمل اشعار ??! 
انا اعرف اعمل اشعار عن طريق اداره Tulpep Notification Window
ولكن ازاى اخلي الاشعار يجبلي بس الايام اللى عدي عليها 90 يوم  ؟!
وازاى اخلي البرنامج شغال علي طول بمعني ان المفروض لما يفتح الويندوز ومن غير ما اشغل البرنامج يجبلي اشعار للعميل اللي عدى عليه 90 يوم من غير ما افتح البرنامج نفسه .. بس بمجرد فتح الويندوز يبجلي الاشعار دا كنوع من التذكير ؟!
اخى الفاضل انت لا تحتاج الى كود مخصص
كل الامر انت ستستخدم نفس الكود الخاص بالاستعلام
ولكن ستضيف امر WHERE فى كود الاستعلام

تخيل انك انك لديك كود الاستعلام كالتالى 
كود :
SELECT * FROM test

كل الامر سيكون الكود كالتالى
كود :
SELECT * FROM test WHERE mydatestart <= mydatestart + DateAdd("d", 90, mydatestart)

الكود سيعمل معك اذا كان قاعدة بيانات Access أو SQL
والكود الاستعلام هنا كانى بقول اعرض جميع ما فى جدول قاعدة البيانات
بشرط بان يكون التاريخ اصغر من أو يساوى التاريخ + 90 يوم 


طيب يبقي انك تجعل الكود في شاشة اللود للفورم
ومن ثم ترجيل الناتج الى الداتا جريد وبكده تكون انهيت امر الشاشة

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

اعرض رسالة من خلال مثلاً 
PHP كود :
MessageBox.Show 

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

او انك تعمل شرط تحقق اذا كان وافق على الرسالة خاصة
PHP كود :
MessageBox.Show 

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

اتمنى ان الشرح مبسط واصبح الامور واضح معك كيفية اتمام الامر

تحياتى لك
وتمنياتى لك التوفيق
(12-10-19, 05:17 PM)elgokr كتب : [ -> ]
اخى الفاضل انت لا تحتاج الى كود مخصص
كل الامر انت ستستخدم نفس الكود الخاص بالاستعلام
ولكن ستضيف امر WHERE فى كود الاستعلام

تخيل انك انك لديك كود الاستعلام كالتالى 
كود :
SELECT * FROM test

كل الامر سيكون الكود كالتالى
كود :
SELECT * FROM test WHERE mydatestart <= mydatestart + DateAdd("d", 90, mydatestart)

الكود سيعمل معك اذا كان قاعدة بيانات Access أو SQL
والكود الاستعلام هنا كانى بقول اعرض جميع ما فى جدول قاعدة البيانات
بشرط بان يكون التاريخ اصغر من أو يساوى التاريخ + 90 يوم 


طيب يبقي انك تجعل الكود في شاشة اللود للفورم
ومن ثم ترجيل الناتج الى الداتا جريد وبكده تكون انهيت امر الشاشة

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

اعرض رسالة من خلال مثلاً 
PHP كود :
MessageBox.Show 

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

او انك تعمل شرط تحقق اذا كان وافق على الرسالة خاصة
PHP كود :
MessageBox.Show 

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

اتمنى ان الشرح مبسط واصبح الامور واضح معك كيفية اتمام الامر

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

بعد عمل الاستعلام بيجبلي الخطأ دا 
System.Data.SqlClient.SqlException: 'Invalid parameter 1 specified for dateadd.'
ما هو نوع العمود الخاص بالتاريخ هل من نوع نص ام انه تاريخ
ويفضل وضع كود الاستعلام هنا بعد ذكر نوع العمود المستخدمة
وتذكر بان يكون العمود من نوع تاريخ حتى يعمل الاستعلام بصورة صحيحة

تحياتى لك
وتمنياتى لك التوفيق
(12-10-19, 06:40 PM)elgokr كتب : [ -> ]
ما هو نوع العمود الخاص بالتاريخ هل من نوع نص ام انه تاريخ
ويفضل وضع كود الاستعلام هنا بعد ذكر نوع العمود المستخدمة
وتذكر بان يكون العمود من نوع تاريخ حتى يعمل الاستعلام بصورة صحيحة

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

نوع العامود هو date

وهذا هو الاستعلام 
كود :
       public void SearchdatagridviewDate()
       {
           dt.Clear();
           cmd = new SqlCommand("select * from Table1_Add_Client where Service_Date <= Service_Date + DateAdd('d',90,Service_Date)",con);
           da = new SqlDataAdapter(cmd);
           da.Fill(dt);
           dataGridView2.DataSource = dt;
           dataGridView2.Columns[0].HeaderText = "م";
           dataGridView2.Columns[1].HeaderText = "أسم العميل";
           dataGridView2.Columns[2].HeaderText = "رقم الموبايل";
           dataGridView2.Columns[3].HeaderText = "العنوان";
           dataGridView2.Columns[4].HeaderText = "تاريخ التركيب";
           dataGridView2.Columns[5].HeaderText = "المبلغ المطلوب";
           dataGridView2.Columns[6].HeaderText = "المبلغ المدفوع";
           dataGridView2.Columns[7].HeaderText = "المبلغ المتبقي";
           dataGridView2.Columns[8].HeaderText = "تاريخ التذكير";
           dataGridView2.Columns[9].HeaderText = "ملاحظات";
       }
السبب يرجع لكونك استخدمت
PHP كود :
'd' 

بدلاً من
PHP كود :
"d" 

استبدل سطر الاستعلام بهذا السطر
كود :
           cmd = new SqlCommand("select * from Table1_Add_Client where Service_Date <= Service_Date + DateAdd(\"d\",90,Service_Date)", con);
وان شاء الله يعمل معاك بدون مشكلة


تحياتى لك
وتمنياتى لك التوفيق
الصفحات : 1 2