User table Allocation dùng để phân bổ dữ liệu từ một bảng cho trước theo tỷ lệ được mô tả ở một bảng thứ 2.
Ví dụ: Bảng gốc là Lương nhân viên, bảng phân bổ là Tỷ lệ giờ công của nhân viên ở các phòng. Như vậy User table Allocation có thể trả về bảng lương nhân viên phân bổ cho các phòng.
User table Allocation còn có thể ứng dụng để phân bổ chi phí theo phòng ban, doanh thu theo nhóm sản phẩm, ...
Cú pháp sửa dụng User table Allocation như sau:
user table(pbs.BO.Data.Allocation?Original=OriginalTable&Ratio=RatioTable&OriginalValue=ColumnNameOfOriginalValue&RatioValue=ColumnNameOfRatioValue&OriginalKey=ColumnNameInOriginal&RatioKey=ColumnNameInRatio)
Trong đó:
❑pbs.BO.Data.Allocation: cú pháp định danh User table Allocation
❑Original: là tên của bảng nguồn cần phân bổ
❑Ratio: là tên của bảng chứa tỷ lệ phân bổ
❑OriginalValue: là tên của cột chứa giá trị cần phân bổ của bảng dữ liệu nguồn
❑RatioValue: là tên của cột chứa tỷ lệ phân bổ của bảng tỷ lệ phân bổ
❑OriginalKey, RatioKey: là 2 cột tùy chọn, chỉ sử dụng trong trường hợp mỗi dòng ở bảng nguồn được phân bổ theo cách khác nhau. Nếu OriginalKey có giá trị và RatioKey để trống không được định nghĩa thì RatioKey sẽ sử dụng cùng tên cột với OriginalKey
❑Rounding (0/1/2): là số thập phân cần làm tròn ở cột kết quả phân bổ, mặc định làm tròn đến 2 ký tự thập phân
Một ví dụ ứng dụng của User table Allocation như sau:
Bảng nguồn (SAL)
EmplCode |
Salary |
E0001 |
8,000,000 |
E0002 |
12,000,000 |
E0003 |
10,000,000 |
E0004 |
9,500,000 |
E0005 |
15,000,000 |
E0006 |
9,000,000 |
E0007 |
11,000,000 |
Bảng phân bổ (LOC)
EmplCode |
Location |
Ratio |
E0001 |
LOC1 |
1 |
E0001 |
LOC2 |
2 |
E0001 |
LOC3 |
2 |
E0004 |
LOC1 |
2 |
E0004 |
LOC4 |
2 |
E0006 |
LOC1 |
1 |
E0007 |
LOC5 |
3 |
Cú pháp để phân bổ bảng nguồn theo Location sẽ là: user table(pbs.BO.Data.Allocation?Original=SAL&Ratio=LOC&OriginalValue=Salary&RatioValue=Ratio&OriginalKey=EmplCode)
Chú ý: trong bảng nguồn ta thấy nhân viên E0001 có mức lương là 8,000,000. Sau khi phân bổ sẽ được tách thành 3 dòng theo tỷ lệ 1 cho LOC1, 2 cho LOC2 và 2 cho LOC3 theo như bảng phân bổ LOC. Hệ thống sẽ căn cứ vào OriginalKey = E0001 để tìm ra 3 tỷ lệ này ở bảng phân bổ LOC.
________________________
Updated date: 08/08/2016