الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

رائج
بدأه Mahmoud Kelany في 2 يوليو 2010 · 138 رد · 21,159 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#51

السلام عليكم

اليوم قولت اشغل البرنامج من الملف dist اللى موجود فى ملف المشروع

لقيته بيقولى خطا فى الوصول لقاعده البيانات

وذلك مع استخدام الـ Access database

لكن لم غيرته مع my SQL

اشتغل كويس اعتقد انه علشان موجود الـ Driver بتاعه ضمن المجلد lib

فانا عاوز اشغل البرنامج بستخدام الـ JRE فقط ؟ فما الحل هل يوجد Driver يضاف ام ماذا ؟

Software Developer
Mahmoudkelany.com


 

#52

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

قم بنسخ المجلد database والذى يحتوى على قاعدة البيانات Access

والصقه داخل المجلد dist الموجود فى المشروع 

وعندها قم بتشغيل البرنامج وانظر النتيجة

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#53
Oracle_Java كتب:

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

قم بنسخ المجلد database والذى يحتوى على قاعدة البيانات Access

والصقه داخل المجلد dist الموجود فى المشروع

وعندها قم بتشغيل البرنامج وانظر النتيجة

تحياتى

معذره اخى الكريم

فعلا عندى الجزئيه دى سماح ها المره

تعبان بقا تعمل ايه :wacko:

بس بالنسبه لقاعده البيانات

انا لم نسختها فى ملف dist وشغلت البرنامج

لقيته جايب لى البيانات اللى كانت بالعربى بشكل غريب خالص

انما لم اشغلها من الـ netbeans بتظهر عادى وكويسه

post-217802-083027900 1279198618_thumb.p

==============

طب وبالنسبه لاظهار رقم المسلسل بشكل جمالى فى الجدول هل من طريقه ؟

المرفقات
Untitled-2.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 15 يوليو 2010 في 15:57

Software Developer
Mahmoudkelany.com


 

#54

ما هى دى مشكلة اللغة العربية اللى بقول عليها من سنة

عالعموم حلها عندى لكن انا حاليا فى الشغل

ساكتب لك حل المشكلة من البيت

سلام


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#55
Oracle_Java كتب:

ما هى دى مشكلة اللغة العربية اللى بقول عليها من سنة

عالعموم حلها عندى لكن انا حاليا فى الشغل

ساكتب لك حل المشكلة من البيت

سلام

ما هى المشكله مش ظهرت الا دلوقتى

فى الحالات اللى انت ذكرتها مش ظهرت لكن فى الحاله هذه ظهرت اهيه

خلاص تمام ربنا يوفققك يارب

بجد انا مش عارف اشكرك ازاى

واقف معايا من اول لحظه ربنا يوفققك يارب

هل تعتقد وبصراحه اننى لم اتقن العمل بالبرنامج ؟

يعنى هل المشاكل هذه من بدايه المشروع لحد الان هي للمحترفين

ام انها تاثر على مشروعى اذا قومت بتسليمه

هذا لاقتباس الخبره فقط

وجزاك الله خيرا

ومنتظرك بعد رجوعك سالما الى بيتك ان شاء الله

سلام عليكم

Software Developer
Mahmoudkelany.com


 

#56

لقد مررت بمشكلة مشابهة ذات مرة ...

بالتحديد هنا : /index.php?showtopic=209242

وانحلت بشكل غريب :)

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 15 يوليو 2010 في 18:02

#57
Speed_Of_Light كتب:

لقد مررت بمشكلة مشابهة ذات مرة ...

بالتحديد هنا : /index.php?showtopic=209242

وانحلت بشكل غريب :)

صراحه انا مش فاهم حاجه من الحل :wacko: :wacko:

Software Developer
Mahmoudkelany.com


 

#58

انا ايضا مررت بمشكلة مشابهة ولكن فى الاتصال مع قاعدة البيانات Access

وانحلت بعد بحث طويل

ال Driver الخاص بقاعدة البيانات Access يتأثر بواجهة النظام او System Locale

فاذا كانت عربية Arabic Egypt مثلا يعمل بشكل سليم

اما اذا كانت غير ذلك English United States مثلا تظهر الحروف العربية على هيئة علامات استفهام ??????

وبعد عدة تجارب وجدت الحل فى اضافة الكود التالى الى البرنامج ولكن فى الفئة الاولى (First Class)

وفى المنشئ Constructor وليكن مثلا

public class First{

public First(){

System.setProperty("file.encoding","windows-1256");

}

public static void main(String[] args){

new First();// for run the constructor

SwingUtilities.invokeLater(new Runnable(){

public void run(){

new myMainFrame().setvisible(true);

}

});

}

}

وهذا الحل اكيد ومجرب 100 مرة

وانا فى انتظار النتيجة معك

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#59
Mahmoud Kelany كتب:

مش ينفع بردوا اعيد ترتيب الـ ID ?

او بمعنى اصح انا ممكن اشيله من الجدول

بس عاوز طريقه اعمل select لصف معين اوصل لمكانه فالجدول

فانا مش بعرف اوصل له الا عن طريق اشوف الـ ID واعرض معلوماته

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

اولا يجب ان تقسم المبيعات الى يوميات

مثلا يومية المبيعات اليوم بتاريخ 15-7-2010 وتأخذ ايضا رقم ID كمفتاح اساسى Primary Key

ليه ؟ لان مثلا صاحب المكتبة يريد ان يعرف مبيعاته فى شهر مايو 2010

كيف ستخرجها له من برنامجك

ثانيا : لو ان هذه المكتبة تبيع بالجملة الى مكتبات صغيرة مثلا او بنظام البيع الاجل

وجاء صاحب المكتبة الصغيرة هذه وهو بالنسبة لك العميل واراد ان يعرف كشف حسابه

كيف ستخرجه له من برنامجك ؟

وربما ينكر العميل انه اخذ منك بضاعة معينة مثلا ماذا سيكون ردك ؟

سوف تقول له (انت خدتها وخلاص عافية بقى mad.gif)

لكن فى حال تسجيلك للمبيعات بتاريخ فعندها تقول له (اخذت هذه البضاعة فى يوم 14-5-2010 مثلا)

لا اظن ان مثل هذا البرنامج ينفع بدون التاريخ أليس كذلك ؟

تخيل ان الزبون اى المستخدم ظل يستخدم برنامجك هذا لمدة 3 سنوات مثلا

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

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

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

والسؤال الاهم ما الفائدة من عرض كل هذه البيانات (2008-2009-2010)

بالنسبة لترتيب الرقم فى الجدول فأساسا بناء الجدول هذا خطأ

الا تلاحظ ان المستخدم يمكنه التعديل عليه (أعرف انها بدون حفظ لكنها نقطة ضعف)

الا ترغب فى عمل محاذاة للبيانات داخل الاعمدة فى المنتصف

علاوة على تحكم كامل فى الجدول

قم ببناء هذا الجدول على TableModel

وقم ببناء هذا ال Model بيديك عن طريق عمل فئة ترث من javax.swing.table.AbstractTableModel

وقم بعمل اعادة تحميل Overloading للدوال الاتية

public int getRowCount();

public int getColumnCount();

public String getColumnName(int col);

public boolean isCellEditable(int row, int col);

public Object getValueAt(int rowIndex, int columnIndex);

public void setValueAt(Object value, int row, int col);

ثم استخدم هذه الفئة فى الجدول بكتابة الكود التالى مثلا

myTable.setModel(new myModel());

وعندها ستتحكم كلية فى الجدول وحتى عناوين الاعمدة Columns Headers

وانصحك بمراجعة Java Tutorial من Oracle فى الجزء الخاص باستخدام JTable

http://download.orac...ents/table.html

لن يأخذ من وقتك أكثر من 10 دقائق وسيجعلك محترف فى استخدام الجداول

عموما فكر فى الامر وانا فى انتظارك

تحياتى

تم تعديل هذه المشاركة بواسطة Oracle_Java في 16 يوليو 2010 في 00:50


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#60

اتكلم عن مشكلة العربية طبعا

جرّب التالي لتشغيل الملف من خارج النتبينز

افتح الNotepad

و اكتب فيه التالي

java -jar -Dfile.encoding="UTF-8" xxxx.jar

حيث xxxx يمثل اسم الملف

ثم احفظ هذا الملف بأي اسم تريد بامتداد .bat

مثلا start.bat بجانب ملف الJar الذي لديك

وشغل البرنامج منه

اذا نجحت الطريقة ارجو اعلامي :)

تم تعديل هذه المشاركة بواسطة محمد عرسان في 16 يوليو 2010 في 02:19

#62
Oracle_Java كتب:

انا ايضا مررت بمشكلة مشابهة ولكن فى الاتصال مع قاعدة البيانات Access

وانحلت بعد بحث طويل

ال Driver الخاص بقاعدة البيانات Access يتأثر بواجهة النظام او System Locale

فاذا كانت عربية Arabic Egypt مثلا يعمل بشكل سليم

اما اذا كانت غير ذلك English United States مثلا تظهر الحروف العربية على هيئة علامات استفهام ??????

وبعد عدة تجارب وجدت الحل فى اضافة الكود التالى الى البرنامج ولكن فى الفئة الاولى (First Class)

وفى المنشئ Constructor وليكن مثلا

public class First{

public First(){

System.setProperty("file.encoding","windows-1256");

}

public static void main(String[] args){

new First();// for run the constructor

SwingUtilities.invokeLater(new Runnable(){

public void run(){

new myMainFrame().setvisible(true);

}

});

}

}

وهذا الحل اكيد ومجرب 100 مرة

وانا فى انتظار النتيجة معك

تحياتى

تمام جزاك الله خيرا

:)

Software Developer
Mahmoudkelany.com


 

#63
محمد عرسان كتب:

اتكلم عن مشكلة العربية طبعا :)

انا عارف انها عن حل مشكله اللغه العربيه

لكنى لم افهم حلك

Software Developer
Mahmoudkelany.com


 

#64
Mahmoud Kelany كتب:

انا عارف انها عن حل مشكله اللغه العربيه

لكنى لم افهم حلك

شغل الملف بتاعك من الدوس

كالتالي :

java -jar -Dfile.encoding="UTF-8" xxxx.jar

xxxx هو اسم ملفك ال Jar

فقط يا محمود

#65
محمد عرسان كتب:

اتكلم عن مشكلة العربية طبعا

جرّب التالي لتشغيل الملف من خارج النتبينز

افتح الNotepad

و اكتب فيه التالي

java -jar -Dfile.encoding="UTF-8" xxxx.jar

حيث xxxx يمثل اسم الملف

ثم احفظ هذا الملف بأي اسم تريد بامتداد .bat

مثلا start.bat بجانب ملف الJar الذي لديك

وشغل البرنامج منه

اذا نجحت الطريقة ارجو اعلامي :)

اششتغلت تمام جزاك الله خيرا

اسف على التاخير فالرد كان النت عندى بعافيه شويه زى صاحبه :lol: :lol:

محمد عرسان كتب:

شغل الملف بتاعك من الدوس

كالتالي :

java -jar -Dfile.encoding="UTF-8" xxxx.jar

xxxx هو اسم ملفك ال Jar

فقط يا محمود

لا خلاص ما الحل الاول اشتغل

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

وانا مش كنت شوفته لان النت كان مهيس خالص

Software Developer
Mahmoudkelany.com


 

#66
Oracle_Java كتب:

اولا يجب ان تقسم المبيعات الى يوميات

مثلا يومية المبيعات اليوم بتاريخ 15-7-2010 وتأخذ ايضا رقم ID كمفتاح اساسى Primary Key

ليه ؟ لان مثلا صاحب المكتبة يريد ان يعرف مبيعاته فى شهر مايو 2010

كيف ستخرجها له من برنامجك

ثانيا : لو ان هذه المكتبة تبيع بالجملة الى مكتبات صغيرة مثلا او بنظام البيع الاجل

وجاء صاحب المكتبة الصغيرة هذه وهو بالنسبة لك العميل واراد ان يعرف كشف حسابه

كيف ستخرجه له من برنامجك ؟

وربما ينكر العميل انه اخذ منك بضاعة معينة مثلا ماذا سيكون ردك ؟

سوف تقول له (انت خدتها وخلاص عافية بقى mad.gif)

