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:
| Class | Chức năng |
|---|---|
BravoDataListControl | Hiể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 |
BravoLookupListControl | Hiể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ược | ColumnWidth | RowHeight | ColumnCount | RowCount | Kết quả |
|---|---|---|---|---|---|
| Vertical fit | >0 | >0 | <=0 | <=0 | Item có chiều rộng = ColumnWidth, chiều cao = RowHeight |
| Vertical fill | >0 | >0 | >0 | <=0 | Item fill theo chiều rộng control (chia đều theo ColumnCount), cao = RowHeight |
| Horizontal fill | >0 | >0 | <=0 | >0 | Item fill theo chiều cao control (chia đều theo RowCount), rộng = ColumnWidth |
| Vertical AutomaticDimension | <=0 | <=0 | 1 | <=0 | Item 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ính | Nội dung |
|---|---|
ForeColor | Màu chữ / foreground |
BackColor | Màu nền |
BorderColor | Màu viền |
SelectedBackColor | Màu nền khi item selected |
SelectedBorder | Màu viền khi item selected |
BorderWidth | Độ to của viền |
BorderDashStyle | Kẻ viền bằng nét đứt |
nCornerRadius | Mứ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áo | Kế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
BravoPictureBoxvà 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
BravoLookupListControlKhi 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 |
dropExecute | Evaluator 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 dung | Mặc định |
|---|---|---|
/bUseVisualStyle | Control có áp chế độ màu sắc tự động hay không | True |
/colorTheme | Nhậ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 dung | Mặc định |
|---|---|---|
/ItemLayout/ForeColorIndex | Màu chữ | 0 |
/ItemLayout/BorderColorIndex | Màu viền | 1 |
/ItemLayout/SelectedBackColorIndex | Màu nền khi selected | 2 |
/ItemLayout/SelectedBorderColorIndex | Màu viền khi selected | 3 |
/ItemLayout/BackColorIndex | Màu nền | 4 |
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