Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle Apex:cách tiếp cận từng bước để tạo các nút radio trong báo cáo tương tác

Bạn có thể sử dụng liên kết cột để chọn bản ghi và điều hướng đến trang khác hoặc nút radio và nút / liên kết trang để thực hiện việc đó. Tôi sẽ chứng minh cả hai bằng cách sử dụng một báo cáo đơn giản trên bảng DEPT.

Phương pháp 1:nút radio

Đối với nút radio, chúng tôi có thể thêm một cột bổ sung vào báo cáo bằng cách sử dụng apex_item.radiogroup chức năng tạo một nút radio có giá trị là DEPTNO:

Theo mặc định, HTML của nhóm radiogroup sẽ bị thoát vì lý do bảo mật, đây không phải là điều bạn muốn nhưng minh họa những gì nó đang hoạt động khá độc đáo:

Chúng tôi có thể khắc phục điều đó bằng cách thay đổi thuộc tính cột thành "Cột Báo cáo Chuẩn":

Bây giờ chúng ta thấy:

Nhấp vào nút radio trên bất kỳ hàng nào sẽ chọn nó và bỏ chọn các nút trên các hàng khác.

Để điều hướng đến một trang khác với hàng đã chọn, chúng tôi cần một nút để gửi trang với một yêu cầu đặc biệt:

Khi được nhấp vào, nút đó sẽ gửi trang có giá trị Yêu cầu là "CHỌN" (tên nút mà tôi đã chọn). Vì vậy, chúng tôi có thể viết một quy trình trang khi gửi để kích hoạt khi yêu cầu là "CHỌN", tìm ra nút radio nào đã được chọn (nếu có) và lưu DEPTNO đã chọn vào một mục ẩn có tên nói P34_DEPTNO. Chúng tôi tìm ra nút nào bằng cách nhìn vào mảng APEX apex_application.g_f01 mà chúng tôi đã chọn bằng cách chuyển 1 làm tham số đầu tiên cho apex_item.radiogroup :

if apex_application.g_f01.count > 0 then
   -- Array has been populated i.e. user chose a value
   :p34_deptno := apex_application.g_f01(1);
else 
   -- Array has not been populated i.e. user did not choose a value
   :p34_deptno := null;
end if;

Sau đó, chúng ta có thể xác định một nhánh điều hướng đến trang mới nếu (a) request ='SELECT' và (b) P34_DEPTNO không rỗng.

Và đó là nó. Khá nhiều công việc, nhưng nếu đó là yêu cầu thì bạn sẽ thực hiện được.

Phương pháp 2:liên kết cột

Cách đơn giản hơn là phân phối bằng các nút radio và chỉ cần tạo một trong các cột báo cáo thành một liên kết:

Điều này biến cột (tôi đã chọn DNAME) thành một liên kết điều hướng đến trang mới lấy giá trị DEPTNO đã chọn với nó:

Đó là nó! Không có mục ẩn, không có nút, không có quy trình trang, không có nhánh ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Tiếp tục gặp lỗi với BẬT CẬP NHẬT CASCADE

  2. Mã nào có sự tương ứng trong db

  3. Trả về kết quả của một truy vấn sql dưới dạng JSON trong oracle 12c

  4. Thủ tục lưu trữ cuộc gọi động (thực hiện ngay lập tức) Các tham số ra Sự cố

  5. Oracle:OALL8 ở trạng thái không nhất quán