CollectionControl - Danh sách khối

Phạm vi áp dụng

✅ Bravo 8 · ❌ Bravo 10 — thẻ chỉ có ở Bravo 8

Ý nghĩa

Bravo 8 R3 cung cấp đối tượng xử lý giao diện kiểu danh sách gọi chung là Collection Control, thể hiện qua 2 class:

ClassChức năng
BravoDataListControlHiển thị dữ liệu data row dưới dạng list layout — mỗi List Item hiển thị 1 dòng dữ liệu
BravoLookupListControlHiển thị dữ liệu lookup dưới dạng list layout — có thể thay thế LookupControl thông thường cho các xử lý trực quan và mobility

Cả hai đặt tại assembly Bravo.Diagram.dll.

Phạm vi hỗ trợ

  • Được hỗ trợ bởi DataExplorer trong việc xử lý dữ liệu quan hệ
  • Được hỗ trợ bởi DiagramWidget trong việc hiển thị lên dashboard
  • Có thể sử dụng như control thông thường để xử lý dữ liệu trên DataEditor

1. Ba kiểu Layout

List layout

Dữ liệu hiển thị dưới dạng danh sách được phân từng nhóm (Group), bố trí tiếp theo nhau với các bố cục (LayoutStrategy):

Chiến lượcColumnWidthRowHeightColumnCountRowCountKết quả
Vertical fit>0>0<=0<=0Item có chiều rộng = ColumnWidth, chiều cao = RowHeight
Vertical fill>0>0>0<=0Item fill theo chiều rộng control (chia đều theo ColumnCount), cao = RowHeight
Horizontal fill>0>0<=0>0Item fill theo chiều cao control (chia đều theo RowCount), rộng = ColumnWidth
Vertical AutomaticDimension<=0<=01<=0Item cao fit theo nội dung, rộng fill theo control

Grid layout

Dữ liệu phân theo nhóm (Group), bố trí dựa vào việc chỉ định Row / Column của grid từ dữ liệu.

Organizational chart layout

Dữ liệu bố trí dưới dạng sơ đồ tổ chức. Hỗ trợ 2 kiểu quan hệ: cấp trên – cấp dưới và trợ lý (assistant).

7 kiểu bố cục (LayoutStrategy):
linear · hanger · singleColumn · fishbone1 · fishbone2 · hstack1 · vstack1


2. ItemLayout

Item được phân thành 2 thành phần:

ItemLayer — style, màu sắc, hình dáng

Thuộc tínhNội dung
ForeColorMàu chữ / foreground
BackColorMàu nền
BorderColorMàu viền
SelectedBackColorMàu nền khi item selected
SelectedBorderMàu viền khi item selected
BorderWidthĐộ to của viền
BorderDashStyleKẻ viền bằng nét đứt
nCornerRadiusMức độ bo góc

Content layer — bố trí hiển thị dữ liệu theo Table Layout

Dùng được mọi control nhập liệu

Có thể sử dụng toàn bộ các điều khiển nhập liệu mà Bravo 8 hỗ trợ: BravoTextBox, BravoDateInputBox, BravoCheckBox, BravoProgressBar…

Binding dữ liệu — quy tắc expr="True"

Ví dụ item map vào DataId với cột ColumnA có giá trị 100100:

Khai báoKết quả
<Value expr="True">{ColumnA}</Value>Chuỗi "100100" gán vào Value
<Value expr="True">Đây là: {ColumnA}</Value>Chuỗi "Đây là: 100100"
<Value expr="True">ColumnA</Value>Số 100100 gán vào Value
<Value>ColumnA</Value>⚠️ Chuỗi "ColumnA" — literal, không binding

Hiển thị hình ảnh từ data source (binary)

Dùng control BravoPictureBox và khai báo:

<Image expr="True">ImageBinaryColumn</Image>

3. Dynamic ItemLayout

Để tăng tính mềm dẻo, Collection Control cho phép khai báo danh sách các ItemLayout tại /ItemLayout/Items/….

Control căn cứ vào khai báo /Expr để áp dụng Layout cho từng item.


4. Execute

Control gọi các evaluator trong /Execute khi USER double click vào item, với data context là data row được map.

Riêng BravoLookupListControl

Khi execute các evaluator, data context của dữ liệu lookup được truy xuất bằng biến theo format @ColumnName.


5. Drag-Drop

ThẻNội dung
zDragExprĐiều kiện cho phép drag — nếu cho phép, control gắn DataRow và hình ảnh capture của item vào tác vụ Drag
zDropExprĐiều kiện chấp nhận drop
dropExecuteEvaluator kích hoạt với data context là DataRow dragging

Note

Control cho phép droping dữ liệu từ chính nó hoặc các control khác nếu dữ liệu đang Dragging là DataRow.


6. Styling theo theme

ThẻNội dungMặc định
/bUseVisualStyleControl có áp chế độ màu sắc tự động hay khôngTrue
/colorThemeNhận các giá trị enum. Đặc biệt giá trị Theme = áp dụng màu sắc theo màu của diagram dashboard—

Khi bật màu sắc tự động, các thẻ chỉ định vị trí màu trong colorTheme:

ThẻNội dungMặc định
/ItemLayout/ForeColorIndexMàu chữ0
/ItemLayout/BorderColorIndexMàu viền1
/ItemLayout/SelectedBackColorIndexMàu nền khi selected2
/ItemLayout/SelectedBorderColorIndexMàu viền khi selected3
/ItemLayout/BackColorIndexMàu nền4

Riêng OrgChartLayout

BackColorIndex được gán theo cấp với công thức (3 + level).


Liên quan

Control hiển thị danh sách · BravoDataListControl · ScheduleControl - Tiến độ · Widget Dashboard · Assembly