Hướng dẫn tạo biểu mẫu dạng bảng APEX của Oracle

Tác giả CCNACCNP, T.Tư 19, 2019, 03:48:31 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Hướng dẫn tạo biểu mẫu dạng bảng APEX của Oracle



1. Giới thiệu

Bạn đang xem hướng dẫn lập trình Oracle APEX 5.0. Đây là tài liệu thứ 2 tiếp theo:

Hướng dẫn Oracle APEX cho người mới bắt đầu (APEX 5.0)

Bao gồm trong tài liệu này, tôi sẽ tiếp tục hướng dẫn bạn về Ứng dụng máy tính để bàn cơ sở dữ liệu Oracle APEX, sử dụng Dạng bảng.

2. Tạo biểu mẫu dạng bảng bằng Wizard

Đăng nhập vào Oracle APEX bằng tài khoản của lập trình viên.

https://localhost:8080/apex (https://localhost:8080/apex)


Chuyển đến "Ứng dụng cơ sở dữ liệu".


Tiếp theo, đi tới "Xin chào ứng dụng cơ sở dữ liệu trên máy tính" mà bạn đã tạo trong hướng dẫn trước


Trong ứng dụng này, có một vài trang được tạo trong hướng dẫn trước. Nhấp vào "Tạo trang" để tạo một trang khác.




Tạo một dạng bảng:










Nhập vào:

  • Trang: 7
  • Tên trang: Biểu mẫu bảng Emp (7)








Trang web của bạn đã được tạo, nhấp vào CHẠY để kiểm tra trang vừa tạo.




Trang 7 đang chạy:


Ở đây, câu hỏi đặt ra là làm thế nào để thay đổi một số trường đầu vào thành LIST CHỌN hoặc POPUP LOV (Danh sách các giá trị). Ví dụ: bạn muốn chọn Người quản lý (MGR) thông qua POPUP LOV và chọn Công việc thông qua DANH SÁCH CHỌN.


Quay trở lại màn hình thiết kế của trang 7. Đặt thuộc tính cho cột JOB để nó hiển thị dưới dạng DANH SÁCH CHỌN.

  • Nhận biết:
  • Loại: Chọn Danh sách
  • Danh sách các giá trị
  • Loại: Giá trị tĩnh
  • Giá trị tĩnh:

Mã nguồn [Chọn]
STATIC:
CLERK;CLERK,
SALESMAN;SALESMAN,
PRESIDENT;PRESIDENT,
MANAGER;MANAGER,
ANALYST;ANALYST

STATIC:Display1;Return1,Display2;Return2


Tiếp theo, bạn cần đặt các thuộc tính cho MGR để nó hiển thị dưới dạng POPUP LOV (danh sách các giá trị)

  • Nhận biết:
  • Loại: Popup LOV (hiển thị giá trị hiển thị)
  • Danh sách các giá trị:
  • Loại: Truy vấn SQL
  • Truy vấn SQL: Chọn emp.ename, emp.empno từ Emp


Tương tự đặt các thuộc tính cho DEPTNO, để nó hiển thị dưới dạng POPUP LOV.

  • Nhận biết:
  • Loại: Popup LOV (hiển thị giá trị hiển thị)
  • Danh sách các giá trị
  • Loại: Truy vấn SQL
  • Truy vấn SQL: Chọn d.dname, d.deptno từ Dept d


Lưu và chạy Trang 7:




3. Tạo biểu mẫu dạng thủ công

Ở trên, tôi đã chỉ cho bạn cách tạo Biểu mẫu dạng bảng bằng cách sử dụng trình hướng dẫn của Oracle Apex. Tiếp theo, chúng tôi sẽ tạo hoàn toàn từ đầu Biểu mẫu dạng bảng, không sử dụng trình hướng dẫn, điều này sẽ giúp bạn hiểu thêm về Biểu mẫu dạng bảng & Oracle APEX.


Nhập vào:

  • Số trang: 8
  • Tên: Biểu mẫu bảng Emp (8)




Một trang trống đã được tạo.


Tạo biểu mẫu dạng bảng trong khu vực "Nội dung Body":


  • Tiêu đề: Biểu mẫu bảng Emp (8)
  • Loại: Dạng bảng
  • Truy vấn SQL:

Mã nguồn [Chọn]
           select EMPNO,
           EMPNO EMPNO_DISPLAY,
           ENAME,
           JOB,
           MGR,
           HIREDATE,
           SAL,
           COMM,
           DEPTNO
      from EMP



Bạn có thể kiểm tra trang 8, kết quả như sau:


