• 0
ahmedalsafi

مساعده في تحليل برنامج لادارة الشيكات

سؤال

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

1_رقم العميل

2_اسم العميل
3_رقم الهاتف

4_العنوان

5_رقم الشيك

6_قيمة الشيك

7_تاريخ السداد

8_اسم البنك

 

 

*وكنت اريد حينما ياتي موعد الشيك تظهر لي رسالة تنبهيه تخبرني بمعلومات الشيك الذي حان موعده
*انا استخدم قاعده بيانات من نوع sql server ولغة السي شارب دوت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

12 إجابة على هذا السؤال .

  • 0

ريثما يتم نقل الموضوع لمنتدى هندسة البرمجيات أو التحليل

سنبدأ خطوة خطوة :

مقدمة عن البرنامج:

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

يجب أن تحدد ما تريد من البرنامج , ماهي متطلبات البرنامج وماذا تريد من البرنامج أن يعمل ؟

  1. يجب على البرنامج أن يتيح للمستخدم إدخال/تعديل/ حذف  معلومات الزبون  أو الزبون ككل
  2. يجب على البرنامج أن يتيح للمستخدم إدخال/تعديل/ حذف معلومات شيك معين لزبون معين
  3. يجب على البرنامج أن يتيح للمستخدم البحث عن الشيكات المستحقة لزبون معين
  4. يجب على البرنامج أن يتيح للمستخدم البحث عن الشيكات المستحقة خلال تاريخ معين
  5. هل ما كتبته فوق كافي ؟

يجب أن تحدد ما هي الكيانات Entities المستركة البرنامج

  • الكيان الأول كما هو واضح هو الزبون
  • الكيان الثاني هو الشيك
  • هل هذا كافي ؟

 

يجب أن تحدد العلاقة بين الكيانات :

     ما هي العلاقة بين الزبون والشيك؟

  • هل الزبون يمكن أن يكون له أكثر من شيك ؟ هل يمكن اضافة شيك آخر للزبون في وقت لاحق بعد صرف الشيك ؟ إذا كان نعم فالعلاقة هي  زبون(1) - شيك(*) one to many
  • هل الشيك يمكن أن يصرف باسم عدة زبائن مشتركين لصرف الشيك ؟ اذا كان نعم فالعلاقة هي  زبون(*) - شيك(*) many to many

 

تفصيل الكيانات (بفرض أننا سنستخدم علاقة one to many)

  • ماهي المعلومات المطلوبة من الزبون ؟ (هل المعلومات التالية كافية) : #(رقم معرف للزبون) 1- الاسم الأول 2- الكنية  3- اسم الاب  4- رقم الهاتف   5- العنوان  
  • ماهي معلومات المطلوبة للشيك؟ (هل المعلومات التالية كافية): # (رقم معرف للشيك) 1- رقم الشيك 2- قيمة الشيك 3- تاريخ السداد 4- اسم البنك 5- (معرف الزبون ) 6- تم الصرف ؟
تم تعديل بواسطه eiado
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك اخي eiado 

هذا مااريده بالظبط لكن ماذا ستكون الخطوة القادمة  
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الخطوة القادمة تحليل أنماط البيانات في الجدولين :

الجدول الأول الزبون Customer :

  1. المعرف CustomerId: نمط البيانات إما int أو unique-identifier  في حال اخترت int  يجب أن يكون auto increment 
  2. الاسم الاول FirstName يفضل لكونك تعمل على SqlServer  أن يكون (100)nvarchar
  3. الكنية LastName يفضل لكونك تعمل على SqlServer  أن يكون (100)nvarchar
  4. الأب FaherName يكون (100)nvarchar
  5. PhoneNumber رقم الهاتف (16)nvarchar 
  6. العنوان address  يكون (500)nvarchar

بنفس الطريقة للشيك مع ملاحظة أن الحقل (معرف الزبون ) يجب أن يكون بنفس نمط بيانات معرف CustomerId

اكتب انت الجدول الآخر لأعلم أني قدرت وصل المطلوب   ;)

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم اخي eiado لقد قمت بتصميم  جدولين في قاعده البيانات كما طلبت. هما customers & cheque

           الجدول الاول customers

 

ID_CUSTOMER_1 ونوع بياناته  int ترقيم تلقائي+ (primary key)

2_FIRST_NAME  ونوع بيناته (100)nvarchar

3_FATHER_NAME ونوع بياناته (100)nvarchar

4_LAST_NAME ونوع بياناته (100)nvarchar

