Tài liệu

Hướng dẫn toàn diện và tài liệu cho SQLVantage

Lời mở đầu

Hướng dẫn sử dụng SQLVantage (Tiếng Việt)

Tài liệu hướng dẫn sử dụng đầy đủ hệ thống báo cáo SQLVantage.

Mục lục

  1. Tổng quan hệ thống
  2. Cài đặt và Triển khai (Windows / Linux)
  3. Hướng dẫn cấu hình
  4. Hướng dẫn cho Quản trị viên
  5. Hướng dẫn thiết kế báo cáo (SQL/FORM/HTML)
  6. Hướng dẫn cho người dùng thông thường
  7. Thực thi yêu cầu và Kết quả đầu ra
  8. Câu hỏi thường gặp (FAQ)
  9. Phụ lục: Lưu trữ dữ liệu, sao lưu và di chuyển

1. Tổng quan hệ thống

SQLVantage là hệ thống báo cáo dựa trên web. "Quản trị viên" duy trì định nghĩa báo cáo, trong khi "người dùng thông thường" qua trang web chọn báo cáo, điền điều kiện truy vấn, thu nhận kết quả bất đồng bộ và xuất Excel / HTML / JSON / TEXT.

1.1 SQLVantage là gì?

SQLVantage là một hệ thống báo cáo web. Quản trị viên duy trì các định nghĩa báo cáo, trong khi người dùng cuối cùng có thể chọn báo cáo trên trang web, điền các điều kiện truy vấn, thu nhận kết quả bất đồng bộ và xuất chúng thành Excel / HTML / JSON / TEXT.

1.2 Tháp công nghệ

Hệ thống này sử dụng kiến trúc web thuần túy: Không cần cài đặt bất kỳ client hay plug-in nào trong trình duyệt – mọi trình duyệt hiện đại có thể truy cập. Trên phía máy chủ chỉ cần chương trình thực thi và các thư mục cấu hình đi kèm theo即可 chạy, việc triển khai đơn giản.

1.3 Khái niệm cốt lõi

Khái niệm Mô tả
Báo cáo (Report) Một báo cáo = 3 phần mã (SQL + FORM + HTML) + 3 tệp định dạng JSON (SqlFormat / FormFormat / HtmlFormat), thuộc về một "Vai trò"
Vai trò (Responsibility) Thể loại (thư mục) các báo cáo thuộc về, tương tự Responsibility trong Oracle EBS, dùng để theo dõi báo cáo theo mô듣l cho người dùng
Tham số (Parameter) Các điều kiện truy vấn được định nghĩa trong FORM (như ngày, khách hàng, tổ chức v.v.), sau khi gửi đi sẽ được khóa tên và liên kết với SQL
Yêu cầu (Request) Một tác vụ thực thi báo cáo cụ thể do người dùng cuối gửi, hệ thống nền chạy bất đồng bộ và sinh ra tệp kết quả
Phân quyền (License) Tệp phân quyền conf/license.dat kiểm soát số lượng báo cáo và kỳ hạn sử dụng

1.4 Vai trò người dùng

Vai trò Điểm vào Quyền hạn
Quản trị viên (admin) /admin/login Quản lý người dùng, quản lý vai trò, quản lý báo cáo, nhập khẩu phân quyền, cài đặt hệ thống, giám sát tất cả các yêu cầu
Người dùng thông thường (normal) /login Chọn báo cáo, điền tham số, gửi yêu cầu, xem các yêu cầu của riêng mình, tải xuống kết quả, đổi mật khẩu

1.5 Cấu trúc thư mục

Sau khi giải nén gói phân phối, các file chính:

SQLVantage/
├── SQLVantage.exe / sqlvantage   # Chương trình chạy (Windows / Linux)
├── conf/
│   ├── app.conf        # File cấu hình hệ thống (cổng/thư ngôn/Oracle v.v.)
│   ├── data.dat        # Dữ liệu nghiệp vụ (người dùng/vai trò/báo_cấp/yêu_cầu)
│   ├── license.dat     # File phân quyền
│   └── locale/         # Gói ngôn ngữ
├── data/               # Tạo ra thời điểm chạy: <ID_Yêu_cầu>.xlsx / <ID_Yêu_cầu>.json
├── docs/               # Tài liệu sử dụng (đa ngôn ngữ, chứa images/)
└── tmp/                # Tệp tạm thời (phiên làm việc, tác vụ)

2. Cài đặt và Triển khai (Windows / Linux)

2.1 Yêu cầu về môi trường

  • Hệ điều hành: Windows 7+ / Linux 64-bit (x86_64)
  • Cách chạy (Khuyên dùng): Dùng trực tiếp phần thực thi đã phát hành (SQLVantage.exe hoặc file nhị phân Linux); không cần cài đặt môi trường chạy nào thêm
  • Cơ sở dữ liệu Oracle: Thực hiện báo cáo cần khả năng kết nối Oracle (hệ thống mặc định kết nối Oracle EBS); vui lòng kiểm tra kết nối và tài khoản trước
  • Quyền ổ/catalog: Thư mục làm việc của chương trình cần có quyền ghi (writable), vì thời gian chạy sẽ tạo ra thư mục data//tmp/ và đọc/ghi file dưới conf/

