بتاريخ: 5 فبراير 201214 سنة comment_220375 السلام عليكميااخواني انا اعاني جدا من مشكلة ادخال التاريخ في ارواكل .. لقد اتعبني جدا ..ومن المعروف ان الصيغة العامة للتاريخ في ادخال قواعد البيانات هي dd-mm--yy المشكلة هي :اني عملت بعض البرنامج ومنها هذا الفورم التي تحتوي على ادخال تاريخ الميلاد مثلا.. وقد استخدمت فيها المعالج الاتوميتكي اي مش اليدويالمهم الان لما اشغل الفورم واعمل لها كومبيلير كل شي تمام لكن لما اجي ادخل التاريخ بهذا الصيغية يرفض ذلك..النقاط التي اريد ان اطرها هنا :1- في حالة المعالج الاتوميتكي اي من دون كتابة كود في التريجر كيف اتعامل مع التاريخ في عملية الادخال ..واذا وجد حل عملية الادخال بشكل سليم .. هل يوجد هناك مثلا تقويم يقوم بادخال التاريخ من قبل المستخدم بالاختيار بدل من ان يكتب التاريخلان المستخدم قد لايعرف تلك الصيغة المقبولة في البرنامج للتاريخ .. اذا وجد calender يرتبط مع text item فذلك ابسط وييسر على المستخدم الاخطاء..افيدوني في تلك النقطة المهمة ..2- في حالة المعالج اليدوي اي كتابة الكود من دون استخدام المبرمجة الميسرة .. لقد قمت بكتابة الكودinsert داخل تريجر في البوتنbutton وهو: declare begin insert into students (id,name,date)values(:t1,:t2,:t3); commit; end; المشكلة اني عملت نفس البرنامج له بجملة insert وقبل في ذاك البرنامج هنا لم يقبل والمشكلة كانت التاريخملوحظة: في حالى استخدام التاريخ من دون ادخال اي غير ضروري الادخال نقووم باستخدام الدالة sysdate والتي تقرا من تاريخ النظام وتدخله في الداتابيس .. لكن لما يكون عملية الادخال من قبل المستخدم كيف يكون ذلك..رجاء اريد اجابة على تلك النقطتين بتوضيح كامل لاني بحثت على الامر كثير ودققت فيه لكن لاجدوى ربما احد منكم يعرف ذلك وهم الخبراء في ذلك المجالمنتظر ردروكم تقديم بلاغ
بتاريخ: 5 فبراير 201214 سنة comment_220379 يا اخي استعمل دوال التحويل التاريخ insrt into table_name(champ) values to_date(:t1( تقديم بلاغ
بتاريخ: 5 فبراير 201214 سنة كاتب الموضوع comment_220380 اشكرك اخووويلكن مش هالموضوع اللي نتكلم عليهاقرا الموضوع جيدا..نحن نتكلم عن عملية الادخال وليس العرض..اشكرك اخووووي تقديم بلاغ
بتاريخ: 5 فبراير 201214 سنة comment_220387 السلام عليكماخي العزيزي في حالك كنت تستخدم المعالج ( اي عدم كتابة اي كود ) او كنت تقوم بكتابة الكود يمكنك استخدام خاصية على الايتم وهي format maskوعن طريقها تستطيع اجبار المستخدم على ادخال صيغة التاريخ كما تريد ويتم عرض التاريخ بها حسب النسق المحددمثال على القمة المستخدمةdd-mm-yyyyاوdd/yyyy/mmاو اذا اردت اجبارة على ادخال الوقت مثلا تكتب لهhh24:miوهنا تجبره على التعامل مع الوقت بصيغة 24 ساعةالموضوع بسيط لكن لا تيأساخوك جاد القرعان تقديم بلاغ
بتاريخ: 5 فبراير 201214 سنة كاتب الموضوع comment_220390 السلام عليكماخي العزيزي في حالك كنت تستخدم المعالج ( اي عدم كتابة اي كود ) او كنت تقوم بكتابة الكوديمكنك استخدام خاصية على الايتم وهي format maskوعن طريقها تستطيع اجبار المستخدم على ادخال صيغة التاريخ كما تريد ويتم عرض التاريخ بها حسب النسق المحددمثال على القمة المستخدمةdd-mm-yyyyاوdd/yyyy/mmاو اذا اردت اجبارة على ادخال الوقت مثلا تكتب لهhh24:miوهنا تجبره على التعامل مع الوقت بصيغة 24 ساعةالموضوع بسيط لكن لا تيأساخوك جاد القرعان اشكرك اخي مع تجاوبك معايلكن اللي اقصده هو كيف اجعل التاريخ يختار مثلا من CALENDER ويتم اضافته مباشرة الى TEXT ITEM هل توجد هذه في اوراكلكما انها توجد في فيجول استديومنتظر ردك تقديم بلاغ
بتاريخ: 5 فبراير 201214 سنة comment_220394 السلام عليكماخي العزيزي في حالك كنت تستخدم المعالج ( اي عدم كتابة اي كود ) او كنت تقوم بكتابة الكوديمكنك استخدام خاصية على الايتم وهي format maskوعن طريقها تستطيع اجبار المستخدم على ادخال صيغة التاريخ كما تريد ويتم عرض التاريخ بها حسب النسق المحددمثال على القمة المستخدمةdd-mm-yyyyاوdd/yyyy/mmاو اذا اردت اجبارة على ادخال الوقت مثلا تكتب لهhh24:miوهنا تجبره على التعامل مع الوقت بصيغة 24 ساعةالموضوع بسيط لكن لا تيأساخوك جاد القرعان اشكرك اخي مع تجاوبك معايلكن اللي اقصده هو كيف اجعل التاريخ يختار مثلا من CALENDER ويتم اضافته مباشرة الى TEXT ITEM هل توجد هذه في اوراكلكما انها توجد في فيجول استديومنتظر ردك مع الاسف انا مفهمتش حضرتك تقصد ايه فى مشكلتكبس انا فهمت النقطه ده وانا جربتها واشتغلت معايا كويسقمت بزياره الرابط التالى وسوف تجد فيه حل المشكله ان شاء اللهhttps://sites.google.com/site/craigsoraclestuff/oracle-forms---how-to-s/forms-how-to-use-a-calendar-in-a-form تقديم بلاغ
بتاريخ: 6 فبراير 201214 سنة كاتب الموضوع comment_220442 السلام عليكماخي احمد اشكرك على ردك الجميل والرابطلكن اخوووي انا احاولت اطبق ذلك لكن لم ينجح عندي ربما اني لم اعرف تماما رغم اني قرات الموضوع جيدا وفمهته الا في بعض النقاطلكن كان المهم فيها ان النسخة حقي متوافقة مع المذكورة وقمت بتحميل الملف ووضعته في المكان المؤش اليهالذي اطلبه منك اخووي هل ممكن ترسل لي الملف او البرنامج الذي سويته وطبقته عندك من اجل اطبقه عنديواعرف وين الخطا في ذلكشاكرا لك تعاونك معاي تقديم بلاغ
بتاريخ: 7 فبراير 201214 سنة comment_220479 السلام عليكماخى العمليه سهله جدا وبسيطه وارجو من خلال الشرح ان تتوصل الى الخطوات السليمهفى البدايه انت بحاجه لعمل open لملف ال calender داخل object libraryثم بعد ذلك باستخدام drag and drop وتضعه فى object group ثم سيظهر لك نافذه اختار منها copyبعد ذلك قم بأنشاء push button فى المكان الذى تود فيه اظهار النتيجه وقم بعمل تريجر when-button-pressedوقم بكتابه الكود التالى بداخله مع العلم فى الاعتبار بتغيير الكود الى ما يناسب اسماء ال item لديك DECLARE cur_x_pos INTEGER := 0; cur_y_pos INTEGER := 0; new_x_pos INTEGER := 0; new_y_pos INTEGER := 0; item_height INTEGER := 0; my_date VARCHAR2(25); BEGIN cur_x_pos := Get_Item_Property('ROOM_DETAILS.CHECK_IN',x_pos); cur_y_pos := Get_Item_Property('ROOM_DETAILS.CHECK_IN',y_pos); item_height := Get_Item_Property('ROOM_DETAILS.CHECK_IN',height); new_x_pos := cur_x_pos; new_y_pos := cur_y_pos + item_height + 2; Date_Lov.get_Date(display_date => sysdate ,return_item => 'ROOM_DETAILS.CHECK_IN' ,v_x_pos => new_x_pos ,v_y_pos => new_y_pos ,v_title => 'FORMS DATE PICKER' ,v_ok => 'OK' ,v_cancel => 'Cancel' ,V_highlight => FALSE ,v_autoconfirm => FALSE ,v_autoskip => FALSE ); END; عند عمل كمبيل بلضغط على ctrl+shift+k سوف تظهر لك ثلاث مشاكل فى ثلاث تريجرات مختلفه على مستوى DATA_BUTTON_BLOCK التريجر الاول WHEN-NEW-ITEM-INSTANCE قم باستبدال الكود الذى بداخله بهذا الكود DECLARE v_mon VARCHAR2(10); v_year VARCHAR2(4); v_dummy VARCHAR2(61) := get_block_property('DATE_BUTTON_BLOCK',FIRST_ITEM); BEGIN -- Clear_Message; -- Message('First Item: '||v_dummy); -- Message(' '); IF ( :system.cursor_value IS NULL OR (:system.cursor_item = get_block_property('DATE_BUTTON_BLOCK',LAST_ITEM)) ) THEN IF ( date_lov.v_next = 'Y' ) THEN Go_Item('DATE_CONTROL_BLOCK.OK_BUTTON'); ELSIF ( date_lov.v_next = 'N' ) THEN Next_Item; ELSIF ( date_lov.v_prev = 'Y' OR (:system.cursor_item = get_block_property('DATE_BUTTON_BLOCK',FIRST_ITEM)) ) THEN Go_Item('DATE_CONTROL_BLOCK.YEAR_PLUS1'); ELSIF ( date_lov.v_prev = 'N' ) THEN previous_item; END IF; ELSE date_lov.v_next := 'N'; date_lov.v_prev := 'N'; IF NOT( :SYSTEM.Cursor_Item = 'BL_CALENDAR.MMONTH' OR :SYSTEM.Cursor_Item = 'BL_CALENDAR.MYEAR' ) THEN v_mon := substr(TO_CHAR(to_date(substr(:date_control_block.display_mon_year,1,Instr(:date_control_block.display_mon_year,' ')),'MM')),1,2); v_year := substr(:date_control_block.display_mon_year,Instr(:date_control_block.display_mon_year,' ')+1, Length(:date_control_block.display_mon_year)); --Message('V_mon: '||v_mon||', v_year: '||v_year); --message(' '); date_lov.d_sel_date := to_date(v_mon||'/'||:system.cursor_value||'/'||v_year, 'MM/DD/RRRR'); Clear_Message; Message('Selected Date: '||date_lov.d_sel_date); ELSE Clear_Message; Message('Cursor_Item: '||:system.cursor_item); END IF; END IF; END; ثانى تريجر KEY-PREV-ITEM IF ( :SYSTEM.Trigger_Item = :SYSTEM.Trigger_Block||'.'||Get_Block_Property(:SYSTEM.Trigger_Block,First_Item) ) THEN Go_Item('DATE_CONTROL_BLOCK.YEAR_PLUS1'); ELSE date_lov.v_prev := 'Y'; Previous_Item; END IF; الثالث KEY-NEXT-ITEM date_lov.v_next := 'Y'; next_item; ولا تنسى ان تجعل بلوكات الكليندر فى نهايه الترتيب ولا تنسانى من صالح الدعاء وحاضر ان شاء الله لو واجهت اى مشاكل . تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.