آموزش اوراکل اپکس(ORACLE APEX)ایجاد یک صفحه از ابتدا بخش دوم(قسمت ششم)(part2)

نوشته شده توسط :
آموزش اوراکل اپکس(ORACLE APEX)ایجاد یک صفحه از ابتدا بخش دوم(قسمت ششم)(part2)

 

در بخش اول از  قسمت ششم، ما به شما چگونه ایجاد یک صفحه وب را از ابتدا بدون استفاده از قالب های موجود در اوراکل APEX را آموزش دادیم در این بخش که ادامه بخش قبل است می خواهیم فیلد های جدید ایجاد کرده و ابزارهای ایجاد و ویرایش و حذف را در صفحه خود قرار دهیم .

با توجه به حجم مطالب این قسمت و برای راحتی کاربرانی که سرعت اینترنت مطلوبی ندارند ما این قسمت را به دو بخش تقسیم کرده ایم در ادامه بخش دوم  از قسمت ششم را مطالعه می کنید و دراین آدرس می توانید بخش اول از فسمت ششم را مطالعه کنید.

 

وقتی  کاربر نرم افزار شما یک رکورد از لیست موجود را انتخاب می کند (Page4) جهت ویرایش کردن ، کاربر شما هدایت می شود به صفحه دیگری (Page5) ، شما نیاز به یک فرایند دارید برای برگزاری داده ها و نمایش آن در صفحه :

 

برای ایجاد یک فرایند :


    Pre-Rendering/After Header


این فرایند صدا زده می شود  قبل از نمایش  صفحه مورد نظر

 

لطفاً وارد کنید:

        Name: Fetch/load row From DEPT  (نام مورد نظر را وارد کنید)

        Type: Automatic Row Fetch   (نوع فرایند را در این قسمت مشخص نمایید که در اینجا نوع واکشی ردیف به صورت اتوماتیک می باشد)

        Table Name: DEPT   (نام جدولی که می خواهید داده های آن نمایش داده شود)

        Primary Key Column: DEPTNO    (ستونی که کلید اصلی می باشد)

        Primary Key Item: P5_DEPTNO     (ایتمی که کلید اصلی می باشد)

 

برگردیم به صفحه 4 (Dept List(4) برای پیکربندی انتقال پارامترها از صفحه 4 به صفحه 5.

ذخیره کنید و برای تست run را کلیک کنید.

 

در ادامه  اضافه خواهیم کرد یک ایکن جدید برای ایجاد (Create) کردن و ذخیره نمودن رکورد جدید ، به تصویر زیر دقت کنید:

   در صفحه 4:

 

به صفحه 5 برویم :

شما می توانید با  کشیدن و رها کردن Drag and drop) button)  کلید های مورد نظر خود را ایجاد نمایید به تصویر زیر دقت کنید و مراحل را مانند آن ادامه دهید :

 

هنگامی که شما روی CANCEL  در صفحه 5 کلیک می کنید ، وب سایت شما را به صفحه 4  هدایت می کند.
تنظیم خصوصیات  دکمه CANCEL :

        Button Name: CANCEL  (نام )

        Label: Cancel  (برچسب)

        Action: Redirect to Page in this Applicatio   (نوع اکشن مورد نظر که در اینجا تغیی مسیر به صفحه دیگر می باشد)

 

ایتم تایید حذف DELETE_IMMEDIATELY

یک  دکمه دیگر با نام DELETE_IMMEDIATELY ایجاد می کنیم

هنگامی که دکمه حذف را کلیک کنید، بلافاصله،  رکورد حذف خواهد.

برای این دکمه صفات زیر را تنظیم خواهیم کرد:

        Button Name: DELETE_IMMEDIATELY   (نام)

        Label: Delete (Immediately)     (برچسب)

        Action: Submit Page     (نوع اکشن در اینجا ارسال می باشد)

        Database Action: SQL DELETE Action    (نوع اکشنی که در دیتابیس رخ می دهد که در اینجا حذف کردن می باشد)

 

برای اینکه دکمه وقتی نمایش داده شود که فیلد P5_DEPTNO پر باشد مقادیر زیر را اینگونه انتخاب می کنیم :

        Condition Type: Item not null     (نوع وضعیت در اینجا خالی نبودن ایتم مورد نظر در گزینه زیر است)

        Condition Item: P5_DEPTNO      (ایتمی که وضعیت بر اساس آن مشخص می شود)

 

ایتم تایید حذف DELETE_CONFIRM

وقتی روی این دکمه کلیک می کنید، این نرم افزار برای کاربران این پرسش را نشان می دهد که آیا می خواهید این رکورد را حذف کنید.
برای این دکمه صفات زیر را تنظیم خواهیم کرد:

        Button Name: DELETE_CONFIRM    (نام)

        Label: Delete (confirm)         (برچسب)

        Action: Redirect to URL         (نوع اکشن مورد نظر را انتخاب کنید در اینجا تغییر مسیر به ... )

        Target: javascript:apex.confirm('Are you sure?','DELETE_CONFIRM');

        Database Action: SQL DELETE action   (نوع اکشنی که در دیتابیس رخ می دهد که در اینجا حذف کردن می باشد)



     شرایط که در آن حالت این دکمه  در صفحه ظاهر می شود.

        Condition Type: Item is NOT NULL        (نوع شرایط ئکه در اینجا شرایطی هست که ایتم خالی نباشد.)

        Condition Item: P5_DEPTNO          (شرایط کادام ایتم مد نظر است؟)

 

 

