الهدف ان يتم الإستفادة من البرنامج وان تعم الفائدة ولو هناك مشكلة أو إضافة نقوم ان شاء الله بالتعامل معها من حيث الإضافة او الحل .
أضافة الى ذلك ان مصدر البرنامج متاح ان شاء الله لو أرد اي شخص التعديل عليه
الهدف ان يتم الإستفادة من البرنامج وان تعم الفائدة ولو هناك مشكلة أو إضافة نقوم ان شاء الله بالتعامل معها من حيث الإضافة او الحل .
أضافة الى ذلك ان مصدر البرنامج متاح ان شاء الله لو أرد اي شخص التعديل عليه
جاري التحميل والإستفاده منه إن شاء الله
جزاك الله خيرا :)
السلام عليكم ورحمه الله وبركاته
اولا لم تضع كلمه المرور لاستخدام البرنامج كمدير
ثانيا لا يوجد الكود المصدرى للاطلاع عليه كما ذكرت فى بدايه موضوعك
اقتباسأضافة الى ذلك ان مصدر البرنامج متاح ان شاء الله لو أرد اي شخص التعديل عليه
وشكرا
السلام عليكم
نفس المشكله بالنسبه إلي أخي الفاضل ......لايوجد الكود المصدري للبرنامج ولا الباسورد
نرجو الإفاده أخي الفاضل
تم تعديل هذه المشاركة بواسطة abdelrahman.awad في 19 يناير 2012 في 02:57
السلام عليكم ورحمه الله وبركاته
Mahmoud Kelany كتب:اولا لم تضع كلمه المرور لاستخدام البرنامج كمدير
بالنسبة لكلمة مرور المدير موجود فعلاً فى ملف Read Me وهو على العموم [admin]
Mahmoud Kelany كتب:ثانيا لا يوجد الكود المصدرى للاطلاع عليه كما ذكرت فى بدايه موضوعك
Eng-Khaled كتب:السلام عليكم ورحمه الله وبركاته
بالنسبة لكلمة مرور المدير موجود فعلاً فى ملف Read Me وهو على العموم [admin]
وعليكم السلام ورحمه الله وبركاته
دائما ما يكون الملف Read ME هو ملف منشأ من قبل الـ Netbeans ولا احد ينظر اليه لان به معلومات خاصه بالـ jar file
لذلك كان يجب عليك التنبيه ليس الا
على العموم جزاكم الله خيرا :)
وجارى التحميل والاطلاع
وشكرا
بالنسبه لاضافه الموزع عندما يتم اضافه موزع
يجب اغلاق البرنامج والخروج كى يقوم بوضعه فى الـ combobox الخاص بالموزع
يجب عليك التعديل فى ان يقوم باعاده تحميل الموزعين فى حاله ضاف موزع او عدلة
فى حاله الرسائل الخطأ استخدم علامه الخطأ وهى دائرة حمراء تدل على ان المستخدم استخدم شىء خطأ
بالنسبه لرقم المسلسل لا يجب للمستخدم التعديل عليه من الاول بدلا من ان يقوم بتعديله وانت تقوم بعمل الفحص عليه
اجعله بطريقه اتوماتيكيه لكن الغى التعديل عليه
فى حاله البحث , وجدت انه ياخذ رقم المسلسل ويقوم بالبحث عنه لكن ان لم يكن موجود يقوم بظهور رساله خطأ تفيد ان رقم المسلسل غير موجود
والجدول يتم افراغ البيانات الموجوده فيه , لكن فى حاله ان اريد استرجع البيانات مره اخرى
يجب اغلاق البرنامج وفتحه مره اخرى او الضغط على تغيير المستخدم وفى الحاله دى بردوا كانى بقفل البرنامج وافتحه تانى
بالصدفه طبعا ضغت على زرار مسح لقيته ظهر الجدول مره اخرى
لكن انا كنت اظن انه لافراغ المحتويات الخاصه بالحقول
انت كدا عملت الاتنين مع بعض طب فى حاله ان انا هاسجل مستفيد جديد وكتب البيانات وعاوز اشوف البيانات بتاعت الجدول فانا لازم كدا لو ضغط على زر مسح
هيمسحها علشان يظهر الجدول وهابدا تانى ادخلها
المفروض ان الجدول يكون غير قابل للتعديل , يعنى قوم بالضغط على اى خليه فالجدول تجدها قابله للتعديل ويمكن لاى احد التعديل عليها امامك لكنها طبعا لم يتم تعديلها ف قاعده البيانات
فى حاله تسديد الاشتراك
ظهر هذا الخطأ
java.sql.SQLSyntaxErrorException: Table/View 'PAYER' does not exist.
فى حاله ااضافه موزع او السداد او تغيير كلمة المرور
تجد ان النوافذ عباره عن Frames والمفترض ان تكون Dialogs لمنع المستخدم من استخدام اى من النوافذ الاخرى الا بعد اغلاق هذه النافذه
لا يجوز ان اكون بضيف موزع وبعدين اسيبها مفتوحه واسجل مستفيد جديد
والنوافذ تجدها تظهر فى اماكن اخرى يجب ان تظهر فوق النافذه الرئيسية
فى حاله رسائل الخطأ تجد انها تظهر بهذه اللغة
لانك تستخدم اللغه العربيه داخل الـClass مباشرة فهذا دائما ما يحدث خطأ فى عرض اللغه
يجد استخدامها عن طريق الـ ResourceBandle
ندخل فالكود
عندك اكواد الربط بقاعده البيانات غير مستخدم فيها اى Pattern مثل MVC
يجب ان تتعامل بمبدأ OOP كى تستطيع التعديل على البرنامج بتاعك فى وقت لاحق وبكل سهوله
يعنى مثلا هذا الكود
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
DriverManager.getConnection("jdbc:derby:BreadDB;");
} catch (Exception e) {
}تجده متكرر فى كل SQL Class خاصه بك فالبرنامج بتاعك
طب وليه ما تعملها فى كلاس منفصله وتقوم باستخدامها كيفما تشاء
وفى الحقيقه هو هيتم استخدامها مره واحده
لانك عندما تقوم بتحميل الـ Driver وصنع الاتصال
بعدها تقوم باستخدام الاتصال التى تعود به الداله DriverManager.getConnection
فبالتالى هى مره واحده تقوم بها بمناداه هذا الكود وبعدها تقوم باستخدم الاتصال Connection object للاتصال والتعامل مع قاعده البيانات
طبعا مش هنتكلم عن اكواد قاعده البيانات لانها تحتاج الى اعاده هيكله
يعنى بدل استخدام هذا الكود مثلا
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();
ArrayList list4 = new ArrayList();
ArrayList list5 = new ArrayList();
ArrayList list6 = new ArrayList();ستجد انك اذا استخدمت MVC model ستجد الامر بسيط جدا
لانك هستخدم Beans تمثل كل جدول عندك فى قاعده البيانات
و Services تتعامل مع هذه الـ Beans
بالنسبه للتعامل مع الـ DistributorComboModel
يمكن استخدامها هكذا افضل من استخدام Model والتعامل معه فى class منفصله وانت لا تريد منه غير اضافه بيانات فقط
String[] arr = new String[names.size()];
DefaultComboBoxModel boxModel = new DefaultComboBoxModel(names.toArray(arr));بعد ذلك استخدم الـ boxModel فى الكود الخاص بك بدلا من استخدام Class منفصله له
يمكنك التعامل مع الـ PayerComboModel بنفس الطريقه
بالنسبه للـ PeopleSearchModel ما هو هو الـ PeopleTableModel بنفس الاعمدة ليه الاستخدام اكثر من مره
يجب ان تفصل عمليه العرض عن عمليه البحث والفحص فى قاعده البيانات
لان العرض شىء والمنطق شىء اخر
بالنسبه MyCellRenderer
يمكنك استخدام الكود التالى
table.setFont(new java.awt.Font("Traditional Arabic",0 , 18));فى جعل الجدول بهذا الخط بدل من ان تقوم بعمل Renderer لخلايا الجدول
لكن ممكن نقول انك مستخدمها علشان تعمل محاذاه للاعمده ناحيه اليمين
setHorizontalAlignment(JTextField.RIGHT);
لها بديل ايضا ان تقوم باستخدام الكود التالى
public static void setTableAlignmentValue(JTable table, int index, int align) {
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setHorizontalAlignment(align);
table.getColumnModel().getColumn(index).setCellRenderer(renderer);
}وبناء عليه تقوم بتحديد محازاه الخلايا استخدامها هكذا مثلا
(table, 0, JLabel.RIGHT); (table, 1, JLabel.LEFT); (table, 2, JLabel.CENTER);
كفايه كدا حاسس انى عقدت لكن بجد دا حصل معايا فبدايه طريقى فحبيت انبههك ليكون شغلك درجه اووى
وشكرا لك على تقبلك كلامى ونصيحتى
Mahmoud Kelany كتب:كفايه كدا حاسس انى عقدت لكن بجد دا حصل معايا فبدايه طريقى فحبيت انبههك ليكون شغلك درجه اووى
وشكرا لك على تقبلك كلامى ونصيحتى
مبدأيا جزاك الله خير على وقتك الذي اعطيتنى اياه وتسرد كل هذه النصائح التى عرفت بعضها بعد تعمقى الى حد ما فى البرمجة .
كنت فى البداية اميل لكى ابنى كل شئ بيدي .
لكن الأن مع وجود(hibernate , annotation (ORM
ResourceBandle& property
أصبح الامر مختلف ( بالطبع وقتها لم أكن اعرف هذه التقنيات )
حتى Logger فى موضوع تحديد الأخطاء واماكن وقعها فى الكود حتى يسهل الوصول للخطأ.
استفدت منك كثيرا .. شكرا لك
تم تعديل هذه المشاركة بواسطة Eng-Khaled في 20 يناير 2012 في 02:08