Nhập liệu ma trận (Batch Matrix)

Navigation:  Các công cụ phát triển phần mềm > Nhập liệu (Data Entry) > Nhập liệu theo nhóm (Batch Posting) >

Nhập liệu ma trận (Batch Matrix)

Previous pageReturn to chapter overviewNext page
Show/Hide Hidden Text

Nhập liệu ma trận là gì?

Form nhập liệu dạng ma trận trong Phoebus cho phép tạo các form nhập liệu dạng bảng với số lượng cột không giới hạn, thay đổi theo yêu cầu của người thiết kế.

Nhập liệu ma trận được ứng dụng trong các trường hợp nhập liệu ngân sách, chi phí, ... cố định theo 12 tháng trong năm, theo từng phòng ban, cơ sở ...; với những dạng dữ liệu có cấu trúc thay đổi thường xuyên thì không được áp dụng.

Ví dụ, một bảng bảng nhập liệu ngân sách như sau (tạm bỏ qua cột AnalysisB8):

Tháng

Mã ngân sách

Số tiền (VND)

AnalysisB8

01/2016

B001- Chi phí lương

120.000.000

R0C001

02/2016

B001- Chi phí lương

200.000.000

R0C001

03/2016

B001- Chi phí lương

200.000.000

R0C001

01/2016

B002- Chi phí văn phòng

  10.000.000

R1C001

02/2016

B002- Chi phí văn phòng

  15.000.000

R1C002

03/2016

B002- Chi phí văn phòng

  15.000.000

R1C003

01/2016

B003- Chi phí quảng cáo

  50.000.000

R2C001

02/2016

B003- Chi phí quảng cáo

  50.000.000

R2C002

03/2016

B003- Chi phí quảng cáo

  80.000.000

R2C003

01/2016

B004- Chi phí hội thảo

  30.000.000

R3C001

02/2016

B004- Chi phí hội thảo

  40.000.000

R3C002

03/2016

B004- Chi phí hội thảo

  50.000.000

R3C002

 

Trên thực tế thì số lượng dòng nhập liệu sẽ rất lớn, khi đó người thiết kế có thể thiết lập một form nhập liệu theo nhóm (Batch Posting) thông thường. Tuy nhiên, việc này sẽ gây khó khăn cho người dùng khi tiến hành nhập liệu vì khối lượng dữ liệu lớn, tốn thời gian và dễ xảy ra sai xót. Để khắc phục, có thể dùng cách tải nhập dữ liệu, nhưng như thế phải quản lý file tải nhập, mặc khác sẽ không đáp ứng nếu người dùng yêu cầu mọi thao tác đều phải được thực hiện ngay trên phần mềm.

Do đó từ phiên bản 4.5.4.769, Phoebus mở rộng tính năng Nhập liệu theo nhóm (Batch Posting) bổ sung phần Nhập liệu ma trận (Batch Matrix). Với form nhập liệu dạng ma trận, có thể chuyển bảng bên trên thành bảng nhập liệu dạng ma trận như sau:

 

Mã ngân sách

Tháng

01/2016

02/2016

03/2016

B001- Chi phí lương

120.000.000

200.000.000

200.000.000

B002- Chi phí văn phòng

  10.000.000

  15.000.000

  15.000.000

B003- Chi phí quảng cáo

  50.000.000

  50.000.000

  80.000.000

B004- Chi phí hội thảo

  30.000.000

  40.000.000

  50.000.000

 

 

Form Matrix khác với form Batch thông thường như thế nào?

Thật ra, form nhập liệu Matrix chính là form Batch thông thường, nhưng có 2 điểm khác, đó là:

Khi mở form nhập liệu Matrix, đầu tiên chương trình sẽ mở batch details lên như form Batch, sau đó xoay ngang batch details này thành dạng bảng ma trận.

Nhập liệu ở bảng ma trận xong, khi lưu thì chương trình sẽ xoay dọc bảng ma trận này về bảng Batch thông thường để lưu dữ liệu vào hệ thống.

batch_matrix_000_zoom37