2.2 Cài đặt trên Windows

  1. Giải nén: Giải nén gói phân phối (zip) vào bất kỳ thư mục nào, ví dụ D:\\SQLVantage\\. Sau khi giải nén, hãy xác nhận các file quan trọng sau tồn tại:
D:\\SQLVantage\
├── SQLVantage.exe      # Chương trình chính
├── conf\\app.conf      # File cấu hình
├── conf\\data.dat      # Dữ liệu (cơ sở dữ liệu rỗng đi kèm gói)
└── conf\\locale\\      # Gói ngôn ngữ
  1. (Tùy chọn) Cấu hình: Mở conf\\app.conf bằng Notepad và sửa địa chỉ lắng nghe, cổng, kết nối Oracle v.v. theo Chương 3.

  2. Khởi động chương trình: đôi vào SQLVantage.exe, hoặc chạy tại cửa s lệnh:

cd D:\\SQLVantage
SQLVantage.exe

Sau khi khởi động thành công, cửa s lệnh sẽ in ra thông tin phiên bản, trạng thái phân quyền và进入状态 lắng nghe.

  1. Truy cập hệ thống: Mở http://127.0.0.1:8080 trong trình duyệt (địa chỉ mặc định; có thể sửa trong app.conf).

  2. Cài đặt tường lửa: Nếu cần truy cập LAN/remote, hãy mở cổng tương ứng (ví dụ như 8080) trong firewall Windows:

netsh advfirewall firewall add rule name="SQLVantage" dir=in action=allow protocol=TCP localport=8080

2.3 Cài đặt trên Linux

  1. Giải nén: Giải nén gói phân phối (tar.gz hoặc zip) vào thư mục mục tiêu, ví dụ /opt/sqlvantage:
mkdir -p /opt/sqlvantage
tar -xzf sqlvantage-linux-amd64.tar.gz -C /opt/sqlvantage
cd /opt/sqlvantage
  1. Cấp quyền thực thi:
chmod +x sqlvantage
  1. (Tùy chọn) Cấu hình: sửa conf/app.conf (giống như trên Windows).

  2. Test khởi động phía trước:

./sqlvantage

Khi thấy thông tin phiên bản và nhật ký lắng nghe, khởi động thành công; nhấn Ctrl+C để dừng.

  1. Chạy phía sau (khuyến nghị dùng systemd hoặc nohup):

    Phương pháp A: nohup

cd /opt/sqlvantage
nohup ./sqlvantage > sqlvantage.log 2>&1 &

Phương pháp B: systemd (tạo /etc/systemd/system/sqlvantage.service):

[Unit]
Description=SQLVantage Report System
After=network.target

[Service]
WorkingDirectory=/opt/sqlvantage
ExecStart=/opt/sqlvantage/sqlvantage
Restart=always
RestartSec=5
User=sqlvantage

[Install]
WantedBy=multi-user.target

Sau đó thực hiện:

systemctl daemon-reload
systemctl enable sqlvantage
systemctl start sqlvantage
systemctl status sqlvantage
  1. Firewall / Security Group: mở cổng (ví dụ 8080):
firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload

2.4 Từ mã nguồn xây dựng (Không bắt buộc)

Chỉ dành cho người dùng đã có mã nguồn: chạy lệnh build trong thư mục nguồn để 산산Produced thực thi file cho nền tảng hiện tại. Cho môi trường triển khai chính thức, khuyến nghị dùng trực tiếp file thực thi đã phát hành.

2.5 Chạy lần đầu

Trong lần chạy đầu tiên, hệ thống sẽ tự động hoàn tất các khởi tạo sau:

  1. Kiểm tra file dữ liệu: đọc conf/data.dat (đi kèm gói; nếu thiếu, chương trình sẽ nhắc "conf/data.dat is not found" và thoát -- vui lòng không xóa file này).
  2. Tự động tạo bảng: 4 bảng user, responsibility, report, request tự động tạo.
  3. Tự động tạo tài khoản quản trị viên: trên truy cập đầu tiên /admin/login, nếu không tồn tại người dùng root, hệ thống sẽ tự động tạo:
    • Tên người dùng: root
    • Mật khẩu ban đầu: SQLVantage
    • Vai trò: admin (quản trị viên)
    • Lưu ý bảo mật: Vui lòng thay đổi mật khẩu này ngay sau lần đăng nhập đầu tiên (quản trị viên có thể tại "Quản lý người dùng" sửa đổi).
  4. Kiểm tra file phân quyền: nếu conf/license.dat bị thiếu hoặc không hợp lệ, console in ra cảnh báo; hệ thống vẫn có thể chạy, nhưng chịu sự hạn chế của quy định trong Phần 4.7.

3. Hướng dẫn cấu hình

3.1 Vị trí file cấu hình

File cấu hình là conf/app.conf (dạng INI). Có 2 cách sửa:

  • Phương án 1 (Khuyên dùng, qua giao diện UI): sau khi đăng nhập làm quản trị viên, truy cập "Cài đặt hệ thống" (/admin/setting), điền các giá trị và lưu; hệ thống sẽ tự động ghi lại vào app.conf.
  • Phương án 2 (Sửa file trực tiếp): dùng text editor sửa đổi conf/app.conf sau đó khởi động lại chương trình.

3.2 Bảng tham chiếu tham số

Tham số Giá trị mặc định Mô tả
appname SQLVantage Tên ứng dụng
httpaddr 127.0.0.1 Địa chỉ lắng nghe IP; 0.0.0.0 đồng nghĩa với việc lắng nghe trên tất cả các card mạng (có thể truy cập từ LAN)
httpport 8080 Cổng lắng nghe; khuyến nghị 8080~8099
runmode dev Chế độ chạy: dev (phát triển, hiển thị lỗi chi tiết) / prod (sản xuất, giấu các chi tiết lỗi)
language en-US Ngữ mặc định của giao diện UI (ưu tiên thấp hơn tham số URL / Cookie / ngôn ngữ trình duyệt)
sessiongcmaxlifetime 3600 Thời gian hết hạn Session (giây), mặc định 1 giờ
max_execution_time 30 Thời gian thực thi tối đa cho một tác vụ báo cáo (phút); các tác vụ vượt quá thời gian sẽ tự động đánh dấu là Terminated

| oracle_server | Ví dụ: 192.168.10.13 | IP/Hostname của máy chủ dữ liệu Oracle | | oracle_port | 1521 | Cổng lắng nghe của Oracle | | oracle_database | test | Tên dịch vụ của Oracle (SERVICE_NAME) | | oracle_username | apps | Tên người dùng kết nối Oracle | | oracle_password | none | Mật khẩu kết nối Oracle (vui lòng điền mật khẩu thực tế) |

3.3 Sản hiệu của những gì sửa đổi

  • sessiongcmaxlifetime: có hiệu lực ngay lập tức sau khi lưu.
  • Các tham số khác (cổng, Oracle v.v.): cần khởi động lại chương trình antes các thay đổi có hiệu lực.

3.4 Chuyển đổi ngôn ngữ

  • Hệ thống có sẵn 12 ngôn ngữ trong tích hợp: zh-CN, zh-TW, en-US, ja-JP, ko-KR, fr-FR, de-DE, es-ES, th-TH, vi-VN, ru-RU, pt-PT.
  • Phương thức chuyển: Thêm ?lang=vi-VN vào URL (ví dụ /?lang=vi-VN), hoặc chọn qua.menu ngôn ngữ ở góc phải trên cùng của quản trị viên; sau khi chọn sẽ ghi vào Cookie, có hiệu lực 1 năm.

4. Hướng dẫn cho Quản trị viên

4.1 Đăng nhập quản trị viên

  1. Truy cập http://<địa_chỉ_server>:<cổng>/admin/login thông qua trình duyệt.
  2. Đăng nhập với tài khoản quản trị viên (ban đầu là root / SQLVantage).
  3. Sau khi đăng nhập thành công, sẽ mở ra quản trị viên (/admin); cột bên trái chứa: Quản lý báo cáo, Quản lý vai trò, Quản lý người dùng, Quản lý yêu cầu, Quản lý phân quyền, Cài đặt hệ thống, Bảng điều khiển, Về chúng tôi.

Lưu ý: Tài khoản quản trị viên phải đáp ứng Vai trò = adminTrạng thái = active; ngược lại sẽ không thể đăng nhập vào quản trị viên.

4.2 Bảng điều khiển và thanh navigation trên cùng

  • Thanh navigation trên cùng cung cấp các jump nhanh: Bảng điều khiển (/admin), Thực thi báo cáo (/request, cửa sổ mới), Trang chủ cổng (/).
  • Góc trên có thể chuyển đổi ngôn ngữ, hoặc đăng xuất (/admin/logout).

4.3 Quản lý người dùng

Điểm vào: /admin/user (cột bên trái "Quản lý người dùng").

Chi tiết trường người dùng:

Trường Mô tả
Tên đăng nhập (UserName) Tài khoản đăng nhập; sau khi tạo không thể sửa (chỉ đọc)
Email Tùy chọn
Vai trò (Role) normal (người dùng thông thường) / admin (quản trị viên)
Trạng thái (Status) active (đang hoạt động, có thể đăng nhập) / inactive (đã nghỉ/ bị khóa, không thể đăng nhập)
Mật khẩu Bắt buộc khi tạo; lưu dưới dạng mã hóa, giao diện không hiển thị

Hành động:

  • Tạo mới: bấm nút "Tạo mới" → điền Tên đăng nhập/Email/Vai trò/Trạng thái/Mật khẩu/Xác nhận mật khẩu → gửi.
  • Sửa đổi: bấm "Sửa đổi" trên hàng → có thể sửa Email, Vai trò, Trạng thái; để trống ô Mật khẩu nghĩa là không thay đổi.
  • Xóa: bấm "Xóa" trên hàng. Lưu ý:
    • Tài khoản root không thể xóa.
    • Người dùng có báo cáo liên kết không thể xóa (trước phải xóa hoặc chuyển đổi báo cáo của họ).

Điểm mấucements quản lý:

  • Điểm vào đăng nhập cho người dùng thông thường là /login (trang chủ), và của quản trị viên là /admin/login; hai者不同。
  • Đặt trạng thái người dùng thông thường thành inactive đủ để khóa đăng nhập, không cần xóa tài khoản.
  • Danh sách người dùng sẽ tự động ẩn root.

4.4 Quản lý vai trò (Responsibility)

Điểm vào: /admin/responsibility (cột bên trái "Quản lý vai trò**.

Chi tiết trường vai trò:

Trường Mô tả
Mã vai trò (RespId) Mã vai trò trong Oracle EBS
Mã vai trò (RespKey) Khóa vai trò trong Oracle EBS
Tên (Name) Tên hiển thị; cũng là tên nhóm trong menu báo cáo của người dùng cuối
Ngắn (ShortName) Tùy chọn

Hành động:

  • Tạo mới: bấm "Tạo mới" → chọn vai trò của một người dùng từ dropdown (dữ liệu đến từ interface truy vấn Oracle EBS /api/user/responsibilities/); sau khi chọn RespId / RespKey / Name sẽ tự động điền; cũng có thể nhập thủ công → gửi.
  • Sửa đổi / Xóa: phím trên hàng. Lưu ý: Vai trò đang được báo cáo tham chiếu không thể xóa.

Mục đích: Báo cáo phải thuộc về một vai trò; màn "Menu báo cáo" ở người dùng cuối sẽ按责任 phân_groups (báo cáo không thuộc vai trò nào sẽ归入 "Chưa phân loại" nhóm).

4.5 Quản lý báo cáo

Điểm vào: /admin/report (cột bên trái "Quản lý báo cáo**.

Các trường báo cáo:

Trường Mô tả
ID Số tự động tạo bởi hệ thống
Vai trò (Responsibility) Thể loại báo cáo thuộc về
Tên (Name) Tên báo cáo, người dùng cuối có thể nhìn thấy
Mô tả Tùy chọn
Trạng thái (Status) Draft (Nháp) / Release (Đã phát hành) / Discard (Đã hủy)
Thời gian tạo/cập nhật Tự động ghi bởi hệ thống

Vòng đời của báo cáo (quan trọng):

Draft (Nháp, giai đoạn thiết kế) ──▶ Release (Đã phát hành, người dùng có thể nhìn thấy)
       │                        │
       │                        └──▶ Không thể xóa trực tiếp, phải trước đổi thành Draft/Discard
       └──▶ Discard (Hủy bỏ, người dùng không nhìn thấy)
  • Chỉ các báo cáo có trạng thái Release sẽ xuất hiện trong menu báo cáo của người dùng cuối.
  • Các báo cáo đã phát hành (Release) không thể xóa; trước hãy thay đổi trạng thái trong danh sách thành Draft hoặc Discard sau đó xóa.
  • Các cột "Tên", "Mô tả", "Trạng thái" trong danh sách hỗ trợ nhấp đôi vào ô để sửa trực tiếp (lưu tự động).

Hành động:

Nút Mô tả
Tạo mới 弹出表单: chọn vai trò, điền Tên/Mô tả/Trạng thái → gửi
Mã (màu tím) Mở Kiến trúc báo cáo (xem Chương 5, tính năng cốt lõi của hệ thống)
Sửa đổi (màu xanh lam) Mở biểu mẫu thông tin cơ bản để sửa đổi
Xóa (màu đỏ) Xóa báo cáo (Trạng thái Release không cho phép xóa)

4.6 Quản lý yêu cầu (Góc nhìn Quản trị viên)

Điểm vào: /admin/request (cột bên trái "Quản lý yêu cầu**.

Quản trị viên có thể xem tất cả các yêu cầu báo cáo của người dùng (người dùng thông thường chỉ có thể xem yêu cầu của chính họ), và có thể:

  • Xem theo tên báo cáo/Trạng thái/ giai đoạn;
  • Xem tham số, người gửi, IP address, thời gian tạo/hoàn thành;
  • Dưới dropdown "Xuất" có thể tải trực tiếp kết quả Excel / HTML / JSON / TEXT của yêu cầu đó;
  • Xóa từng cái, hoặc đánh dấu nhiều và "Xóa nhóm".

Ý nghĩa của trạng thái yêu cầu xem ở Chương 7.

4.7 Quản lý phân quyền (License)

Điểm vào: /admin/license (cột bên trái "Quản lý phân quyền**.

4.7.1 File phân quyền là gì

File phân quyền là conf/license.dat, một đoạn văn bản ngắn do nhà cung cấp ký phát, chứa thông tin như sau:

Trường Mô tả
reg_id Mã đăng ký (danh khách duy nhất)
company Tên công ty đã ký ký
expire Ngày hết hạn (dạng YYYY-MM-DD, ví dụ 2026-12-31)

Hệ thống sẽ tự động kiểm tra tính hợp lệ của file phân quyền lúc khởi đầu và lúc nhập khẩu; bất kỳ sự thay đổi nào (sửa đổi thông tin đăng ký hoặc ngày hết hạn) sẽ khiến phân quyền không hợp lệ.

4.7.2 Quy trình mua hàng

  1. Liên hệ nhà cung cấp/phát triển SQLVantage và cung cấp thông tin sau:
    • Tên/Doanh nghiệp (company);
    • Mã đăng ký máy chủ cần phân quyền (reg_id, do nhà cung cấp phân bổ);
    • Kỳ hạn phân quyền mong muốn.
  2. Nhà cung cấp dùng công cụ tạo phân quyền để tạo file phân quyền (một đoạn văn bản) và giao cho khách hàng.
  3. Khách hàng nhận file sau đó theo quy tắc 4.7.3 nhập khẩu.

4.7.3 Nhập khẩu phân quyền

  1. Quản trị viên đăng nhập → Quản lý phân quyền (/admin/license).
  2. Trang hiển thị trạng thái phân quyền hiện tại (Mã đăng ký / Tên công ty / Ngày hết hạn; nếu không hợp lệ hoặc bị thiếu sẽ hiển thị cảnh báo màu đỏ).
  3. Bấm "Chọn tệp" chọn file phân quyền nhận được (có thể đặt tên tùy ý, ví dụ license.dat) → bấm "Nhập".
  4. Nhập khẩu thành công hệ thống sẽ tự động kiểm tra và làm mới trang hiển thị, hiển thị thông tin phân quyền hợp lệ.

Cũng có thể thủ công đặt: lưu nội dung file phân quyền làm conf/license.dat sau đó khởi động lại chương trình.

4.7.4 Khi không có phân quyền / Phân quyền hết hạn

Hạn chế Mô tả
Số lượng báo cáo Khi không có phân quyền (hết hạn) tối đa chỉ có thể tồn tại 3 báo cáo; tạo báo cáo vượt quá sẽ bị từ chối (thông báo "Phân quyền đạt ngưỡng")
Gửi yêu cầu Khi không có phân quyền và số báo cáo ≥ 3, người dùng thông thường gửi yêu cầu sẽ bị từ chối
Hết hạn phân quyền Hết hạn sau không ảnh hưởng đến các hoạt động đã đăng nhập, nhưng tạo báo cáo / gửi yêu cầu sẽ bị giới hạn

4.8 Cài đặt hệ thống

Điểm vào: /admin/setting (cột bên trái "Cài đặt hệ thống"), chỉnh sửa trực quan conf/app.conf:

  • Cài đặt ứng dụng: Địa chỉ lắng nghe, cổng, chế độ chạy, ngôn ngữ mặc định, thời gian thực thi tối đa;
  • Cài đặt session: Thời gian hết hạn Session (giây);
  • Cài đặt cơ sở dữ liệu Oracle: Máy chủ, cổng, tên dịch vụ, tên người dùng, mật khẩu (có nút chuyển đổi rõ văn bản/ mật mã).

Sau khi lưu, một số tham số tức thì có hiệu lực, các tham số như cổng cần khởi động lại chương trình.

4.9 Về chúng tôi

Điểm vào: /admin/aboutus, xem phiên bản hệ thống, thông tin phát hành v.v..


5. Hướng dẫn thiết kế báo cáo (SQL/FORM/HTML)

Đây là tính năng quan trọng nhất của SQLVantage. Một báo cáo bao gồm 3 phần:

  • SQL: định nghĩa truy vấn dữ liệu (nguồn SQL + cài đặt metadata cột)
  • FORM: định nghĩa người dùng điền điều kiện truy vấn (bảng tham số)
  • HTML: định nghĩa cách hiển thị kết quả (bảng / biểu đồ / bố cục KPI card)

3 phần này mỗi phần có "mã" và "định dạng JSON" hai phần dữ liệu, cuối cùng được lưu vào bản ghi báo cáo.

5.1 Bảng làm việc thiết kế

5.1.1 Truy cập Kiến trúc

  1. Đăng nhập làm quản trị viên → Quản lý báo cáo (/admin/report).
  2. Tìm báo cáo mục tiêu và bấm nút "Code" (màu tím).
  3. Một khung thiết kế lớn hiện ra (khoảng 98% màn hình), giao diện chia thành 2 cột bên trái và bên phải:
┌────────────────────────────────────────────────────────┐
│ [下拉:SQL设计 | FORM设计 | HTML设计]   [保存全部]        │
├───────────────────────────────┬────────────────────────┤
│ Bên trái: Mã chỉnh sửa         │ Bên phải: Mặt phẳng thiết kế động │
│ (Mã SQL / Mã FORM /           │ (đổi theo bên trái mô điệu) │
│  Mã HTML chung một editor)     │   · SQL: Cấu hình cột metadata │
│                               │   · FORM: Bảng cấu hình tham số │
│                               │   · HTML: Bảng cấu hình块  │
└───────────────────────────────┴────────────────────────┘

5.1.2 Ba chế độ

Đropdown trên cùng chuyển chế độ thiết kế; bên trái editor và bên phải mặt phẳng đồng bộ chuyển:

Chế độ Nội dung editor Mặt phẳng bên phải
Thiết kế SQL SQL truy vấn báo cáo (syntax Oracle) Bảng metadata cột ( ảnh hưởng đến Excel-Export / tiêu đề cột trang web)
Thiết kế FORM Mã HTML của bảng tham số Bảng cấu hình tham số + Xem trước trực tiếp + Bản thiết kế FORM
Thiết kế HTML Mã HTML hiển thị kết quả (mẫu đoạn) Bảng cấu hình块 thiết kế + Xem trước bố cục + Bản thiết kế HTML

5.1.3 Lưu giữ

  • Trong khi thiết kế: Các thay đổi ở mặt phẳng bên phải sẽ tự động viết vào các field ẩn (sql_code/sql_format/form_code/form_format/html_code/html_format).
  • Lưu chính: Bấm nút "Lưu tất cả" trên cùng bên trái để gửi 6 phần dữ liệu đến /admin/report/code/ và lưu vào cơ sở dữ liệu.

Lưu ý: Sau khi sửa SQL / FORM / HTML, hãy chắc chắn đã bấm "Lưu tất cả"; ngược lại thay đổi sẽ丢失 khi đóng khung.

5.2 Módul SQL (Thiết kế nguồn dữ liệu báo cáo)

5.2.1 Viết SQL truy vấn

  • SQL dùng syntax Oracle; viết trực tiếp câu lệnh SELECT (FROM/JOIN/WHERE/GROUP BY v.v. có thể bao gồm).
  • Điều kiện truy vấn sử dụng ký hiệu tham số đặt tên :tên_tham_số, và tên tham số phải khớp với field được định nghĩa ở chế độ FORM. Ví dụ, nếu ở FORM định nghĩa tham số P_OU_ID, SQL viết như sau:
SELECT company_name, ou_id, amount
  FROM fnd_ou_tl
 WHERE ou_id = :P_OU_ID
  • Tất cả tên cột được chọn trong SQL chính là mã trường của Excel xuất ra và bảng HTML trang web (khuyến nghị đồng nhất viết hoa, ví dụ COMPANY_NAME).

5.2.2 Bảng metadata cột SQL (Chốt: Excel xuất)

"Bảng metadata cột SQL" ở bên có 1 dòng cho mỗi cột xuất ra bởi SQL:

Cột Mô tả Ví dụ
field Tên cột xuất ra bởi SQL (tự động chuyển thành chữ hoa khi nhập) AMOUNT
title Tiêu đề hiển thị – Excel xuất ra Header và tiêu đề cột của bảng trang web Amount
type text / number / percent / date / month / time / datetime number
precision Số chữ số thập phân cho các giá trị số (mặc định 2) 2
format Định dạng số/ngày tùy chỉnh cho Excel #,##0.00
align left / center / right right

Hành động: bấm "Thêm dòng" để thêm cột → nhấp đôi vào ô để điền →Snapshot JSON sẽ tự động tạo ra (khu vực xem trước mã màu đen bên phải), và tự động ghi vào sql_format thời gian thực.

5.3 Mối liên hệ giữa cấu hình cột SQL và Excel xuất

Hệ thống nền sau đó sinh file Excel (xlsx) theo các quy tắc liên hệ sau:

Cấu hình cột Hành vi xuất Excel
field Khớp với tên cột của kết quả truy vấn và quyết định cấu hình hàng này áp dụng cho cột nào
title Viết vào ô header hàng 1, tức là Header Excel title
type = text Giá trị viết vào ô như là văn bản
type = number Giá trị viết như là số, số chữ số thập phân = precision; nếu có format được cấu hình, theo định dạng số tùy chỉnh, ví dụ #,##0.00
type = percent Giá trị xuất theo định dạng phần trăm; format có thể ghi đè, ví dụ 0.00%
type = date Giá trị xuất như ngày; format có thể dùng làm định dạng ngày, ví dụ yyyy-mm-dd
align Căn lề của ô: left / center / right
precision Chính xác số (mặc định 2)

Ngắn lại: Bảng metadata cột SQL chính là định nghĩa đầy đủ của "Headline + Loại cột + Định dạng số + Căn lề" cho Excel xuất. Dù không có cấu hình nào, Excel vẫn có thể xuất (mặc định dạng văn bản, căn lề bên trái, tiêu đề cột dùng tên cột gốc), nhưng Excel xuất ra sau khi cấu hình sẽ chuyên nghiệp hơn.

5.3 Módul FORM (Thiết kế bảng tham số truy vấn)

5.3.1 Bảng cấu hình tham số

"Bảng cấu hình tham số" bên có 1 dòng định nghĩa 1 tham số truy vấn:

Cột Mô tả Ví dụ
field Mã tham số; phải khớp với :tên_tham_số trong SQL P_OU_ID
label Văn bản hiển thị ở trên form Doanh nghiệp
type Xem bảng loại phần tử ở dưới select
value Tùy chọn; giá trị ban đầu 101
verify Quy tắc kiểm tra (ví dụ: required) required
static_options Các lựa chọn tĩnh cho Dropdown/Radio; dạng key:value,key:value 101:Saigon,102:Hanoi
api_url API địa chỉ cho các lựa chọn động; có thể chứa {tên_biến} ký hiệu /api/query?ou={P_OU_ID}
query_sql SQL truy vấn cho lựa chọn động; có thể chứa {tên_biến} ký hiệu; trả về 2 cột (giá/trình bày) SELECT id, name FROM tab WHERE ou = {P_OU_ID}

Bảng loại phần tử:

Loại Mô tả
text Ô văn bản một dòng
number Ô nhập số
select Dropdown (lựa chọn từ static options hoặc API/SQL động)
radio Nhóm nút radio (lựa chọn từ static options)
date Chọn ngày (YYYY-MM-DD)
year Chọn năm
month Chọn tháng
time Chọn giờ
datetime Chọn ngày giờ
hidden Ô ẩn (không hiển thị, nhưng vẫn đi kèm gửi biểu mẫu)
temp Giá trị tạm (không gửi)

5.3.2 Liên kết tham số (Lọc phụ thuộc)

  • api_url / query_sql hỗ trợ {tên_biến} ký hiệu: Khi người dùng thay đổi một tham số upstream (ví dụ: chọn Tổ chức), hệ thống sẽ tự động thay thế ký hiệu bằng giá trị thực tế hiện tại của biểu mẫu và yêu cầu động lựa chọn downstream.

  • Nếu tham số upstream chưa điền, dropdown xuống sẽ hiện "Vui lòng hoàn thành các lọc trên trước" và xóa lựa chọn, tránh dữ liệu bẩn.

  • Chọn một trong hai: Dropdown tĩnh (static_options) và Dropdown động (api_url / query_sql).

Yêu cầu về định dạng dữ liệu cho Dropdown động: Mỗi bản ghi trả về từ API/SQL phải chứa 2 trường: val (giá trị) và txt (hiển thị).

5.3.3 Xem trước trực tiếp và tạo mã

  • Dưới bảng có khung "Xem trước trực tiếp": khi cấu hình tham số, biểu mẫu (kèm điều khiển ngày, dropdown phụ thuộc...) sẽ tự động hiển thị thực thời gian.
  • Đoạn "Bản thiết kế biểu mẫu" ở dưới tự động tạo mã HTML FORM thực thời gian.
  • Bấm nút "Sao chép và áp dụng": bản thiết kế được viết vào editor (che chế độ FORM) và đồng bộ form_code / form_format.

Bạn cũng có thể bỏ qua mặt phẳng bên phải và viết thủ mã HTML FORM (syntax biểu mẫu) trực tiếp ở bên trái editor; khi lưu cũng có hiệu lực.

5.3.4 Hành vi thực thời

Sau khi người dùng cuối gửi biểu mẫu, hệ thống sẽ kết nối biểu mẫu như tham số đặt tên với SQL và thực thi; các tham số cũng được ghi nhận vào yêu cầu, để kết quả trang / tệp xuất có thể hiển thị lại điều kiện truy vấn.

5.4 Módul HTML (Thiết kế hiển thị kết quả)

5.4.1 Bảng cấu hình块 hiển thị HTML

Mỗi dòng của "Bảng cấu hình块 hiển thị HTML" bên có định nghĩa 1 khối hiển thị:

Cột Mô tả Ví dụ
block_id ID duy nhất của khối (dùng làm tiền tố cho DOM id tạo ra) chart_zone
title Tiêu đề khối Chi phí xu hướng
grid_md Chiều rộng gird 1~12 (12 trải dài toàn bộ hàng) 8
component table / chart / card / custom (khối tùy chỉnh) chart
subtotal Y (kích hoạt hàng tổng cho bảng) / N N
chart_type line (biểu đồ đường) / bar (biểu đồ cột) line
x_field Trường cột X (từ kết quả đầu ra SQL) MONTH
y_fields Trường cột Y; nhiều dùng dấu phách tiếng Anh phân cách TOTAL_AMOUNT

Giải thích phần tử:

Phần tử Hiệu ứng hiển thị Kỹ thuật thực thời
table Bảng dữ liệu có phân trang và sắp xếp; tiêu đề cột lấy từ metadata cột title; với subtotal=Y, các cột số hiển thị hàng tổng table
chart Biểu đồ (line/bar); các trường X/Y lấy từ cấu hình chart
card KPI card hiển thị giá trị then chốt Vẽ tự định nghĩa
custom Khối hiển thị tùy chỉnh HTML

5.4.2 Xem trước bố cục thực thời và tạo mã

  • Khu "Xem trước bố cục thực thời" hiển thị thực thời gian một bản sao hoàn hình cao fidelity của từng bloc (tên + loại bloc + chiều rộng).
  • "Bản thiết kế HTML" tự động tạo mã HTML thực thời gian (kèm các thuộc tính thực thời data-component, data-subtotal, data-charttype, data-xfield, data-yfields).
  • Bấm "Sao chép và áp dụng": viết vào editor và đồng bộ html_code / html_format.

Bạn cũng có thể viết thủ mã mẫu HTML trực tiếp ở bên trái editor (hỗ trợ syntax mẫu phổ biến). Khi thực thời, mẫu có thể sử dụng các đối tượng dữ liệu xem ở 5.4.3.

5.4.3 Cơ chế hiển thị trang kết quả

Khi người dùng cuối tải/xem kết quả HTML (/request/output?ext=html), hệ thống sẽ kết hợp mã báo cáo với kết quả truy vấn JSON, metadata cột v.v. để hiển thị:

Biến mẫu Mô tả
data Mảng kết quả truy vấn JSON (cắm lúc thực thời; kết hợp với {{.data}} xuất làm dữ liệu JS)
params Các tham số của yêu cầu này (cặp khóa-giá trị)
colsConfig Metadata SQL cột (dùng cho tiêu đề cột bảng / tên series biểu đồ)
reportName / reportDate / status Tên báo cáo, thời gian tạo, trạng thái

Trang sẽ tự động将容器 có data-component="table" thành bảng dữ liệu, chart thành biểu đồ, card thành KPI card.

5.5 quy trình phát hành báo cáo (Luận đàm khuyến nghị cho Quản trị viên)

1. Quản lý báo cáo → Tạo báo cáo mới (Chọn vai trò, điền Tên, Chọn trạng thái Draft)
2. Bấm "Code" để truy cập Kiến trúc
3. Thiết kế SQL: Viết SQL truy vấn + cấu hình metadata cột (là cơ sở cho Excel xuất)
4. Thiết kế FORM: Cấu hình tham số truy vấn (khớp 1-1 với SQL tham số)
5. Thiết kế HTML: Cấu hình bố cục hiển thị (Bảng/Biểu đồ/KPI card)
6. Bấm "Lưu tất cả" → Đóng Kiến trúc
7. Trở lại danh sách báo cáo, chuyển trạng thái thành Release (phát hành)
8. Người dùng thường đăng nhập tức thì có thể trong menu báo cáo thấy báo cáo đó và thực thi

5.6 Ghi chú thiết kế

  • Tên tham số trong SQL và FORM phải khớp chính xác (SQL dùng :tên_tham_số, FORM dùng field).
  • Tên cột SQL nên viết hoa; bảng metadata cột sẽ tự động将 field chuyển thành chữ hoa.
  • SQL báo cáo phải có thể được Oracle db.Prepare tiền biên bản; lỗi syntax sẽ dẫn đến thất bại thực thi yêu cầu (Trạng thái Error).
  • Không có phân quyền báo cáo số lượng lên tới 3; trước khi thiết kế hãy xác nhận trạng thái phân quyền.
  • Sau khi lưu, có thể ở "Quản lý yêu cầu" hoặc trên người dùng cuối thực hiện một lần yêu cầu, kiểm tra SQL và hiển thị có đúng không.

6. Hướng dẫn cho người dùng thông thường

6.1 Đăng nhập

  1. Phương thức một: ERP xác thực (Oracle EBS Single Sign-On)
  2. Phương thức hai: Tài khoản địa phương

6.2 Trang chủ cổng

6.3 Tạo yêu cầu báo cáo mới

6.4 Danh sách yêu cầu của tôi

6.5 Đổi mật khẩu

6.6 Một số lưu ý bổ sung


7. Thực thi yêu cầu và kết quả đầu ra

7.1 Quy trình thực thi (bất đồng bộ)

7.2 Định dạng đầu ra

7.3 Kiểm soát quyền truy cập

7.4 Câu hỏi thường gặp


8. Phụ lục: Lưu trữ dữ liệu, sao lưu và di chuyển

9.1 Địa chỉ lưu trữ dữ liệu

9.2 Khuyến nghị sao lưu

9.3 Di chuyển vào máy chủ mới

9.4 Tài liệu đa ngôn ngữ (Multilingual Document) Di chuyển và Đọc trực tuyến