Primer بتاريخ: 17 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 17 فبراير 2004 ان شاء الله تعالى سوف ابدأ فى شرح خطوات عمل برنامج مشتريات :اولاً : انشاء الجداول:عملاء Customers- بضائع items-الفواتير Invoicesجدول العملاء:Create table Customers(cust_no number(4) primary key,Cust_name varchar2(20),E_mail varchar2(20),Tel_no varchar2(20));جدول البضائع :Create table items(item_no number(4) primary key,Item_desc varchar2(20),Qty number(4),P_u number(8,2));جدول الفاتورة الرئيسية :Create table inv_m(inv_no number(4),Inv_type number(1),Inv_date date,Cust_no number(4) references customers(cust_no),Constraint pk_inv_m primary key(inv_noi,inv_type));جدول تفاصيل الفاتورة :Create table inv_d(inv_no number(4),Inv_type number(1),Item_no number(4) references items(item_no),Qty number(4),Vonstraint fk_inv_d_inv_m foreign key(inv_no,inv_type) references inv_m(inv_no,inv_type),Constraint pk_inv_d primary key(inv_no,inv_type,item_no));تابع معى بأذن الله ... سوف نكمل معاَ فيما بعد الى ان ننتهى من البرنامج بالكامل. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
John بتاريخ: 17 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 17 فبراير 2004 معاك من البداية اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Mr.Most بتاريخ: 17 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 17 فبراير 2004 بارك الله فيك اخي Primerونحن معك انشاء الله حتى النهاية.........بس ياريت تشرحلنا مبداء عمل النظام.وشكرا......................... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
salama11433 بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 معاك حتى النهايه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
TAREK ALHAMAD بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 السلام عليكم أخوانى أعضاء المنتدى وشكرا يا Primer على الموضوع واتمنى أن تشرحلنا مبداء عمل النظام (التحليل) المخرجات العمليات المدخلاتكما أقترح تقسيم العمل فيما بينناأتمنى ان نكمل البرنامج حتىالنهاية يــــــــــــــــــــــــا رب حتى يتحقق الهدف الذى من أجله قام أصحاب فكرة أنشاء المنتدىبانشائه وحتى تعم الفائدة على الجميع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
arab20002000 بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 مشكور و في انتظار المزيد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nn_oracle بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 ألف شكر لك يا primer على هذاالمجهودوجزاكالله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الأوائل بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 السلام عليكم جميعاً ، سبحان الله يا أخي Primer دخلت المنتدى لطرح سؤال متعلق بفاتورة المشتريات في جزئية معينة .. وإذا بك تطرقت للموضوع .. فمشكور على بادرتك وبالنسبة للسؤال إذا أردت أن أأخر طرحه فلك ما تريد .. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 هلا اخي و شكرا لجهدك المبزولكنت افضل ان تبدأ بتحيليل النظام اولا قبل الشرج العملي و لكن جهدك مشكور و ارجوا بعد ذلك عند طرح انشاء جداول او اي شغل علي الداتا بيز ان يتم ارفاق ملف سكول به اوامر الانشاء واذا كان هناك طرح ل عمليات علي الفومرز ان يتم ارفاق الفورمز تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
aboalwaleed بتاريخ: 18 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 بارك الله فيك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 18 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 اشكر الزميل Black& white على الملاحظة لكن من الافضل ان يقوم الزملاء بتفيذ الخطوات بأنفسهم وهذا افضل من الملفات الجاهزة وهو من واقع خبرتى افضل ... ولكن ان شاء الله اذا واجه اى من الزملاء مشاكل فى التنفيذ سوف نحلها معاً ..أعد الزملاء فى النهاية طبعاًَ بطرح ملفات المشروع ... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 18 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2004 2- نستكمل موضوع المشتريات حيث لم نتحدث عن تحليل على افتراض انه بسيط وسهل وغير معقد ويتضح لك العلاقة بين الجداول العملاء،البضائع،الفواتير من خلال التدقيق فى بناء هذة الجداول ولكن عموماً يمكننا مناقشة ذلك اذا لزم .قبل ان نبدأ فى تنفيذ الخطوات العملية التالية يفترض ان يكون الزميل قد درس جيداً الـForms Designer وطبعاً pl/sql...سوف اكتب الخطوات كما يلى:باستخدام FORMS DESIGNER :تصميم شاشة العملاء:1- ننشأ (data block (Customers مع (Canvas(Customers ثم تصميم الشاشة... 2- ننشأ Trigger on block level pre-insert :Select nvl(max(Cust_no),0)+1 Into :Customers.cust_no from customers;3- من الخصائص نغييرitem type الى display item للـ Cust_no.4- ندخل اى عدد من السجلات للعملاء.تصميم شاشة البضائع :1- ننشأ (data block (items مع(Canvas(items و data block يكون Tabular...تصميم الشاشة .2- من الخصائص نغييرitem type الى display item للـ item_no.3- ننشأ trigger on block level pre-insert :Select nvl(max(item_no),0)+1Into :items.item_no from items;4- Enter some records and press F10 to save .تصميم شاشة الفاتورة (الجزء الرئيسي):1- ننشأ (inv_m) كـ data block مع (inv_m) كـcanavs وبدون علاقات.2- نغيير من الخصائص نوع inv_no الى display item كما سبق .3- ننشأ trigger on block level pre-insert :Select nvl(max(inv_no),0)+1Into :inv_m.inv_no from inv_mWhere inv_type=:inv_m.inv_type;4- نغيير الخصائص لـinv_type بحيث يصبح النوع list item ونضيف العناصر فى القائمة بحيث تصبح :Purchase 1Sales 2مع ملاحظة ان هذة القيم تعتبر Static...وليست Dynamic.ونستأنف فيما بعد بأذن الله تعالى .... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Guest عادل الشهري بتاريخ: 19 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2004 بارك الله فيك أخ Primer إلى الأمام : )أخوك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sam94 بتاريخ: 19 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2004 الأخوة الأكارم بعد دراسة تصميم الـ Table لاحظت وجود نقص كبير ...مثال بطاقة المادة Items_Table يجب إن يحتوي على مايلي :Item_No رقم المادة ( متسلسل)Item_Code رمز المادةItem_ADesc الوصف العربي للمادهItem_EDec الوصف اللاتيني للمادهItem_Sup الجهة المزوده بالماده ( من Table أخر)Item_Cat تصنيف الماده ( من Table أخر)Item_Unit الوحدة Qty_In مجموع الكميات المدخلة ( من عمليات شراء , مناقله ...)Qty_Out مجموع الكميات المخرجة ( من عمليات بيع , هدايا, نماذج مجانيه ...)Re_Ord_Lvl حد إعداة الطلب ( الكمية الواجب توفرها في المخزون بشكل دائم )Item_Cost سعر التكلفة ( يعدل للـ AverageCost بعد كل عملية شراء)Sale Price سعر المبيع Stock_Pos موقع التخزين في المستودع يرجى المناقشة لمتابعة دراسة باقي الـ Tables قبل البدء بالتصميم تــحــيـــــــــــــــــــــاتي Sami اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الأوائل بتاريخ: 19 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2004 السلام عليكم ..أخي Primer هناك ملاحظة عند إنشاء table inv_m وهي primary key(inv_noi,inv_type ينبغي أن تكون primary key(inv_no,inv_type حتى يتم إنشاء الجدول .كذلك في table inv_d يعطي SQL الخطأ ERROR at line 5:ORA-00907: missing right parenthesis اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 19 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2004 عندك حق يا اخى هناك خطأ فى الكتابة فى جدول inv_m بالنسبة للحقل inv_noi هو inv_no ولكن غير مقصودة وعموماً الملف بالكامل سأقوم بتحميلة لمن يرغب فى اخذة وتنفيذة مباشرة ...وبالنسبة للاخ sami اقول لك ان احنا بصدد تنفيذ فكرة البرنامج على نطاق بسيط ويمكننا تتطويرة واضافة اى افكار ولكن حتى لا يكون الموضوع صعب على من يبدأ معنا ويحبط للصعوبة او لغيرة من الاسباب ...وان شاء الله سوف ننفذ مشروع مبيعات بعد ذلك سوف نضيف فية افكار اخرى. purchase_tables.txt اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sam94 بتاريخ: 19 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2004 السلام عليكم لاأزال بإنتظار الرد Sami اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 23 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 23 فبراير 2004 عفواً للتأخير قليلاً للانشغال لكن ان شاء الله سنكمل المشروع ... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
huttami بتاريخ: 25 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2004 وفقك الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
John بتاريخ: 25 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2004 انشاء الله يكون سبب تاخيرك خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 29 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 29 فبراير 2004 (معدل) نستكمل العمل :- نضع قيمة Mapping of other values :1 ،initial value : 1 -نختار inv_date ونذهب الى الخصائص ونضع فى :-Format mask :Dd/mm/yyyy،initial value : $$date$$ -الان ننشأ text item فى التصميم الخاص بـ inv_m canvas مع name :name"" ،database item : No .-وعلى cust_no فى inv_m " datablock " ننشأ : create trigger post-changeselect cust_name into :inv_m.name from customerswhere cust_no=:inv_m.cust_no;- نجعل الشاشة تعمل بالضغط على مفتاحى ctrl+r وندخل القيمة 1 لـcust_no ونضغط على F10 للحفظ .- الان ننشأ datablock "inv_d" فى نفس الـCanvas الخاص بـ inv_m وننشأ العلاقة بينهما Relationship فقط item_no ، qty نرغب ان نعرضهم فى invoice details.- الان نقوم بإنشأ display item يسمى item_desc مع الخصائص database : no- ونضيف price unit بأضافة display item مع الخصائص database : no- على مستوى inv_d يتم انشاء الـtriggers فى post-change للـitem-no :Trigger post-change :Select item_desc into :inv_d.item_desc from itemsWhere items.item_no=:inv_d.item_noTrigger post-change :Select p_u into :unit_price from items Where items.item_no=:inv_d.item_no- الان ننشأ display item Total"" حيث الخصائص data type : number ، database item :No ،Calculation mode : formula و Formula تكون هى :inv_d.qty*:price - الان ننشأ manully data block جديد مع الخصائص single record : yes ، نضيف total بخصائص item type : display item فى inv_d - تحت هذا العمود فى block ننشأ display item :sum ،calculation mode: summary ، summarized block:inv_d ، summarized item:Total ،summary function : Sum ، Data type:Number .- على مستوى inv_d" Block " نغيير الخصائص Query all records : yes .- الان لتقليل الكمية من المخزون نقوم بعمل الـtrigger pre-insert على مستوى inv_d فى data block :Declare a number ;Begin if :inv_d.inv_type=2 then Select qty into a from items Where item_no=:inv_d.item_no; If :inv_d.qty>a then Message ('quantity not enough'); Raise form_trigger_failure; Else Update items Set qty=qty-:inv_d.qty Where item_no=:inv_d.items_no; End if; End if;End;- الان على مستوى inv_d نقوم بعمل trigger pre-update :Declare A number; B number; C number;Begin If :inv_d.inv_type=2 then Select qty into a from items Where item_no=:inv_d.item_no; Select qty into b from inv_dWhere inv_no=:inv_d.inv_no and inv_type=:inv_d.inv_type and item_no=:inv_d.item_no;C:=a+b;If :inv_d.qty>c then Raise form_trigger_failure;Else Update itemsSet qty=c-:inv_d.qtyWhere item_no=:inv_d.item_no;End if;End if;End;- الان ننشأ على مستوى inv_d" " pre-delete trigger Begin If :inv_d.inv_type=2 then Update items Set qty=qty-:inv_d.qty Where item_no=:inv_d.item_no; End if;End;- نقوم الان بتشغيل inv_d ونجرى بعض التغييرات فى السجلات ثم نحفظ ذلك ونذهب الى items , ونستعلم عن السجلات لكى نرى اذا كان قد تغيير المخزون ام لا .يمكنك الان تحميل هذة الشاشات وهى تحتوى على كل ما قمنا بتنفيذة ...كما يمكن للزملاء الاضافة أو الاقتراح او التعديل بأفكار جديدة ....مع خالص شكرى وتمنياتي لكم بدوام التوفيق ITEMS.fmb تم تعديل 29 فبراير 2004 بواسطة Primer اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 29 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 29 فبراير 2004 تحميل ملف العملاء CUSTOMERS.fmb اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Primer بتاريخ: 29 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 29 فبراير 2004 تحميل ملف الفاتورة ..تعقيب على الشرح :اعتذر الحقيقةفى ان الشرح قد يكون فى اتجاه اليمين... بعد الكتابة وجدت مشكلة فى ان النص يأتى الى جهة اليمين مع انى قد كتبته فى MS word فى الاتجاة الصحيح ونقلته .... INV_M.fmb اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الأوائل بتاريخ: 1 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 1 مارس 2004 جزاك الله خير أخي Primer على مجهودك .. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mamd2004 بتاريخ: 22 يوليو 2004 تقديم بلاغ مشاركة بتاريخ: 22 يوليو 2004 اولا اخي primerمشكور على مجهودك واتمنى الإستمرار بالموضوع كاملاعندي ملاحظة بسيطة ارجو الرد عليها وهي وجود ضمن النظام الخاص بالمشترياتقسمين مشتريات خارجية ومشتريات محلية اي بالعملة المحلية والعملة الخارجيةوكذلك وجود طلبات شراء هذه طلبات نستخدمها في المنشآتيمكن التواصل واوافيكم بالجداول الخاصة بذلك..... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.