Có thể nói, form nhập liệu Matrix chính là lớp vỏ bọc bên ngoài của một form Batch. Vậy cách để thiết lập Batch Matrix như thế nào? Các điểm cần lưu ý dành cho Batch Matrix được định nghĩa ở Batch Posting Profile ra sao? Mục dưới đây sẽ hướng dẫn chi tiết cách thiết lập cho form nhập liệu Matrix.

 

Thiết lập Nhập liệu ma trận

Form nhập liệu ma trận có cách hoạt động như Nhập liệu theo nhóm (Batch Posting), nhưng người thiết kế có thể thiết kế bảng nhập liệu dạng ma trận với số lượng cột tùy biến.

Do đó, nếu người sử dụng chưa biết về Batch Posting, thì đầu tiên cần phải tìm hiểu về cách hoạt động và sử dụng của Batch Posting trước khi thực hiện các thao tác với Batch Matrix.

 

Tương tự như thiết lập Batch Posting, khi thiết lập Batch Matrix cần thực hiện các theo tác sau:

<%EXTOGGLE%>Thiết lập nhập liệu ma trận

tipbulb           pbs.BO.BPP

Câu lệnh mở Thiết lập nhập liệu theo nhóm.

Định nghĩa một Batch Profile tại tính năng Batch Posting Profile (pbs.BO.BPP).

batch_matrix_001_zoom43

Ngoài các thông tin cần thiết để định nghĩa một Batch Profile như thường lệ, thì có 2 mục của tab Matrix Fields cần chú ý như sau:

1. Matrix Coordinator Field Name

Nếu Batch Profile đang định nghĩa là một form nhập liệu ma trận, thì phải chọn một cột từ bảng dữ liệu đích (Kiểu dữ liệu). Cột này sẽ được dùng để lưu tọa độ của mỗi dòng được nhập vào ma trận. Lưu ý, nếu cột nào của bảng dữ liệu đích được chọn để lưu tọa độ Matrix, thì không được dùng cho bất kỳ mục đích nào khác ở tab Detail Table, đặt biệt không dùng các cột là Is Master, nếu chọn một cột Is Master để lưu tọa độ thì hệ thống sẽ báo lỗi.

Mục đích của ô tọa độ này được dùng làm tham chiếu để kiểm tra lại dữ liệu. Cột được dùng lưu tọa độ là định dạng chuỗi (text), hệ thống sẽ lưu tự động với cấu trúc R0C001, trong đó:

R là dòng, viết tắt từ chữ Row; 0 là số thứ tự dòng, theo thứ tự 0, 1, 2, ..., 10, ..., 100, ...

C là cột, viết tắt từ chữ Column; 001 là số thứ tự cột, theo thứ tự 001, 002, 003, ...

Trong ví dụ của bài viết này, cột AnalB8 của bảng dữ liệu đích (pbs.BO.PCM.BIV) được dùng để lưu tọa độ ma trận. Theo đó, ô Chi phí văn phòng cho tháng 3 được lưu sẽ có giá trị là R1C003, cho biết dòng này được nhập trên bảng ma trận tương ứng ở dòng số 1 - cột số 003 - giá trị là 15.000.000

a

2. Matrix Fields: Các cột dữ liệu bổ sung sẽ được thêm vào tại bảng Matrix Fields, số lượng cột tùy biến theo nhu cầu sử dụng và có thể bổ sung khi cần thiết.

Trong ví dụ của bài viết này, các cột dữ liệu bổ sung tháng 1, tháng 2, tháng 3, .... sẽ được định nghĩa trong bảng Matrix Fields theo hình minh họa bên dưới.

Theo đó, tên 3 cột lần lượt sẽ là Jan, Feb, Mar. Khi dữ liệu được nhập vào 3 cột này, sẽ được ghi vào trường Amount của Kiểu dữ liệu đích. Tiêu chí lọc dữ liệu là trường Period sẽ bằng các giá trị lần lượt 001, 002, 003.

batch_matrix_002_zoom43

