Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Sử dụng gói Oracle Forms APP_MULTI

Gói Oracle® APP_MULTI cho phép bạn thêm chức năng đa lựa chọn vào một biểu mẫu. Tùy chọn này có sẵn trong Thư viện APPCORE.

Bằng cách sử dụng gói APP_MULTI, bạn có thể chọn một hoặc nhiều bản ghi và xử lý chúng nếu cần. Hình ảnh sau minh họa lựa chọn bản ghi ngẫu nhiên:

Sử dụng gói Oracle Forms APP_MULTI

Nguồn hình ảnh :https://i36.me/images/oracle/ebs/ebs_frm_lnchse_with_app_multi_01.jpg

Chức năng

Gói APP_MULTI cho phép bạn thực hiện các hành động sau:

  • Nhấp vào một bản ghi để chọn nó.

  • Nhấn và giữ phím Ctrl và nhấp vào nhiều bản ghi để chọn nhiều bản ghi cùng một lúc.

  • Chọn Chọn tất cả từ menu ứng dụng để chọn tất cả các bản ghi.

  • Chọn Bỏ chọn tất cả từ menu ứng dụng để bỏ chọn tất cả các từ đã chọn.

  • Nhấp vào bản ghi đầu tiên và giữ phím shift trong khi bạn nhấp vào bản ghi cuối cùng theo một trình tự để chọn một số bản ghi liền kề.

Sự kiện gói APP_MULTI

Gói APP_MULTI phản hồi các sự kiện sau trên một biểu mẫu:

  • KEY-CLRFRM :(mức biểu mẫu) Xác thực bản ghi trước khi nó xóa biểu mẫu. Sử dụng ví dụ:APP_MULTI.EVENT('KEY-CLRFRM');

  • KEY-CLRREC :(cấp khối) Kích hoạt khi bạn xóa bản ghi hiện tại. Nó tương đương với clear_record lệnh.

  • KEY-CREREC :(cấp khối) Kích hoạt khi bạn tạo một bản ghi mới. Nó tương đương với create_record lệnh.

  • KEY-DELREC :(cấp khối) Kích hoạt khi bạn xóa bản ghi hiện có. Nó tương đương với delete_record lệnh.

  • KHỐI TRƯỚC :(cấp khối) Kích hoạt khi bạn nhập một khối.

  • POST-BLOCK :(cấp khối) Kích hoạt khi bạn thoát khỏi một khối.

  • SELECT_ALL :(cấp khối) Kích hoạt khi bạn chọn tất cả các bản ghi.

  • DESELECT_ALL :(cấp khối) Kích hoạt khi bạn bỏ chọn tất cả các bản ghi.

  • KHI-XÓA-KHỐI :(cấp khối) Kích hoạt khi bạn xóa khối.

  • KHI-NHẤP CHUỘT :(cấp khối) Kích hoạt khi bạn nhấp chuột.

  • KHI-MỚI-GHI-BẢO HIỂM :(cấp khối) Kích hoạt khi bạn tạo hoặc truy vấn bản ghi trên khối.

Tạo trình kích hoạt theo cách thủ công

Bạn cần tạo các trình kích hoạt cần thiết và gọi APP_MULTI.EVENT thủ tục bằng cách chuyển tên của sự kiện đang được xử lý, như được hiển thị trong ví dụ sau:

PROCEDURE event(p_event_name VARCHAR2,p_blockname
VARCHAR2 DEFAULT NULL);

Ví dụ:KEY-CLRREC trình kích hoạt có thể đơn giản như lệnh sau:

APP_MULTI.EVENT('KEY-CLRREC');

Lưu ý: Thủ tục chấp nhận một đối số tùy chọn p_blockname . Nếu bạn không vượt qua p_blockname , quy trình sử dụng giá trị của SYSTEM.TRIGGER_BLOCK .

Sự kiện lựa chọn và bỏ chọn

Khi bạn triển khai MULTI_RETURN_ACTION tùy chỉnh kích hoạt (trong một khối dữ liệu hoặc ở cấp cao nhất của một biểu mẫu), hệ thống sẽ thông báo cho bạn về việc chọn và bỏ chọn bản ghi. Trình kích hoạt sẽ kích hoạt sau mỗi lần lựa chọn hoặc bỏ chọn từng bản ghi hoặc hàng loạt.

Biến trình kích hoạt

Bạn có thể sử dụng các biến sau trong trình kích hoạt:

  • GLOBAL.APPCORE_MULTI_BLOCK global:có tên của khối dữ liệu bị ảnh hưởng bởi việc chọn hoặc bỏ chọn bản ghi.

  • GLOBAL.APPCORE_MULTI_ACTION toàn cầu:có bất kỳ giá trị nào sau đây:

    - **'RECORD\_SELECTED'**: When a record is selected
    
    - **'RECORD\_DESELECTED'**: When a record is deselected
    
    - **'LABEL\_CHANGE'**: When the **Select All** or **Deselect All** menu
      items are enabled or disabled
    
  • APP_MULTI.LOOPING biến gói:có giá trị TRUE hoặc FALSE, tùy thuộc vào việc bạn đã gọi MULTI_RECORD_ACTION trong một vòng lặp.

Truy xuất dữ liệu đã chọn trên một biểu mẫu

Đối với mỗi khối dữ liệu, gói APP_MULTI có một nhóm bản ghi với số thứ tự của các bản ghi hiện được chọn.

Bạn có thể thực hiện các tác vụ sau bằng cách cung cấp tên của khối dữ liệu:

  • Sử dụng hàm ** APP_MULTI.GET_GROUP_COL để truy cập Chỉ của một nhóm bản ghi cho một khối dữ liệu cụ thể.

  • Sử dụng APP_MULTI.GET_GROUP_COUNT để lấy số lượng bản ghi đã chọn.

Ví dụ:đưa ra một biểu mẫu công việc rời rạc, hãy chặn W_JOBS và một trường, WIP_ENTITY_ID , bạn có thể in ID của các công việc đã chọn bằng cách sử dụng mã PL / SQL sau:

DECLARE
 record_number_column    groupcolumn;
 selected_record_count   NUMBER;
 BEGIN
   record_number_column := app_multi.get_group_col ('W_JOBS');
   selected_record_count :=app_multi.get_group_count ('W_JOBS');

 FOR i IN 1 .. selected_record_count
  LOOP
   DECLARE
    record_number     NUMBER;

  v_wip_entity_id   NUMBER;
  BEGIN

   record_number := GET_GROUP_NUMBER_CELL (record_number_column, i);

   GO_RECORD (record_number);

   v_wip_entity_id := NAME_IN ('W_JOBS.WIP_ENTITY_ID');

   fnd_message.debug ( 'v_wip_entity_id' || v_wip_entity_id);

   EXCEPTION
    WHEN OTHERS  THEN
      Null;
  END;
 END LOOP;
END;

Kết luận

Với gói APP_MULTI, bạn có thể xử lý dữ liệu hàng loạt trong các biểu mẫu Oracle tùy chỉnh. Gói này cho phép bạn lấy thông tin chi tiết về dữ liệu hàng loạt mà người dùng chọn trên các biểu mẫu tiêu chuẩn. Bạn có thể sử dụng nó trong cá nhân hóa biểu mẫu hoặc custom.pll mã cóc chức năng tùy chỉnh trong một biểu mẫu Oracle tiêu chuẩn.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể trò chuyện ngay bây giờ để bắt đầu cuộc trò chuyện.

Tìm hiểu thêm về Cơ sở dữ liệu.