لكن فى حال تسجيلك للمبيعات بتاريخ فعندها تقول له (اخذت هذه البضاعة فى يوم 14-5-2010 مثلا)

لا اظن ان مثل هذا البرنامج ينفع بدون التاريخ أليس كذلك ؟

تخيل ان الزبون اى المستخدم ظل يستخدم برنامجك هذا لمدة 3 سنوات مثلا

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

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

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

والسؤال الاهم ما الفائدة من عرض كل هذه البيانات (2008-2009-2010)

بالنسبة لترتيب الرقم فى الجدول فأساسا بناء الجدول هذا خطأ

الا تلاحظ ان المستخدم يمكنه التعديل عليه (أعرف انها بدون حفظ لكنها نقطة ضعف)

الا ترغب فى عمل محاذاة للبيانات داخل الاعمدة فى المنتصف

علاوة على تحكم كامل فى الجدول

قم ببناء هذا الجدول على TableModel

وقم ببناء هذا ال Model بيديك عن طريق عمل فئة ترث من javax.swing.table.AbstractTableModel

وقم بعمل اعادة تحميل Overloading للدوال الاتية

public int getRowCount();

public int getColumnCount();

public String getColumnName(int col);

public boolean isCellEditable(int row, int col);

public Object getValueAt(int rowIndex, int columnIndex);

public void setValueAt(Object value, int row, int col);

ثم استخدم هذه الفئة فى الجدول بكتابة الكود التالى مثلا

myTable.setModel(new myModel());

وعندها ستتحكم كلية فى الجدول وحتى عناوين الاعمدة Columns Headers

وانصحك بمراجعة Java Tutorial من Oracle فى الجزء الخاص باستخدام JTable

http://download.orac...ents/table.html

لن يأخذ من وقتك أكثر من 10 دقائق وسيجعلك محترف فى استخدام الجداول

عموما فكر فى الامر وانا فى انتظارك

تحياتى

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

اولا اخى الكريم اود ان اشكرك واحيك من كل قلبى

كل ما تقوله انا بالفعل افكر فيه

يعنى مووضوع انى اجعل هناك تقسيم بالتواريخ

فانا بالفعل كنت افكر فيه منذ البدايه

لو نظرت الى قاعده البيانات لوجدت ان هناك جدول يسمى "time "

وهذا ما كنت انوى ان اجعل البيانات مقسمه بالتواريخ

لكن فى بدايه الامر

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

لكن الان وبعد هذا الكم من التعديلات والتوجيهات سوف اقوم بالتوجهه الى تقسيم البيانات

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

اقتباس

بالنسبة لترتيب الرقم فى الجدول فأساسا بناء الجدول هذا خطأ

الا تلاحظ ان المستخدم يمكنه التعديل عليه (أعرف انها بدون حفظ لكنها نقطة ضعف)

انت ذكرت ان بناء الجدول خطا وان المستخدم يمكن ان يعدل عليه ؟؟؟

يا ريت توضح اكثر هاتين العبارتين

بالنسبه للجدول فانا اريد فعل كل هذا

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

فهذه اول مره اتعلم كيف اقوم بعمل dynamic table

لكن اريد فعلا التوجهه الى عمل Modle خاص بى لكى اتمكن من كل شىء به

انا افكر فالامر منذ البدايه

لكن الان حانت اللحظه فى التوجهه الى تطوير ذلك

دعواتكم ان شاء الله

وشكرا اخى الكريم

وشكرا اخى محمد عرسان

Software Developer
Mahmoudkelany.com


 

#67

أظن أنك بحاجة لإعادة تصميم جداولك

ما هو تصميمها الحالي ؟

#68
Speed_Of_Light كتب:

أظن أنك بحاجة لإعادة تصميم جداولك

ما هو تصميمها الحالي ؟

فعلا انا اريد تنظيم الجدوال الخاصه بالمبيعات

اريد ان اقسم المبيعات بالشهور

لانه حاليا جميعا فى جدول واحد

ولكنى لا اعلم كيف اقسمها وعلى اى مبدا

فقد تضاربت لدى الافكار

انا دلوقتى تقسيمى هو جدول واحد للمبيعات به id , type ,price_unit ,num_unites , sale_unit

فكرت انى اجعل جدول خاص بالوقت

