Numbering rules là quy tắc đánh số dùng để lấy ra số tự động tiếp theo và điền vào một trường dữ liệu trước khi lưu mẫu tin vào cơ sở dữ liệu (CSDL).
Nguyên tắc hoạt động: Ngay sau khi người dùng bấm nút Save, hệ thống sẽ lấy số tiếp theo và điền vào trường dữ liệu cần nhảy số tuần tự, người dùng sẽ không điền vào các trường này nữa.
Chú ý
Profile số tuần tự chỉ nhảy số tiếp theo khi người dùng bấm Save (mẩu tin được ghi nhận vào hệ thống).
Nếu một mẫu tin bị xóa đi, trong hệ thống sẽ trống số tuần tự đã xóa. Số đã sử dụng mất đi cùng mẩu tin bị xóa.
Quy tắc đánh số được áp dụng cho từng Sub Form riêng biệt của một kiểu dữ liệu
Ví dụ: Trong tính năng Name and Address thiết lập cho trường AddCode là số tuần tự nhảy tự động. Nếu tính năng pbs.BO.LA.NA sử dụng 2 Sub Form cho mẫu tin Khách hàng (pbs.BO.LA.NA/KH) và mẫu tin Nhà cung cấp (pbs.BO.LA.NA/NCC) thì có thể có 2 chuỗi số nhảy liên tục cho 2 Sub Form này, : KH0001
ứng với khách hàng, NCC0001
ứng với nhà cung cấp.
Numbering rules kết hợp với Sequence Number Definition để lấy ra số kế tiếp.
Numbering Rules cho phép sử dụng profile lấy số tuần tự một cách linh động.
Trong tất cả các trường dữ liệu của các kiểu dữ liệu trong Phoebus, người dùng muốn dùng số nhảy tuần tự tự động ở trường nào thì thiết lập quy tắc đánh số tương ứng vào trường đó.
Các cách để thiết lập quy tắc đánh số, mỗi cách đáp ứng nhu cầu sử dụng khác nhau như sau:
Để thiết lập số tuần tự nhảy tự động cho một trường dữ liệu bất kỳ, nhập Seq.Code (định nghĩa tại pbs.BO.SEQ) vào cột Sequence Profile.
Ví dụ:
Thiết lập số tuần tự nhảy tự động cho trường AddCode của kiểu dữ liệu Tên và địa chỉ
Định nghĩa Sequence Number Definition có mã 'KHSEQ'
Thiết lập quy tắc đánh số tại dòng AddCode của tính năng pbs.BO.LA.NA/KH > Setup > 3.Numbering > Sequence Profile: KHSEQ
Kết quả: Mã khách hàng sẽ là kết quả trực tiếp của profile KHSEQ
: KH-0001, KH-0002, KH-0003, ... KH-9999
Sử dụng khi người thiết kế không biết trước SEQ Profile nào sẽ được sử dụng khi chạy. SEQ Profile chỉ được xác định khi người dùng đã nhập liệu xong → khi thực hiện Lưu form thì SEQ Profile sẽ được xác định dựa theo giá trị nhập vào của một trường dữ liệu nào đó.
Như vậy, có bao nhiêu giá trị được dùng để xác định dãy số tuần tự thì sẽ có bấy nhiêu SEQ Profile được định nghĩa; và các SEQ này sẽ đánh số độc lập với nhau.
Trong trường hợp này SEQ sử dụng phải được xác định bằng công thức ở cột Dynamic Seq Profile.
Ví dụ:
Khi nhập phiếu thu (PT
) từ nhiều chi nhánh khác nhau vào cùng một CSDL, PT ở mỗi chi nhánh được đánh số riêng biệt dựa theo mã của từng chi nhánh.
Công ty TNHH ABC có 2 chi nhánh có mã lần lượt là CN1
, CN2
.
Để thiết lập số tuần tự cho PT thì cần định nghĩa 2 SEQ Profile là PTCN1
, PTCN2
.
Thiết lập quy tắc đánh số tại tính năng Nhập nhật ký kế toán: pbs.BO.LA.J/PT > Setup > Numbering > Dynamic Sq Profile = công thức
Giả sử AnalT0 là trường lưu thông tin chi nhánh, Treference là trường nhảy số chứng từ PT tự động.
Tại cột Dynamic Seq Profile của dòng Treference, bấm F5 hoặc nút lookup để mở Trình soạn thảo biểu thức:
IF([AnalT0] = 'CN1', 'PTCN1', 'PTCN2')
Kết quả: Số chứng từ PT sẽ được đánh số liên tục tự động PTCN1-0001
, PTCN1-0002
khi AnalT0=CN1
và PTCN2-0001
, PTCN2-0002
khi AnalT0=CN2
Sử dụng khi yêu cầu tuần tự là một tổ hợp gồm nhiều thành phần, bao gồm nội dung lấy từ một hoặc nhiều trường nhập liệu nào đó, kết hợp với dãy số tuần tự từ Sequence Number Definition:
Ngoài dãy số tuần tự sẽ được lấy tự động của SEQ Profile,
Thì các nội dung thêm vào trước dãy số đó sẽ được linh động, thay đổi theo giá trị nhập vào của một hoặc nhiều trường dữ liệu.
Như vậy, hệ thống sẽ dùng duy nhất một SEQ Profile để đánh số liên tục cùng với phần nội dung thêm vào.
Trong trường hợp này số tự động phải được xác định bằng công thức ở cột Number Composition, kết hợp với các phương pháp đánh số là Sequence Profile hoặc Dynamic Seq Profile đều được.
Ví dụ:
Cùng một form nhập thông tin khách hàng (pbs.BO.LA.NA/KH), sử dụng cùng một SEQ Profile nhưng khi đánh số tuần tự sẽ phân theo địa điểm của khách hàng: CITYKH-nnnn, trong đó CITY là mã phân tích thành phố và KH-nnnn là dãy số tuần tự.
Giả sử Address6 là trường lưu thông tin phân tích CITY, AddCode là trường nhảy mã khách hàng tự động.
Tạo SEQ Profile 'KHSEQ' để nhảy số tuần tự liên tục có cấu trúc: KH-nnnn
Thiết lập quy tắc đánh số tại dòng AddCode của tính năng nhập thông tin khách hàng: pbs.BO.LA.NA/KH > Setup > Numbering > Sequence Profile: KHSEQ
Thiết lập công thức đánh số tuần tự gồm nhiều thành phần: pbs.BO.LA.NA/KH > Setup > Numbering > Number Composition: công thức
Tại cột Number Composition của dòng AddCode, bấm F5 hoặc nút lookup để mở Trình soạn thảo biểu thức:
[Address6] + ?
Kết quả: Mã khách hàng sẽ được đánh số liên tục tự động dựa theo thông tin CITY: HNKH-0001, HCMKH-0002, HCMKH-0003, DNKH-0004, ...
Ta cũng có thể ứng dụng phương pháp này trong việc đánh số chứng từ như PT-YY-MM-nnnn
Updated on : 2021-06-07 11:05:31. by : . at T470-01.
Topic : . pbs.bo.rules.numberingrules