DynamicColX

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Khai báo layout cột động cho các Grid.

Vì sao hữu ích?

Thay vì phải tạo chuỗi LAYOUT_XML gồm toàn bộ các cột từ thủ tục lưu như trước, chỉ cần khai báo khuôn mẫu trong layout và chương trình sẽ tự động quét các cột tương ứng trong bảng dữ liệu để dựng cột grid.

Hỗ trợ từVer 4.2.4.1

Cú pháp

<DynamicColX>
  <Name />
  <Pattern>Tên cột động%</Pattern>
  <Style>…</Style>
</DynamicColX>

Bắt buộc

  • Cột động khai báo với tên trắng <Name></Name>
  • Khuôn mẫu bằng <Pattern>like operator</Pattern> hoặc <PatternRegex>regular expression</PatternRegex>

Ví dụ

Explorer của phiếu thu:

<DynamicCol0>
  <Name />
  <Pattern>TotalOriginalAmount%</Pattern>
  <Style>BackColor:Red;</Style>
</DynamicCol0>
<DynamicCol1>
  <Name />
  <Pattern>TotalAmount%</Pattern>
  <Style>BackColor:Aqua;</Style>
</DynamicCol1>

Cơ chế

Cách nhặt cột

Mẫu cột động (A, B, C) được nhặt theo thứ tự từ bảng dữ liệu thành:
(A1, B1, C1), (A2, B2, C2) … (An, Bn, Cn)

Cột động có thể có nhiều nhóm ở các vị trí khác nhau trong grid. Ở ví dụ trên, nhóm màu đỏ TotalOriginalAmount% và nhóm màu xanh TotalAmount% sẽ được lặp lại theo các cột thực tế có trong bảng.

Tiêu đề cột động — UpdatedColumn() và ColumnName()

HàmTrả về
UpdatedColumn()Số thứ tự cột động
ColumnName()Tên cột động

Bắt buộc Expr="True"

Hai hàm này chỉ có tác dụng ngay khi đọc khai báo layout của grid, nên bắt buộc phải khai báo với expr="True".

Thay đổi từ v4.6.5.1 — quan trọng

Với cột động trong grid, có thể dùng UpdatedColumn() để lấy tên cột trong grid tại các biểu thức dùng tại chính cột đó: <Editor><Expr>, <Style><Expr>, <SumColumns><Expr> và khai báo <Text> khi không dùng expr="True".

Khai báo tại <Column_A>UpdatedColumn() trả vềHành vi
<Text>{=UpdateColumn()}</Text>'Column_A' (tên cột)✅ Refresh tiêu đề cho cột động khi dữ liệu thay đổi
<Text expr="True">{=UpdateColumn()}</Text>index cột độngTiêu đề cột cố định sau mỗi lần đọc layout

Gantt Chart

Gantt chart cho phép thực hiện evaluator khi người dùng click đúp / bấm Enter ở các cột dữ liệu thời gian của dòng nhóm.

Thay đổi từ v4.7.0.1

  • Khai báo tên cột động bằng PatternRegex hay Pattern sẽ tương tự nhau — chương trình tự động nhận diện khi dùng RegEx
  • Hỗ trợ các PatternRegex/Pattern tên cột động khi định dạng động theo biểu thức trong grid:
<Style_Test>
  <Name>CotDong%</Name>
  <Expr>IIF({=UpdateColumn()}&lt;0, 'ForeColor:Red;', '')</Expr>
</Style_Test>

Liên quan

Cols (Grid) · Styles · Grid dạng Gantt Chart · Bắt đầu với Expression · Grid - Tổng quan