بتاريخ: 10 أبريل 201114 سنة comment_210653 السلام عليكم ورحمة الله وبركاته أخوكم مبتدأ في الأوراكل ومن قبل كم شهر بدأت بالتطبيق والبركة بهذا المنتدى الكريمحيث استفدت كثيراً وأعطاني الثقة في نفسي وقد اتفقت مع إحدى الشركات لعمل نظام خاصبها وقد استعنت بأحد الإخوة المحترفين بهذا المجال بواسطة المنتدى وحبيت إني أنقل الفائدة للجميعوأرجو من الله أن يتقبلها مني صدقة جارية ولوالديي ولأسرتي ولكل من له علينا حق أخوكم/ فؤاد عبده تقديم بلاغ
بتاريخ: 10 أبريل 201114 سنة كاتب الموضوع comment_210654 الدرس الأول : عمل إضافة تلقائية وحفظ تلقائي لنفرض أن لدي شاشة تكويد المناطق وتحتوي على 2 culomn الأول رقم المنطقة والثاني اسم المنطقة وعند الخروج من الصف الحالي وبعد تعبئة البيانات اريد من البرنامج أن يعطيني ترقيم وحفظ تلقائي1- الترقيم التلقائيعند الحدث PRE-INSERT للبلوك نكتب الكود التالي : declare x number; begin select nvl(max(loc_id),0)+1 into x from locations ; :loc_id:=x; end; 2- الحفظ التلقائيعند الحدث KEY-NEXT-ITEM لآخر عامود في البلوك (الذي من خلاله ينتقل المؤشر الى صف جديد)نكتب الكود التالي : commit; next_record; الدرس الأول عمل إضافة تلقائية وحفظ تلقائي.rar تقديم بلاغ
بتاريخ: 10 أبريل 201114 سنة comment_210710 السلام عليكم ورحمة الله الأخ / فؤاد شكرا لك على هذه المبادرة الطيبة لنشر المعرفة وإفادة الأخوة الأعضاء جزاك الله خيرا تقديم بلاغ
بتاريخ: 11 أبريل 201114 سنة كاتب الموضوع comment_210734 وعليكم السلام ورحمة الله وبركاتهالشكر موصول لك يامهندس أمجد وكنت متوقع إن التفاعل يكون أكبر من كذالكن مش مشكلة راح أعتبر إني شفت تفاعل كويس وراح أكمللأنه أكيد اللي بيدخلوا بيستفيدوا تقديم بلاغ
بتاريخ: 15 أبريل 201114 سنة comment_210765 السلام عليكمواصل واخوي فؤاد وكلنا معاك والله يوفقك ويوفق جميع الاعضاء واكييد الكل رح يستفيدوا تقديم بلاغ
بتاريخ: 16 أبريل 201114 سنة كاتب الموضوع comment_210781 السلام عليكمالدرس الثاني : إضافة فترة (أشهر) الى تاريخ معين في الفورمنفرض أن لدي برنامج للمشاريع ويحتوي على مدة المشروع (PROJ_MODAH),و تاريخ إبتداء المشروع (PROJ_START)و تاريخ إنتهاء المشروع (PROJ_FINISH)والمطلوب إني عندما أدخل مدة المشروع وتاريخ إبتداء المشروع يعطيني البرنامج تاريخ إنتهاء المشروع مباشرةوالطريقة كالتالي :-عند الحدث WHEN-NEW-ITEM-INSTANCE لتاريخ إبتداء المشروع (PROJ_START) نكتب الكود التالي declare m date; begin m:=Add_months(:AQD.AQD_DATE_TASLEEM,:aqd.AQD_MODDH); :aqd_date_enthaa:=m; end; الدرس الثاني إضافة فترة أشهر الى تاريخ معين في الفورم.rar تقديم بلاغ
بتاريخ: 18 أبريل 201114 سنة كاتب الموضوع comment_210843 الدرس الثالث : طريقة الربط بين جدولين نحتاج في كثير من الأحيان الربط بين جدولين ولكن ليس بشكل Master & Details وإنما بشكل ربط طبيعي من أجل إستخلاص معلومات معينة .مثال على بيانات الموظفين في اسكيما scott/tiger :يحتوي جدول Emp على حقل dept_no وهو مفتاح أجنبي Foreign Key تابع لجدول الأقسام Dept الذي يحتوي على حقل dept_noوهو مفتاح أساسي Primary Key وعن طريق عملية الربط هذه نريد جلب أسماء الأقسام من كتلة البيانات Dept إلى كتلة البيانات Emp في Form Builder بحيث أنني عندما أدخل رقم القسم يظهر أسم القسم مباشرة في Display Itemولعمل ذلك نحتاج إلى :-1- إنشاء عنصر Display Item في كتلة Emp نقوم بتعديل الخصائص التالية Databsae Item : Noإسم القسم : prompt 2- ربط هذا العنصر (اسم القسم) بحقل اسم القسم (Dname)من جدول الأقسام Dept وذلك من خلال الحدث Post_Change للحقلdept_no في كتلة Emp ثم نكتب الكود التالي :- begin select dname into _name from dept where dept.deptno=:emp.deptno; exception when no_data_found then message('الرقم المدخل غير صحيح'); end; الدرس الثالث طريقة الربط بين جدولين.rar تقديم بلاغ
بتاريخ: 20 أبريل 201114 سنة كاتب الموضوع comment_210936 الدرس الرابع : الترقيم التلقائي للجدول Detailلنفرض أن لدي جدول رئيسي للدول ويتكون من حقل رقم الدولة (تسلسل يبدأ من 1) وحقل اسم الدولةولدي جدول المدن (ثانوي )مرتبط بجدول الدول والفكرة أني أريد عمل ترقيم تسلسلي للمدن يبدأ من 1 على حسب الدولة - مثال :1 اليمن : 1 صنعاء 2 تعز 3 مأرب 2 السعودية : 1 المدينة المنورة 2 مكة المكرمة 3 الرياض وهكذا , يعني أن التسلسل يبدأ من 1 للمدن مع كل دولة . والطريقة كالآتي :-أولاً : ننشئ جدول الدول Location ويتكون من حقلين :1- Loc_id pk Loc_name -2ثم ندخل البيانات على الجدول .ثانياً : ننشئ جدول المدن city ويتكون من 3 حقول :1- Loc_id fk (مرتبط مع حقل Loc_id في جدول الدول Location)2- city_id3- city_nameوعلاقة الربط بين الجدولين CITY.CITY_ID = LOCATION.LOC_IDومن FORM BUILDER وعند الحدث PRE-INSERT للبلوك city نكتب الكود التالي declare x number; begin select nvl(max(city_id),0)+1 INTO x from city where city.loc_id = :locations.loc_id; :city_id:=x; end; ومن الحدث KEY-NEXT-ITEM للحقل city_name نكتب الكود التاليcommit;next_record;Detailالدرس الرابع الترقيم التلقائي للجدول.rar تقديم بلاغ
بتاريخ: 23 أبريل 201114 سنة كاتب الموضوع comment_211070 الدرس الخامس : التحويل من التاريخ الميلادي إلى الهجريلنفرض أن لدي تاريخ تعيين الموظفين (ميلادي) , وأريد أن يعطيني البرنامج مايقابله بالتاريخ الهجري .مثال :نطبق هذا الدرس على جدول EMP في حساب SCOTT/TIGER :1- نضيف COLUMN ونسميه DATE_HIJ 2- نفتح FORMS BUILDER ونختار الحدث POST_CHANGE للحقل HIREDATE ثم نكتب الكود التالي : SELECT TO_CHAR(:HIREDATE ,'DD-MM-YYYY','NLS_CALENDAR=''ARABIC HIJRAH') INTO :DATE_HIJ FROM DUAL; الدرس الخامس التحويل من التاريخ الميلادي إلى الهجري.rar تقديم بلاغ
بتاريخ: 23 أبريل 201114 سنة كاتب الموضوع comment_211074 الله يكرمك ويجزيك خيرواصل يااخى السلام عليكموالشكر موصول لك أخي العزيز كويس إنه في ناس متابعة , ونواصل المسيرة بإذن الله وانا مش عاوز غير الدعاء تقديم بلاغ
بتاريخ: 23 أبريل 201114 سنة comment_211078 السلام عليكم اولا احب ان اشكرك كثيرا على هذا المجهود وعلى هذه البداية المبشرة لطريقة الشرح التى سوف يستفيد منها الكثير انا منهم خاصة انى لسه بادئة فى شغل جديد وكنت احتاج الى اكواد بتعمل ذلك الف شكر ولكن لدى طلب من حضرتك ياريت تنفذه وهو وضع الفورم الى حضرتك بتشرح على اساسها وذلك لكى تصل المعلومة كاملة ولك الشكر تقديم بلاغ
بتاريخ: 26 أبريل 201114 سنة كاتب الموضوع comment_211091 السلام عليكم اولا احب ان اشكرك كثيرا على هذا المجهود وعلى هذه البداية المبشرة لطريقة الشرح التى سوف يستفيد منها الكثير انا منهم خاصة انى لسه بادئة فى شغل جديد وكنت احتاج الى اكواد بتعمل ذلك الف شكر ولكن لدى طلب من حضرتك ياريت تنفذه وهو وضع الفورم الى حضرتك بتشرح على اساسها وذلك لكى تصل المعلومة كاملة ولك الشكر السلام عليكم طالماإن الفائدة راح تكون أكبر مافيش مشكلة لإني في كل الأحوال مافيش درس بنزله إلا بعد ماأطبق عليه .والله ولي التوفيق ,,, تقديم بلاغ
بتاريخ: 3 مايو 201114 سنة كاتب الموضوع comment_211454 السلام عليكم مرفق تطبيق عملي للدروس السابقة وأتمنى من الإدارة وضع كل تطبيق مع الدرس الخاص بهمع تمنياتي للجميع بالتوفيق ,,, الدرس الأول عمل إضافة تلقائية وحفظ تلقائي.rar الدرس الثاني إضافة فترة أشهر الى تاريخ معين في الفورم.rar الدرس الثالث طريقة الربط بين جدولين.rar Detailالدرس الرابع الترقيم التلقائي للجدول.rar الدرس الخامس التحويل من التاريخ الميلادي إلى الهجري.rar تقديم بلاغ
بتاريخ: 5 مايو 201114 سنة كاتب الموضوع comment_211530 السلام عليكم ورحمة الله وبركاتهالدرس السادس : طريقة استخدام دوال التجميع سوف نتعلم في هذا الدرس كيف نقوم بعمل تجميع لرواتب الموظفين واظهار صافي المرتبات وذلك على جدول EMP و اسكيما SCOTT/TIGERأولاً : ندرج Display Item لإيجاد مجموع المرتبات ونسميه sum_sal على البلوك EMP على أن يكون البلوك من نوع Tabular ومن خصائص Display Item نقوم بتعديل الخصائص كما هو موضح بالصورة أدناه sum_sal .ثانياً: ندرج Display Item ونسميه formula لإيجاد صافي مرتبات الموظفين وذلك من خلال جمع المرتب sal مع العمولة comm ومن خصائص Display Item نقوم بتعديل الخصائص كما هو موضح بالصورة أدناه formula .ملحوظة هامة :من خصائص البلوك EMP نضع QUERY ALL RECORDS = YES الدرس السادس طريقة استخدام دوال التجميع.rar تقديم بلاغ
بتاريخ: 10 مايو 201114 سنة كاتب الموضوع comment_211769 السلام عليكمالدرس السابع : طريقة استخدام LOVتم تطبيق هذا المثال على الجدول DEPT اسكيما SCOTT/TIGERمن شاشة object navigatior ندوس على LOVs ثم إضافة ثم تفتح شاشة نأخذ الخيار الأول Use The Lov Wizard ثم okومن الشاشة الثانية نأخذ الخيار الأول New Record Group based on a queryومن الشاشة الثالثة نضغط على Build SQL Query وبعد ذلك نختار الجدول والعمود ثم ok ثم Nextومن الشاشة الرابعة ننقل العمود من Record Group Columns الى LOV Columnsومن الشاشة الخامسة ومن Return value ندرج اسم Column المراد إظهاره في LOV وبعد ذلك Next حتى نهاية wizardوآخر خطوة نذهب الى خصائص الحقل ومن الخاصية List Of Value ندرج الإسم.التطبيق في المرفقات LOVالدرس السابع طريقة استخدام.rar تقديم بلاغ
بتاريخ: 11 مايو 201114 سنة كاتب الموضوع comment_211819 جزاك الله خيرا شكراً على المرور وبالتوفيق للجميع تقديم بلاغ
بتاريخ: 16 مايو 201114 سنة كاتب الموضوع comment_212007 السلام عليكم ورحمة الله وبركاتهالدرس الثامن : ادراج صورة للفورم وحفظها في قاعدة البياناتنضيف جدول للموظفين ندرج فيه 3 أعمدة CREATE TABLE EMP_PIC ( EMP_NO NUMBER PRIMARY KEY, EMP_NAME VARCHAR2(200), EMP_PIC BLOB ) ومن الفورم نضيف Button لإدراج صورة وعند الحدث When-Button-Pressed نضع الكود التالي declare MYFILENAME varchar2(255); begin MYFILENAME := get_file_name(file_filter=> 'jpeg files (*.jbg)|*.*|'); read_image_file(MYFILENAME,'JPG','emp_pic'); -- emp_picتمثل الحقل الخاص بالصورة end; الدرس الثامن طريقة إدراج صورة من الفورم.rar تقديم بلاغ
بتاريخ: 22 مايو 201114 سنة كاتب الموضوع comment_212268 السلام عليكم ورحمة الله وبركاتهالدرس التاسع : شاشة الدخولسوف نتعلم في هذا كيفية عمل شاشة دخول مكونة من اسم المستخدم وكلمة المرور .أولاً : ننشئ جدول باسم pass ونضع فيه الأعمدة التالية :-USER_NAME VARCHAR2PASSWORD NUMBERوفي الفورم نضيف TEXT_ITEM باسم U_NAME و TEXT_ITEM باسم PASSونضيف BUTTON للدخول وعند الحدث WHEN_BUTTON_PRESSED نكتب الكود التالي : IF :PASS IS NOT NULL THEN -----------IF_1 DECLARE PASS_W VARCHAR2(8); U_NAME VARCHAR2(20); U_ID NUMBER; BEGIN BEGIN SELECT PASSWORD INTO PASS_W FROM PASS WHERE USER_NAME =:U_NAME ; EXCEPTION WHEN NO_DATA_FOUND THEN PASS_W:=''; END; IF :PASS=PASS_W THEN ---------IF_2 هنا نحدد مسار الفورمCALL_FORM('D:\MAIN.FMX' ,hide,do_replace);-- EXIT_FORM(NO_VALIDATE,NO_COMMIT); ---------IF_3 END IF; ---------IF_2 END; ELSE ------------IF_1 MESSAGE('ENTER PASSWORD'); MESSAGE('ENTER PASSWORD'); GO_ITEM('PASS'); CLEAR_ITEM; RAISE FORM_TRIGGER_FAILURE; END IF ; شاشة دخول.rar تقديم بلاغ
بتاريخ: 28 مايو 201114 سنة كاتب الموضوع comment_212529 السلام عليكم ورحمة الله وبركاتهالدرس العاشر : طريقة تعبئة list_item من خلال text_itemفي هذا الدرس قمت بإنشاء جدول للمدن city ويحتوي على عمودينcity_id numbercity_name varchar2وفي الجدول الثاني أنشأت جدول آخر city_info ويحتوي على الأعمدة التالية :city_nam varchar2area varchar2count_pepoوبعد ذلك ننشئ الشاشة الأولى city وندخل فيها أسماء المدنومن ثم ننشئ الشاشة الثانية city_info وفي هذه الشاشة يبدأ الشغل :أولاً نقوم بعمل Record Group بإسم ST_RR (تذكروا هذا الإسم جيداً لأننا سوف نستخدمه في الكود) من الجدول city كالتالي SELECT '','-1'FROM DUAL UNION SELECT city_name, TO_CHAR(city_id) FROM city ونقوم بتحويل city_nam من text_item الى list_itemومن الحدث WHEN-NEW-FORM-INSTANCE للفورم city_info نكتب الكود التالي : declare b pls_integer; begin b:= populate_group ('ST_RR'); populate_list ('city_info.city_nam','ST_RR'); synchronize; end; ولتطبيق المثال ندخل أسماء المدن في الشاشة الأولى city ومن الشاشة الثانية وعند النقر على city_nam نجد أن أسماء المدن قد ظهرت . list الدرس العاشر تعبئة.rar تقديم بلاغ
بتاريخ: 31 مايو 201114 سنة كاتب الموضوع comment_212679 السلام عليكمالدرس الحادي عشر : طريقة عمل التفقيطسنطبق هذا الدرس على جدول emp اسكيما scott/tigerبعد استدعاء بلوك EMP على الفورم ندرج display item ونجعله summary للحقل sal ونسميه sum_salو ندرج display item آخر للتفقيط ونسميه pp ويكون نوع data type = char و Maximum Length = 300وفي المثال المرفق توجد دالة جاهزة للتفقيط بإسم FU_TAFKEET نقوم بنسخها في Programm Unit ومش حنعدل فيها حاجةومن الحدث When-mouse-move للبلوك EMP نكتب الكود التالي : :pp := FU_TAFKEET(nvl(:SUM_SAL,0)); وعند تحريك الماوس داخل البلوك تظهر النتيجة . التفقيط.rar تقديم بلاغ
بتاريخ: 4 يونيو 201114 سنة كاتب الموضوع comment_212835 السلام عليكم ورحمة الله وبركاتهالدرس الثاني عشر : عرض التاريخ واليوم والوقت على الشاشةأولاً ندرج Non_DB يعني Data Block فارغة نقوم بإدراج Display Item للتاريخ الميلادي ونسميه D1 من نوع charنقوم بإدراج Display Item للتاريخ الهجري ونسميه D2 من نوع charنقوم بإدراج Display Item لليوم ونسميه days من نوع charنقوم بإدراج Display Item للوقت ونسميه T1 من نوع charومن الحدث WHEN-TIMER-EXPIRED للفورم نكتب الكود التالي : select to_char(sysdate,'hh:mi:ss') into :T1 from dual; declare TIME VARCHAR2(200); BEGIN TIME:=:SYSTEM.CURRENT_DATETIME; end; ومن الحدث WHEN-NEW-FORM-INSTANCE للفورم نكتب الكود التالي : declare V_TIMER TIMER; DD VARCHAR2(255); AR_DATE VARCHAR2(255); begin V_TIMER:=CREATE_TIMER('Timee',120,REPEAT); select to_char(sysdate , 'dd-mm-yyyy') into :d1 from dual; SELECT TO_CHAR(TO_DATE(SYSDATE,'DD-MM-YYYY'), 'DAY','NLS_DATE_LANGUAGE =ARABIC')INTO DD FROM DUAL ; :DAYS :=DD; SELECT TO_CHAR(SYSDATE ,'DD-MM-YYYY','NLS_CALENDAR=''ARABIC HIJRAH') INTO AR_DATE FROM DUAL; :D2:=AR_DATE; EXCEPTION WHEN OTHERS THEN MESSAGE(DBMS_ERROR_TEXT); END; وتقبلوا تحياتي ,,, عرض الوقت والتاريخ على الشاشة.rar تقديم بلاغ
بتاريخ: 4 يونيو 201114 سنة comment_212857 السلام عليكم ورحمة الله الأخ / فؤاد استمر بارك الله فى وقتك وجهدك جزاك الله خيرا تم تثبيت الموضوع ... لما فيه من رسالة نشر العلم والمعرفة ... ورسالة " العرفان بالجميل" تقديم بلاغ
بتاريخ: 5 يونيو 201114 سنة كاتب الموضوع comment_212867 السلام عليكم ورحمة الله الأخ / فؤاد استمر بارك الله فى وقتك وجهدك جزاك الله خيرا تم تثبيت الموضوع ... لما فيه من رسالة نشر العلم والمعرفة ... ورسالة " العرفان بالجميل" أشكرك أخ أمجد على المتابعة والحرص على منفعة إخواننا في المنتدى ومن دواعي سروري أن يتم تثبيت الموضوع , وإن شاء الله ربنا يقدرني على بذل المزيد .تقبل تحياتي ,, تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.