Thêm một cột chứa Hộp kiểm, được sử dụng để chọn hàng.




Đặt thuộc tính cho EMPNO, ẩn cột này và đặt thuộc tính khóa chính cho nó.

  • Nhận biết
  • Tên cột: EMPNO
  • Loại: Cột ẩn (lưu trạng thái)
  • Nguồn khóa chính
  • Loại: Trình tự hiện có
  • Tên: EMP_SEQ


Cột ENAME:

  • Nhận biết
  • Tên cột: ENAME
  • Loại: Trường văn bản


Cột CÔNG VIỆC:

  • Nhận biết
  • Tên cột: CÔNG VIỆC
  • Loại: Chọn Danh sách
  • Danh sách các giá trị
  • Loại: Giá trị tĩnh
  • Giá trị tĩnh:

Mã nguồn [Chọn]
STATIC:
CLERK;CLERK,
SALESMAN;SALESMAN,
PRESIDENT;PRESIDENT,
MANAGER;MANAGER,
ANALYST;ANALYST


Cột MGR:

  • Nhận biết
  • Tên cột: MGR
  • Loại: Popup LOV (hiển thị giá trị hiển thị)
  • Danh sách các giá trị
  • Loại: Truy vấn SQL
  • Giá trị tĩnh: Chọn emp.ename, emp.empno từ Emp


Cột HIREDATE:

  • Nhận biết
  • Tên cột: HIDEDATE
  • Loại: Bộ chọn ngày
  • Xuất hiện
  • Mặt nạ định dạng: YYYY-MM-DD
  • Mặc định
  • Loại: Biểu thức PL / SQL
  • Biểu thức PL / SQL: sysdate


  • Cột SAL: Nhận biết
  • Tên cột: SAL
  • Loại: Trường văn bản


Cột SAL (Mức lương) là một loại số, vì vậy bạn cần thêm xác thực:


  • Nhận biết
  • Tên: SAL phải là số

Xác nhận:

  • Loại: Cột là số
  • Cột: SAL

Lỗi:

  • Thông báo lỗi: # COLUMN_HEADER # phải có giá trị.
  • Vị trí hiển thị: Nội tuyến với Trường và trong Thông báo

Chú thích: # COLUMN_HEADER # là một hoạt động như một Người giữ chỗ, nó sẽ được thay thế bằng tiêu đề của cột tương ứng khi chạy.


Cột Comm:

  • Nhận biết
  • Tên cột: Comm
  • Loại: Trường văn bản


Tạo Xác thực cho Comm, Comm phải là số.

  • Nhận biết
  • Tên: Comm phải là số

Xác nhận:

  • Loại: Cột là số
  • Cột: Comm

Lỗi:

  • Thông báo lỗi: # COLUMN_HEADER # phải có giá trị.
  • Vị trí hiển thị: Nội tuyến với Trường và trong Thông báo


Cột DEPTNO:

  • Nhận biết:
  • Loại: Popup LOV (hiển thị giá trị hiển thị)

Danh sách các giá trị:

  • Loại: Truy vấn SQL
  • Truy vấn SQL: Chọn d.dname, d.deptno từ Dept d


4. Xử lý Tabular form

Tiếp theo chúng ta cần thêm xử lý bao gồm tạo hàng, chỉnh sửa hàng, xóa hàng




Thay đổi tên của các nút, như hiển thị bên dưới:


Đối với nút Hủy:

  • Khi người dùng nhấp vào nút Hủy, trang web sẽ làm mới trang hiện tại (Đây là trang 8).






4.1. Thêm hàng

Khi người dùng nhấp vào nút THÊM, bảng trên trang sẽ tự động thêm một hàng mới, cho phép người dùng nhập dữ liệu. Bạn cần gọi hàm javascript để thực hiện điều này.

Xác minh:

  • Tên nút: THÊM
  • Nhãn: Thêm

Hành vi:

  • Hành động: Chuyển hướng đến URL
  • Mục tiêu: javascript: apex.widget.tabular.addRow ();


4.2- Cập nhật nhiều hàng

Xác minh:

  • Tên nút: TIẾT KIỆM
  • Nhãn: Lưu

Hành vi:

  • Hành động: Gửi trang


Nút SAVE cần lưu thông tin của một số bản ghi cùng một lúc, bao gồm các bản ghi mới, bản ghi đã sửa đổi. Bạn cần khai báo một quy trình để xử lý việc này. Quá trình này sẽ được chạy một lần ngay sau khi trang được gọi, nó sẽ cập nhật các bản ghi có thay đổi và chèn bản ghi mới.