على ان يكون الـ month , year مع بعض هما المفتاح الرئيسى

لكن حاسس ان التصميم مو كويس

مممكن تدلونى على تصميم كويس بحيث يكون تعديلى للجداول تعديل بسيط ؟؟؟؟

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

Software Developer
Mahmoudkelany.com


 

#69

بسيطة !

أضف حقل sale_ts إلى جدول المبيعات، حيث يعبر عن زمن وتاريخ حدوث البيع

وقيمته الإفتراضية هي الآن

sale_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP

الآن يمكنك فلترة الجدول حسب رغبتك يومياً شهرياً سنوياً ... أنت حر :D

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 17 يوليو 2010 في 23:16

#70
Speed_Of_Light كتب:

بسيطة !

أضف حقل sale_ts إلى جدول المبيعات، حيث يعبر عن زمن وتاريخ حدوث البيع

وقيمته الإفتراضية هي الآن

sale_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP

الآن يمكنك فلترة الجدول حسب رغبتك يومياً شهرياً سنوياً ... أنت حر :D

يعنى اضيف حقل مش جدول

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

وسالتكم الحمدلله :lol:

بس سوال لم اعمل فلتره بالشهر هيكون ازاى وانا هاخد من الداتا بيز التاريخ كامل

هاخده مثلا فDate variable واعمل له getMonth() وكدا و لا ايه ؟

Software Developer
Mahmoudkelany.com


 

#71
SELECT *
FROM sales
WHERE sale_ts > ? AND sale_ts < ?

الآن مرر للوسيطين القيم التي تريد وستحصل على النتائج ضمن تلك الفترة فقط

#72
Speed_Of_Light كتب:

SELECT *
FROM sales
WHERE sale_ts > ? AND sale_ts < ?

الآن مرر للوسيطين القيم التي تريد وستحصل على النتائج ضمن تلك الفترة فقط

تمام ما انا فاهم قصدك دا

بس انا قصدى ان المستخدم هيقول انا عاوز بيانات شهر مارس 2010

طيب دلوقتى

هو طلب شهر مارس سنه 2010

وانا بسجل البيانات بتكون كدا مثلا

2010-03-19 23:52:26

ازاى بقا ابحث داخل قاعده البيانات بالشهر والسنه فقط

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

Software Developer
Mahmoudkelany.com


 

#73

إستخدم يا محمود الدوال الخاصه بقاعدة البيانات لعمل parse للتاريخ و من ثم قم قم بالمقارنه......

دي دوال التاريخ و الوقت ل mysql :

http://dev.mysql.com...-functions.html

و دي ل Derby

http://db.apache.org/derby/docs/10.2/ref/rrefsqlj29026.html

أعتقد إنك بتستخدم Derby , فانا غير متابع للموضوع من الأول

و ممكن تسأل في قسم قواعد البيانات

تم تعديل هذه المشاركة بواسطة هويدي في 20 يوليو 2010 في 04:56

#74
هويدي كتب:

إستخدم يا محمود الدوال الخاصه بقاعدة البيانات لعمل parse للتاريخ و من ثم قم قم بالمقارنه......

دي دوال التاريخ و الوقت ل mysql :

http://dev.mysql.com...-functions.html

و دي ل Derby

http://db.apache.org/derby/docs/10.2/ref/rrefsqlj29026.html

أعتقد إنك بتستخدم Derby , فانا غير متابع للموضوع من الأول

و ممكن تسأل في قسم قواعد البيانات

ماشى يا اخ هويدى

تسلم لى عيونك

بس هم لونهم ايه صحيح :)

جزاك الله خيرا

جارى تفحص اللينكات :lol:

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 20 يوليو 2010 في 20:24

Software Developer
Mahmoudkelany.com


 

#75

سوال سريع كدا

لكن صراحه لا اعلم لماذا يحدث هكذا

انا استخدم الكود التالى

Date date = new Date(System.currentTimeMillis());
        System.out.print(date.getMonth());

اريد ان اخذ الشهر الموجود على الجهاز حاليا

لكنى لا استطيع لان الشهر الذى احصل عليه هو 6 ولكن المفروض ان يظهر لى شهر 7

فما الخطأ اذن فى تلك الجزئيه

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…