تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
محتاجة تعديل على مشروع مرفق يقوم بأرسال لايميل بوقت وتاريخ معين مرفق بداتا جيرد
#11
إقتباس :المطلوب من البرنامج انو يبحث داخل الداتا جيرد فيو عن كل لحظة زمن وتاريخ يتطابق فيها مع تواريخ الأرسال ويقوم بارسال الرساله للأيميل الموجود
مادام الامر كذلك فالامر ابسط شي نعمل حلقة For لتمر بكل صفوف الاداة Datagridview  ونقرا حقل التاريخ اولا ونتحقق منه بـ الكود التالي:
PHP كود :
Private Sub Timer1_Tick(sender As ObjectAs EventArgsHandles Timer1.Tick
        Timer1
.Stop()
 
       For r 0 To MessageDataGridView.Rows.Count IIf(MessageDataGridView.AllowUserToAddRows21)
 
           If MessageDataGridView.Rows(r).Cells(2).Value Now.Date.ToShortDateString And MessageDataGridView.Rows(r).Cells(1).Value Now.Date.ToShortTimeString Then
                
'اتوقع الباقي سهل بناء على الفكرة
                '
يجب ان يكون تنسيق التاريخ بالقاعدة مساويا لتنسيق الوقت المحدد بالكود وهو
                
'ToShortDateString
                '
ToShortTimeString
            End 
If
 
       Next
    End Sub 
فيه اشياء اخرى لكن اتركها حتى السؤال عنها
الرد }}}
تم الشكر بواسطة: رهف العريفي , Amir_Alzubidy
#12
اخي مشكور على مجهودك القيم ..... انا عندي اقتراح بس ما ادري راح ينفع يكون احسن من ال timer  اذا حطينا بدل ال timer ....

                                                                                     BackgroundWorker

على حسب خبرتي البسيطه ما ادري في ماذا يتم استخدام ال BackgroundWorker ولاكن اشتغلت فيه مشروع للنسخ الاحتياطي لقاعدة بيانات اتوماتيكيا ويعمل على النسخ في وقت انا احدده .......... هذا بالنسبة للاقتراح .

الأشياء الناقصه ف الكود الحاله

1 / هل اكتب نفس الكود الموجود ف ال button  واضعه داخل ال timer ؟؟
2 / كيف ارسل النص الموجود داخل الحقل المطابق للوقت والتاريخ  ؟؟؟

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

اسفة على الاطاله اخوي وجزاك الله كل خير على بذل كل جهودك معي

تم ارفاق الملف

فكرة ال BackgroundWorker لأني ممكن اكون شغاله على البرنامج في form اخر

وعشان يكون التايمر شغال لازم افتح الفوووورم !!!!!! هاذي هي المشكله


الملفات المرفقة صورة/صور
   

.rar   Email.rar (الحجم : 186.67 ك ب / التحميلات : 47)
الرد }}}
تم الشكر بواسطة:
#13
لدي اقتراح ..مادام ان الارسال مفهوم .. نستخدم شغل ثاني خالص مثلا تعبئة ملف نصي وننظر كيف يكون الامر لان الارسال ربما لم يتم ليس لان هناك خطا وانما امور امنية تخص المزود.
باذن الله ساعدل على المثال الاخير ليعمل باقتراحي الجديد....وبنفس الوقت كلنا امل العون من الله ثم من الاخوة الفضلاء.

ملاحظة بسيطة!
الدالة checkdetails لم يتم كتابتها بشكل يمكن استخدامها!
الرد }}}
تم الشكر بواسطة:
#14
اخي بالأخر الي يهمني اني اطبق الفكرة في Datagridviwe لأن راح يكون عندي شغل تقارير تسليم رسائل وراح يكون عندي مئات الرسائل ال notbad ماهي مضمونه اخي ....

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

اخي هذا المثال الي قصدي عليه والذي يقوم بعمل نسخ احتياطي لأكسيس داتا بيز بوقت معين في label عن طريق ال BackgroundWorker1

م تقدر تعدل على نفس الفكرة تبع ال BackgroundWorker1 وبدلا من النسخ الاحتياطي نستخدم كود الأرسال داخل ال BackgroundWorker1

وبدلا من ال label  نغير اختبار ال if بدلا من label الى حقل التاريخ والزمن ويصير يختبر داخل الداتا جيرد فيو داخل حقل التاريخ والزمن

اذا تطابق يقوم بأرسال الرساله

اليك المثال مرفق اطلع ع المثال التالي


الملفات المرفقة
.rar   Backup Auto - Access Data Base.rar (الحجم : 186.76 ك ب / التحميلات : 1,126)
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy
#15


المثال ليس كامل فقط كتبت الجزئية التي كانت غامضة بالنسبة لي
تم تحديث المرفق

اهم جزئية الكود التالي:
PHP كود :
Do Until b.CancellationPending True
            For r 
0 To d.Rows.Count IIf(d.AllowUserToAddRows21)
 
               Dim t As DateTime Now.ToShortTimeString
                Dim tt 
As String t.ToString("HH:mm")

 
               If d.Rows(r).Cells(1).Value Now.Date.ToShortDateString And d.Rows(r).Cells(2).Value tt And d.Rows(r).Cells(3).Value "NO" Then
                    MsgBox
(d.Rows(r).Cells(0).Value)
 
                   d.Rows(r).Cells(3).Value "Yes"
 
               End If
 
           Next

        Loop 