Tạo ra tiến trình:


Idetification:

  • Name: ApplyMRU
  • Type: Tabular Form - Multi Row Update

Settings:

  • Table Name: EMP
  • Primary Key Column: EMPNO

Execution Options:

  • Tabular Form: Emp Tabular Form (8)
  • Run Process: Once Per Page Visit (default)

Success Messages:

  • Success Message: #MRU_COUNT# row(s) updated, #MRI_COUNT# row(s) inserted.

Condition:

  • When Button Pressed: SAVE (Name of button)
  • Execution Scope: For Created and Modified Rows




4.3. Xóa nhiều hàng ngay lập tức

Nút xử lý để xóa ngay các bản ghi đã chọn, không cần xác nhận.


Để xóa nhiều hàng, bạn cần tạo một Process để xử lý việc này. Quá trình này sẽ được thực hiện một lần ngay khi trang được gọi.


Tạo ra tiến trình:


Xác minh:

  • Tên: ApplyMRD_IMMEDIATELY
  • Loại: Dạng bảng - Xóa nhiều hàng

Cài đặt:

  • Tên bảng: EMP
  • Cột khóa chính: EMPNO

Tùy chọn thực thi:

  • Biểu mẫu dạng bảng: Biểu mẫu bảng Emp (8)
  • Chạy tiến trình: Một lần mỗi lần truy cập trang (mặc định)

Thông điệp thành công:

  • Thông báo thành công: # MRD_COUNT # hàng đã bị xóa.

Điều kiện:

  • Khi nhấn nút: IMMEDIATELY_MULTY_law_DELETE (Tên nút)
  • Phạm vi thực hiện: Đối với các hàng được tạo và sửa đổi




4.4. Xóa nhiều hàng - Nhắc trước khi xóa

Trước khi xóa hồ sơ, chương trình hỏi người dùng có đồng ý xóa hay không?

Xác minh:

  • Tên nút: MULTI_law_DELETE
  • Nhãn: Xóa nhiều hàng

Hành vi:

  • Hành động: Chuyển hướng URL
  • Mục tiêu: javascript: apex.conf Confirm ('Bạn có chắc chắn sẽ xóa không?', 'MULTI_law_DELETE');


apex.conf Confirm (...) là một hàm JavaScript được sử dụng để hỏi người dùng trước khi thực hiện lệnh của nút xác nhận.

Mã nguồn [Chọn]
// The function includes 2 parameters, message and Button Name.
 
apex.confirm('Message ...', 'Button Name');
 
// Example:
 
apex.confirm('Are you sure to delete?','MULTI_ROW_DELETE');
 
// Using variable.
// htmldb_delete_message is a javascript variable
// with value: 'Would you like to perform this delete action?'
// (You need to declare this variable).
apex.confirm(htmldb_delete_message,'MULTI_ROW_DELETE');


Mã nguồn [Chọn]
// Declare a variable named htmldb_delete_message
var htmldb_delete_message='Would you like to perform this delete action?';
 
// Or:
// "DELETE_CONFIRM_MSG" is a constant available in APEX.
// It has value: Would you like to delete this thực action?
 
 
var htmldb_delete_message='"DELETE_CONFIRM_MSG"';
 
 
// Then can use this variable in the whole page.
 
apex.confirm(htmldb_delete_message,'MULTI_ROW_DELETE');

Để xóa nhiều hàng, bạn cần tạo một Process để xử lý việc này. Quá trình này sẽ được thực hiện một lần ngay khi trang được gọi.

Xác minh:

  • Tên: ApplyMRD
  • Loại: Dạng bảng - Xóa nhiều hàng

Cài đặt:

  • Tên bảng: EMP
  • Cột khóa chính: EMPNO

Tùy chọn thực thi:

  • Biểu mẫu dạng bảng: Biểu mẫu bảng Emp (8)
  • Chạy tiến trình: Một lần mỗi lần truy cập trang (mặc định)

Thông điệp thành công:

  • Thông báo thành công: # MRD_COUNT # hàng đã bị xóa.

Điều kiện:

  • Phạm vi thực hiện: Đối với các hàng được tạo và sửa đổi
  • Loại: Yêu cầu = Giá trị
  • Giá trị: MULTI_law_DELETE
  • Điều kiện thực hiện: Một lần




5. Chi tiết tổng thể

Xem thêm: Hướng dẫn chi tiết tổng thể về Oracle APEX

6. Có thể bạn quan tâm

Xem phần sau:

  • Xác thực tùy chỉnh trong Oracle APEX
  • Hướng dẫn hành động động của Oracle APEX