Skip to main content

Setup

ReportFrame cần ít nhất hai đối tượng sau:

Một bảng tạm trong CSDL chứa nội dung của báo cáo và một bảng lọc trước (có thể dùng default là glm_gl_books) để đối chiếu lấy dữ liệu. Bảng tạm trong CSDL sẽ dùng các cột dựa trên bảng lọc trước.

$report = ReportFrame('<tên-bảng-tạm>');
$data = $report->execute('<tên-bảng-lọc-trước>');

 

Đối với bảng tạm trong CSDL, chúng ta có các quy ước sau:

- Bảng tạm phải chứa ít nhất các cột sau:

RowCondition, ItemID, Static

Cột Mục đích Kiểu dữ liệu Phải có Chú thích
RowCondition Đây sẽ đóng vai trò làm điều kiện hàng trong báo cáo, gộp các formula trong IjFormula trước đó vào thành một 
JSON YES
ItemID Dùng để phân biệt các hàng với nhau VARCHAR/CHAR YES Default dùng để sắp xếp, cũng như phân biệt các đối tượng với nhau
Static Để xác định xem nó có phải hàng động không TINYINT YES  

 

Sau đó bạn có thể thêm các cột sau trong bảng (nếu muốn)

  • ParentID:
  • idcha, sửdụngtrong
  • Project
  • Đối

    với bả
    CộtMục đíchKiểu dữ liệuPhải vớiChú thích
    ParentIDDùng cho các báo cáo cần thể hiện dạng báo cáo dạng cây,y VARCHAR/CHAR NO Default cho SumTree, bởi SumTree (dùng cột này để tính tổng, nếu báo cáo không dùng SumTreeSumTree, thì tắbật 'DoNotSumTree' trong $this->options
    CanPrint ng để bật/tắt các hàngTINYINTNONếu có cột này, default ReportFrame sẽ lấy tất cả các hàng có CanPrint = 1

    Các cột,t khác sẽ dùng cho nội dung của báo cáo, riêng các cột cầgiá trị số (I1, I2, ..., v.v...) có quy tắc và hỗ trợ của riêng nó

    Một số các cột khác thường cho thêm vào bao gồm

    CộtMục đíchKiểu dữ liệuPhải cóChú thích
    NorderPhụ sắp thứ tựVARCHAR/CHARNO
    FontWeightDùng để điều chỉnh đậm/nhạtTINYINTNOHay dùng nhất
    ItalicDùng để điều chỉnh chữ nghiêngTINYINTNO
    STTDùng để đánh thứ tự trong các báo cáo có đánh thứ tựVARCHAR/CHARNOKhông nên động sửthay ItemID cho sắp xếp, trừ khi báo cáo có thể sắp xếp sẵn bằng STT

    dụ dùng formatS90:

    DynCol_<tên-cột>

    image.png