بدل السطر
 MsgBox(d.Rows®.Cells(0).Value)
ممكن نكتب كود الارسال


الملفات المرفقة
.zip   For_Rahaf.zip (الحجم : 98.33 ك ب / التحميلات : 61)
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , رهف العريفي
#16
مشكور اخي سعود على مجهودك جزاك الله خير ...  مشروعك اشتغل معي ولاكن عندماا قمت بنقل الأكواد وتعديل بعض الأشياء الطفيفه يتين لي انا هناك خطأ وراجعت الكود كذا مرة مافي اي اخطاء ... يمر الوقت والزمن والمسج بوكس م تطلع لي بعد قدوم الوقت و التاريخ ...... اتلخبطت علي مفاهيم مشروعك ومشروعي اليك الصور بعد التعديل وصورة من مكان الخطأ بالكود وتم ارفاق المشروع ......ومشكور كل الشكر


الملفات المرفقة صورة/صور
       

.rar   Email.rar (الحجم : 171.43 ك ب / التحميلات : 53)
الرد }}}
تم الشكر بواسطة:
#17
المشكلة لو اني اعرف اتعامل مع مشاريع غيري كان حليت مشروعك من البداية ... لكن هي نقطة ضعفي  لاني لا استطيع تحليل المشروع التحليل المرغوب به من قبل صاحب المشروع هذي نقطة.. النقطة الاخرى لماذا اهرب من الربط بالمعالج؟ لان اي خطا بالمشروع يتم استدعاء ملف القاعدة في مجلد ملفات المشروع وهذا مزعج بالنسبة لي حيث اني اضطر للتعديل اليدوي.
على كل حال
حتى نكون (او على الاقل ياتي احد يساعد في هذه القضية) على خط واحد ارجو ترك الربط بالمعالج والاكتفاء بالربط بالكود حتى نكون بحرية بالتعامل مع Datagridview .
نقطة اخرى توجد خطوة بالربط بالمعالج مهمة لتلافي الاشكالات الكثيرة بها وهي عدم نسخ ملف القاعدة تاتي خطوة مربع حوار يستاذن يجب ان ننقر لا.

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

في قاعدة البيانات الخاصة بك وجدت عمود yes no من نوع مذكرة!
القصد من التحقق من قيمة آخر عمود بشبيكة البيانات حتى لا يتكرر الارسال لنفس السجل.

الان عدلت على ملف القاعدة بمشروعك وعند التشغيل انحذفت!!

ارجو الربط بهذه الطريقة
https://www.youtube.com/watch?v=yzWCw5yekgQ
حتى نكون بوجهة واحدة افضل من النقاشات وكل واحد بطريق مختلف عن الاخر.
الرد }}}
تم الشكر بواسطة: ابو ليلى , رهف العريفي
#18
كما قال الاخ سعود الربط عن طريق المعالج ليس الافضل و يغلب كثيرا  مع انني احب الاستفادة من كائنات المعالج  Cool فقط الكائنات و ليس الربط و خصوصا الكائن السحري BindingSource
المهم هذا تعديل صغير يقوم بالارسال وفق Timer نفس فكرة الاخ سعود مع تعديل بسيط على القاعدة ازلت حقل المفكرة الذي اشار اليه سعود و بدل عنه حقل يولياني للتاكد من الارسال


الملفات المرفقة
.rar   Email.rar (الحجم : 188.57 ك ب / التحميلات : 64)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: سعود , رهف العريفي
#19
لكم كل الشكر  الاخ سعود و ابو ليلى مشكورين ع مجهودكم معي جزاكم ربي كل خير  ظبط معي المشروع  بعد تعديلات ومجهود  والاخ ابو ليلى كان ف شويه اخطاء وعدلتها
ما كنت اقدر اضيف للداتا جيرد تواريخ غير تاريخ اليوم فقط ..... وكان وقت الرساله ينفذ بالوقت فقط ... ليس الوقت والتاريخ مع بعض وشوية تعديلات الحمدلله ظبطت معي 


اذا حبيت اضيف على الداتا جيرد فيو مربوطه عن طلايق المعالج حبيت اضيف شويه ديزاين ( ألوان )

يعني مثلا ابغى ككود اضعو في ال Load 
الكود يقوم بتلوين صفوف الداتا جيرد فيو بالتالي :
اذا باقي شهر على موعد ارساله الرساله :  يقوم بتلوين جميع الحقول المتبقي لها شهر باللون " الأصفر"  .. 
اذا تك ارسال الرساله يقوم بتلوين جميع الحقول التي تم ارسال رسالتها باللون "الأحمر"
عداااااا ذلك شهر ومافوق لون او نطاق " أخضر " 
مثل اشارة المرور بل مطبقة على داتا جيرد فيو للتميز فقط   Smile Smile 
الفكرة راح يتم احتساب الأيام من تاريخ الجهاز ( جهاز الكمبيوتر )  date.now
طبعا برنامجي راح يكون شغال على طول بس ايش تشوفن الأفضل اين اضع الكود لان الكود في  load راح نفذ مرة واحده فقط
الرد }}}
تم الشكر بواسطة:
#20
إقتباس :لان الكود في  load راح نفذ مرة واحده فقط
افضل شي استخدام مسار مستقل واسهل شي استخدام Backgroundworker
مع تفعيله عند حدث تشغيل الفورم Load وايقافه عند حدث الاغلاق closing.
الرد }}}
تم الشكر بواسطة:



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


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