توجه داشته باشید:

(apex.confirm (text, BUTTON_NAME  یک تابع جاوا اسکریپت موجود در APEX است، که نمایش داده خواهد شد در یک صفحه دیالوگ باز شده در صفحه اصلی و تایید عمل مورد نظر توسط کاربران قبل از اجرای عمل تعریف در دکمه BUTTON_NAME. است.

     این دکمه بر روی صفحه وب ظاهر خواهد شد ، البته اگر P5_DEPTNO تهی نباشد.

     همچنین شما می توانید یک متغیر javacript تعریف کنید و از آن استفاده کنید در صفحات وب .

 

در زیر نحوه تعریف یک متغیر به نام htmldb_delete_message را می بینید

var htmldb_delete_message='Would you like to perform this delete action?';

 

همچنین متغییر "DELETE_CONFIRM_MSG" نیز یک constant در apex می باشد.که می توانید از آن برای موارد بالا استفاده نمایید.

var htmldb_delete_message='"DELETE_CONFIRM_MSG"';

 

بعد از تعریف می توانید این متغییر رادر تمام صفحات استفاه نمایید.

 apex.confirm(htmldb_delete_message,'DELETE_CONFIRM')

 

 

ایتم ویرایش برای ذخیره کردن یا SAVE_EDIT 

این دکمه به کاربر برای تغییر دادن رکورد موجود در DB نشان داده شده است ( در حقیقت روز رسانی رکورد را در DB را انجام می دهد ).

        Button Name: SAVE_EDIT      (نام دکمه)

        Label: Save (edit)     ( برچسب مورد نظر)

        Action: Submit Page       (نوع اکشن مورد نظر را انتخاب کنید در اینجا ارسال صفحه می باشد)

        Database Action: SQL UPDATE action    (نوع اکشنی که در دیتابیس رخ می دهد که در اینجا  بروزرسانی می باشد)

     شرایط که در آن حالت این دکمه  در صفحه ظاهر می شود.

        Condition Type: Item is NOT NULL        (نوع شرایط ئکه در اینجا شرایطی هست که ایتم خالی نباشد.)

        Condition Item: P5_DEPTNO          (شرایط کادام ایتم مد نظر است؟)

 

     

ایتم ذخیره کردن یا SAVE_CREATE

        Button Name: SAVE_CREATE          (نام دکمه)

        Label: Save (create)    ( برچسب مورد نظر)

        Action: Submit Page      (نوع اکشن مورد نظر را انتخاب کنید در اینجا ارسال صفحه می باشد)

        Database Action: SQL INSERT action    (نوع اکشنی که در دیتابیس رخ می دهد که در اینجا  درج کردن می باشد)

 

شرایط که در آن حالت این دکمه  در صفحه ظاهر می شود.

        Condition Type: Item is NULL        (نوع شرایط ئکه در اینجا شرایطی هست که ایتم خالی باشد.)

        Condition Item: P5_DEPTNO          (شرایط کادام ایتم مد نظر است؟)

 

 

فرایند Process

     در ادامه ،3 فرآیند اضافه خواهیم کرد:

Get PK :  بررسی ارزش فیلد  P5_DEPTNOکه آیا مقداری به آن اختصاص داده است یا نه، اگر نه، ما مقداری را برای  DEPT_SEQ اختصاص میدهیم .

Process Row of Dept : برای اجرای اکشنهای (Insert, Update, or Delete)

Reset Page  : برای حذف وضعیت های مورد نظر

 

در ادامه ما قست داریم ایجاد کنیم یک فرایند جدید به نام " Get PK"و  وارد کنید  مقادیر attribute ها :

        Name: Get PK

        Type: PL/SQL Code

        PL/SQL Code: 

 

begin

    if :P5_DEPTNO is null then

        select DEPT_SEQ.nextval

          into :P5_DEPTNO

          from dual;

    end if;

end;

 

بعد، ما یک Processer  " Process Row of DEPT "  که در بالا به آن اشاره کردیم با ویژگی های attributes زیر ایجاد می کنیم :

   

        Name: Process Row of DEPT

        Type: Automatic Row Processing (DML)    (نوع را پردازش ردیفها به صورت خودکار انتخاب می کنیم)

        Table Name: DEPT      (جدول مورد نظر)

        Primary Key Column: DEPTNO

        Primary Key Item: P5_DEPTNO

        Support Operations:      ( در این قسمت عملیاتهایی که قابل پشتیبانی هستند را انتخاب می کنیم)

            Insert

            Update

            Delete

 

پس از تکمیل process (درج، بروز رسانی، حذف) در صفحه 5،  نوبه به صفحه 4 می رسد که ، شما نیاز به یک process  دارید برای  "پس از پردازش" یا (After Processing)

شما می توانید قسمت های مختلف را طراحی کنید

این قسمت نیز به پایان رسید منتظر ادامه آموزش ها باشید.