5_PHONE ونوع بياناته (16)nvarchar

6_ADDRESS ونوع بياناته (500)nvarchar

 

            الجدول الثاني cheque

 

1_no_cheque ( رقم الشيك ) ونوع بياناته int + مفتاح اساسي

2_value_cheque (قيمة الشيك) ونوع بياناته ( decimal(18,18

3_Receive_cheque (تاريخ استلام الشيك) ونوع بيناته datetime واستخدمة في خصائصه داله تعطينا الوقت الحالي () getdate

4_Repayment_cheque (تاريخ استحقاق الشيك) ونوع بيناته datetime

5_bank (اسم البنك) ونوع بياناته (100)nvarchar

 

* لقد احترت كثيرا فلا ادري هل no_cheque ( رقم الشيك ) ونوع بياناته int. هل نوع البيانات هذا مناسب للحقل؟؟ ماذا عن رقم الشيك هل هو رقما صحيحا لا يحتوي علي احروف او ماشابه ذلك؟؟!!؟؟

* هل توجد علاقة بين الجدولين ؟ لقد صممت الجدولين ووضعت مفتاح اساسي في كلاهما تحسبا ان كانت هناك علاقة بينهم.. مثل هل يتم ربط رقم العميل مع رقم الشيك ؟؟

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أفضل أن يكون هناك :

معرف خاص للشيك ID_Cheque من نوع Primary Key , Auto Increment 

رقم للشيك يعامل كحقل Unique  و أيضا من نوع nvarchar السبب هو تنوع ارقام الشيكات بين البنوك المختلفة فلو مثلا كان هناك تعامل مع عدة بنوك فهذا الامر هام جدا وفي حال تعاملنا مع بنك وحيد يجبأن نقوم برؤية مستقبلية لاحتمال نقل الحساب المصرفي لبنك آخر لذلك أفضل أن يكون هناك حقلين 

ابدأ بعد تغيير القيمتين إن كان اختياري مناسب لك بتصميم الواجهات الملائمة 

N3quNTo.png

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور اخي eiado لقد قمت بضافة حقل معرف الشيك id_cheque  ونوع بيناته int +ترقيم تلقائي (primary key)

وتصحيح نوع بيانات حقل no_cheque ( رقم الشيك ) الي nvarchar(20) + unique

 

ان تصميمك للواجهات رائع جدا .سوف ابداء في التصميم حالا

لكن ماهو الكود الذي يظهر معلومات الشيك حينما يحين موعده واين يكتب هل يكتب في تحميل الفورم ام  في اداة تايمر ام في اداة DateTimePicker
بصراحة اخي هذا مايخيفني ويشغل بالي كثير
ا..
 

بارك الله فيك علي النصائح القيمة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قبل كل شيئ ماذا قررت للاتصال بقواعد البيانات ؟ Dataset,Linq,Entityframework ؟

الأن بالطبع نحتاج لتايمر يقوم بعد كل "تكة" بعمل تحديث للبيانات واستيراد قيم الشيكات المستحقة بين كل تكتين (في حال اردت العمل على الثواني والدقائق )

والأمر سيتم خارج النيسب thread الرئيسي أي سنستخدم تقانة تعدد الاجراءات multithreading

تم تعديل بواسطه eiado
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

في الحقيقة انا مبتدي نوعا ما لا اعرف غير تقنية Dataset

لا اظن اننا نحتاج الي الثواني او الدقائق كلو مايهمني هو عندما ياتي تاريخ الشيك تطلعنا رسالة تنبهية (الا اذ كان لابد من استخدام الثواني والدقائق)

ماهو تعدد الاجراءات multithreading ؟؟؟.لقد بداء الامر يصعب قليل :rolleyes:
 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا تقلق .. من تعدد النياسب :)

سنباشر بها لاحا وسندرسها سويا

ابدأ بالتصميم وإدخال البيانات بالشيكات أولا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم اخي eiado لقد قمت بتصميم الواجهات

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

انا اعمل علي قاعدة بيانات من نوع sql server 2008 enterprise edition
مثلا:- هذا نص الاتصال الذي استخدمة في الدخول لقاعدة البيانات الموجودة علي جهازي

sqlconnection = new SqlConnection (@"server=AHMED-PC\; database=sale_db; integrated security=true");post-275435-0-26234800-1384635127_thumb.post-275435-0-30062300-1384635150_thumb.

ماهو نص الاتصال الذي يسمحل للبرنامج ان يعمل علي جهاز اخر؟
 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .