FilterKey

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Là điều kiện sau WHERE của mệnh đề lấy dữ liệu từ bảng/view được khai báo trong thẻ Name.

Cú pháp

<root>
  <Tables>
    <Ten_bang>
      <FilterKey>Bieu_thuc</FilterKey>
    </Ten_bang>
  </Tables>
</root>

Ví dụ

Editor bảng mẹ của chứng từ dịch vụ:

<root>
  <Tables>
    <ParentTable>
      <Name>vB30AccDoc_EditSales</Name>
      <FilterKey>DocCode='DV'</FilterKey>
    </ParentTable>
  </Tables>
</root>

→ chỉ hiển thị các chứng từ có DocCode = 'DV' trong dữ liệu của vB30AccDoc_EditSales.

Ghi chú quan trọng

Bắt buộc với các form dùng chung bảng mẹ

Các DataEditor dùng chung ParentTable (các view của cùng 1 bảng base B30AccDoc hoặc B30BizDoc…) phải khai báo thêm FilterKey để phân biệt dữ liệu thuộc về form.

FormFilterKey của ParentTable
Cập nhật phiếu xuấtDocCode='PX'
Cập nhật phiếu thuDocCode='PT'

Không được dùng biểu thức nhúng

FilterKey của ParentTable không được phép dùng biểu thức nhúng {=...}.

  • Cú pháp trong biểu thức phải phù hợp với cú pháp SQL vì mệnh đề này được thêm vào phần WHERE của câu query
  • Từ v4.7.0.1, chương trình chặn các từ khóa SELECT, DELETE, UPDATE, INSERT, FROM, INNER JOIN, GROUP BY… trong FilterKey → Cơ chế lưu trữ B00Layout

FilterKey ở các ngữ cảnh khác

Ngữ cảnhÝ nghĩa
DataSource / bảngĐiều kiện WHERE khi lấy dữ liệu
BravoBindingMember / lookupKhi mở form thì chỉ hiển thị và tích chọn được các bản ghi thỏa mãn (tương đương zLoadFilterExpr ở B7)
SelectKeyCho hiển thị hết các bản ghi nhưng chỉ tích chọn được các bản ghi thỏa mãn (tương đương zPostFilterExpr ở B7)
ValidatorĐiều kiện dữ liệu của bảng truy vấn

Bravo 10

Bravo 10 bổ sung `<FilterCollection>` — cho phép khai báo nhiều filter có điều kiện, và DefaultFilterKey.

Liên quan

SelectKey · Name · DefaultFilterKey · Truy vấn dữ liệu Bravo 10 · BravoBindingMember