Các cột cần lưu ý trong bảng Matrix Fields như sau:

Priority No

Số thứ tự các cột được tạo bổ sung.

Nhập theo thứ tự 001, 002, 003, ...

Column Name (*)

Tên cột được tạo bổ sung. Các cột này sẽ hiển thị trong bảng nhập liệu ma trận.

Tên cột phải được đặt không dấu và không khoảng trắng, có thể dùng ký tự _ để nối.

Description

Diễn giải

Diễn giải của cột được tạo bổ sung.

Cột này được mặc định lấy theo Column Name.

Column Type

Chọn loại định dạng của cột bổ sung, trong nhập liệu ma trận thường là dạng số (Decimal).

Các loại định dạng gồm có Lookup, Description, String, Text, Integer, Decimal, SDate, STime, SPeriod.

Field Name

Tên Cột (**)

 

Chọn cột từ bảng dữ liệu đích.

Khi nhập dữ liệu vào bất kỳ ô nào của các cột bổ sung (*), kết quả chương trình sẽ chuyển các ô ma trận này về bảng Batch để lưu vào hệ thống, thì giá trị khi lưu sẽ được lưu vào cột này.

Tóm lại, cột này sẽ là nơi lưu giá trị được nhập vào từ các cột bổ sung.

Filters

Các tiêu chí lọc

dữ liệu

 

Filter theo một hoặc nhiều cột được chọn từ bảng dữ liệu đích.

Dữ liệu nhập trên bảng ma trận ngoài được lưu vào cột (**), thì những giá trị khác cần thiết sẽ được lưu vào bảng Batch căn cứ vào giá trị được tiền định cho các cột được thiết lập ở đây.

Có thể thiết lập nhiều hơn một cột: FiledName1=___&FieldName2=___&...

Theo ví dụ của bài viết này, dữ liệu Kỳ kế toán sẽ được ghi nhận vào cột Period theo từng cột bổ sung, bằng cách thiết lập ở cột Filters:

Column Name

Filters

Jan

Period=001

Feb

Period=002

Mar

Period=003

 

Nghĩa là, khi dữ liệu được nhập vào cột Jan thì ngoài lưu vào cột (**), chương trình sẽ tự động gán thêm giá trị 01/yyyy vào cột Period. Trong đó yyyy là giá trị năm lấy theo Period trên phần Master (Period được tick Copy Form Master trong thiết lập ở bảng Detail Table). Như vậy, trong trường hợp nhập bảng ma trận có 12 cột tương ứng 12 tháng, thì filter theo Period=001 đến Period=012.

Xem hình minh họa ở mục Form nhập liệu ma trận (Bảng 2) để thấy rõ hơn.

Mapping Column

Đây là cột Preset (tiền định), cột này được sử dụng để mapping các cột dữ liệu từ Preset Data Source URL vào bảng nhập liệu ma trận.

Nếu không có preset này, thì khi mở form nhập liệu ma trận lên, các cột sẽ trống, người dùng bắt đầu nhập dữ liệu vào. Nếu khai báo giá trị preset tại đây, khi mở form sẽ được tự động điền vào các ô đã định nghĩa bổ sung (*) trên bảng nhập liệu ma trận.

Formula

Công thức

 

Thêm các công thức tính toán cho cột khi cần thiết.

Ví dụ: nhập Jan*2 vào dòng Feb, nghĩa là giá trị của cột Feb sẽ được tự động tính bằng giá trị của cột Jan*2

 

<%EXTOGGLE%>Form nhập liệu ma trận

tipbulb           pbs.BO.BPH/SubForm

Câu lệnh mở Form nhập liệu theo nhóm.

Chú ý: SubForm chính là Batch Profile đã được định nghĩa ở bước đầu tiên (pbs.BO.BPP)

Trong ví dụ của bài viết này, truy cập vào form nhập liệu ma trận bằng cách chạy câu lệnh pbs.BO.BPH/MatrixForm

Tiến hành thiết kế lại form nhập liệu, sắp xếp và ẩn đi các trường không cần thiết. Kết quả có form nhập liệu như sau:

batch_matrix_003_zoom43

Bảng 1: Matrix_pbs_BO_PCM_BIV
Bảng Matrix sẽ chứa các cột đã được tạo bổ sung ở bảng Matrix Fields (bước định nghĩa Batch Profile)
Người dùng sẽ thao tác trên Bảng 1 để tiến hành nhập liệu.

Bảng 2: Batch_pbs_BO_PCM_BIV
Bảng Batch sẽ hiển thị sự ghi nhận từ việc nhập ở bảng Matrix.
Bảng này thực tế sẽ được ẩn đi, trong trường hợp cần thiết thì Bảng 2 sẽ giúp kiểm tra lại nhóm dữ liệu đã được ghi nhận vào hệ thống.

 

Lưu ý các thiết lập cho Bảng nhập liệu ma trận

Ở bảng nhập liệu ma trận (Bảng 1), một số cột sẽ không tự động lookup để lấy ra tên/diễn giải, ... Do đó, người thiết kế cần thực hiện thêm một bước phụ là tạo công thức để chương trình tự động lấy ra thông tin cho các cột này.

batch_matrix_004_zoom25

Theo ví dụ của bài viết này, form nhập liệu ma trận thông qua Batch Matrix (pbs.BO.BPH/MatrixForm) để lưu vào tính năng Nhập sổ ngân sách (bps.BO.PCM.BIV), sau khi người dùng chọn từ danh sách Hạng mục (hạng mục được định nghĩa từ tính năng pbs.BO.PCM.WBI) thì các cột Mã số ngân sáchDiễn giải không được lấy ra tự động. Người thiết kế cần thiết lập để 2 cột này lấy ra tự động bằng cách:

1. Vào tính năng (Kiểu dữ liệu đích) Nhập sổ ngân sách, có SubForm đúng bằng SubForm của Batch Matrix: pbs.BO.PCM.BIV/MatrixForm

2. Setup\4. Calculation để tạo các công thức Slookup giúp tự động lấy ra thông tin cần thiết.

batch_matrix_005_zoom25

 

 

Ưu điểm của form nhập liệu ma trận

Các ưu điểm của form nhập liệu ma trận được liệt kê như dưới đây:

Trong trường hợp cần xử lý dữ liệu dạng ma trận, trước đây có thể dùng cách chuẩn bị một form ma trận trên excel và mapping range trên file này. Cách này hiện nay vẫn hoạt động, nhưng có nhiều khuyến điểm là phải chạy câu lệnh xóa những dữ liệu cũ để insert thêm những dòng mới, như vậy những dòng cũ sẽ bị mất đi, thao tác này sẽ thực hiện tạo mới hoàn toàn. --> Khi dùng form ma trận, khi cần thêm dòng mới thì chương trình sẽ thực hiện việc update, những dòng cũ vẫn được lưu.

Với form ma trận, khi muốn xóa dòng nào thì tick chọn dòng đó để xóa, chương trình sẽ xóa đúng dòng đã chọn. Hoặc, khi muốn thêm mới thì chương trình sẽ chèn thêm dòng mới. Hoặc, khi muốn sửa dòng nào thì chương trình sẽ update dòng cần sửa mà không ảnh hưởng đến những dòng còn lại.

Validate ngay trên form nhập liệu ma trận.

Preset các giá trị cho một hoặc nhiều cột dữ liệu đích thông qua thiết lập của form ma trận, thay vì phải nhập lần lượt các giá trị cho từng cột theo từng dòng.

Giao diện dễ nhìn, form nhập liệu dạng ma trận sẽ giúp người dùng nhập liệu nhanh chóng, dễ dàng hơn; đồng thời thuận tiện kiểm soát, đối chiếu theo tọa độ. Nhờ vậy, nhập liệu ma trận ít gặp sai xót so với nhập liệu theo nhóm thông thường do bảng nhập liệu được bố trí theo dạng ma trận với số lượng cột được sắp xếp tùy biến.

 

 

 

________________________

Updated date: 14/04/2016