BravoLookupBox

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Khai báo các control nhập kiểu lựa chọn giá trị từ cơ sở dữ liệu (tra cứu / lookup).

Đây là control phức tạp và quan trọng nhất trong Bravo.

Cú pháp

<Ten_Control>
  <ClassName>BravoLookupBox</ClassName>
  <DataMember>Ten_truong</DataMember>
  <Row>So_thu_tu_dong</Row>
  <Column>So_thu_tu_cot</Column>
  <bindingMembers>
    <Ten_cot_nguon>Ten_cot_dich</Ten_cot_nguon>
  </bindingMembers>
  <LookupKey>Customer</LookupKey>
  <SelectKey>Bieu_thuc</SelectKey>
</Ten_Control>

Nhóm thẻ — nguồn dữ liệu

ThẻNội dung
LookupKeyGiá trị cột LookupKey trong B00Lookup
DataMemberCột hiển thị dữ liệu
zLookupSourceKhai báo bảng lookup trực tiếp từ layout — không cần tạo dòng trong B00Lookup. Tương đương cột LookupTable
zLookupBindingSourceLấy nguồn dữ liệu lookup từ một bảng/view đang nhập liệu: <zLookupBindingSource>tên bảng|view|alias</zLookupBindingSource>. Phải bỏ trắng zLookupSource. Hỗ trợ từ v5.1.0.1
zCustomConnectionNameKết nối đến Server khác

Warning

Không khai báo đồng thời cả zLookupSource và LookupKey — chương trình luôn ưu tiên LookupKey.

Nhóm thẻ — lọc dữ liệu

ThẻNội dungTương đương B7
FilterKeyKhi mở form chỉ hiển thị và tích chọn được các bản ghi thỏa mãnzLoadFilterExpr
SelectKeyKhi mở form hiển thị hết các bản ghi nhưng chỉ tích chọn được bản ghi thỏa mãnzPostFilterExpr

Nhóm thẻ — binding giá trị

bindingMembers

<bindingMembers>
  <Ten_cot1>Ten_cot2</Ten_cot1>
</bindingMembers>
VếÝ nghĩa
Ten_cot1 (tên thẻ)Cột ở bảng dữ liệu lookup (khai báo tại cột LookupTable trong B00Lookup hoặc bảng trong zLookupSource)
Ten_cot2 (giá trị)Cột của bảng dữ liệu hiện tại nhận giá trị

Binding có điều kiện

Trường hợp muốn binding theo điều kiện → dùng Eval có ClassName BravoBindingMember.

Nhóm thẻ — cấu hình lookup trực tiếp trên layout

(Chỉ dùng khi khai báo lookup trực tiếp từ layout — tương đương các cột trong B00Lookup)

ThẻTương đương cột B00LookupNội dung
zValueMemberValueMemberCột tìm kiếm khi gõ vào ô lookup (tìm theo mã)
zDisplayTextMemberDisplayTextMemberCột tìm kiếm theo kiểu ký tự
zExtraMemberListExtraMemberListCột mở rộng hiển thị thêm ở màn hình show dữ liệu
zDisplayTextFormatDisplayTextFormatChuỗi định dạng hiển thị: {0} = cột ValueMember, {1} = cột DisplayMember
zNewCommandNewCommandTính năng thêm mới khi lookup
zLinkCommandLinkCommandTính năng mở LinkCommand khi lookup

zNewCommand / zLinkCommand chỉ hiển thị khi bShowCommand = True

bShowCommand

Giá trịNội dung
TrueLuôn hiển thị các chức năng command (nếu có khai báo NewCommand/LinkCommand). Mặc định khi lookup từ B00Lookup
FalseKhông hiển thị. Mặc định khi lookup trực tiếp từ layout (dùng zLookupSource)

Nhóm thẻ — hành vi tìm kiếm

LookupMode

Giá trịNội dung
0-ExactValueMember(mặc định) Tìm chính xác giá trị đang gõ, chỉ chọn được 1 giá trị
1-PartialValueMemberCho phép gõ một phần các ký tự đầu của mã — thường dùng trong báo cáo
2-ChecklistValueMemberChỉ cho chọn danh sách các giá trị, chọn được nhiều hơn 1
3-SuggestValueMemberChỉ cho chọn 1 giá trị nhưng hiển thị mã và cho phép gõ lại thành giá trị khác
4-SuggestDisplayMemberChọn 1 giá trị và hiển thị giá trị Display, đồng thời cho phép gõ lại (VD ô đối tượng thuế)

Các cờ hành vi

ThẻNội dung
bAutoSwitchChecklistModeTự động chuyển đổi LookupMode giữa ExactValueMember/PartialValueMember/ChecklistValueMember khi gõ dấu phẩy. (Mặc định False)
bAutoCheckMatchedValueBật/tắt tự động tích chọn giá trị ở dropdown với LookupMode = ChecklistValueMember
bWaitLookupToCloseDropDownTrue → khi người dùng gõ nhanh display member và Enter trước khi dropdown tìm xong thì không đóng được dropdown. (Mặc định False)
bLookupDistinctThêm mệnh đề DISTINCT cho câu query để loại trừ giá trị trùng. ⚠️ Chỉ dùng khi thực sự cần vì DISTINCT có thể làm chậm
zLookupExcludedColumnsDanh sách các cột bỏ qua khi tìm kiếm (VD cột số / ngày giờ)
bAlwaysOpenDropdownCho phép thả xuống khi người dùng nhập văn bản. (Mặc định False)
zLookupCombineSeparatorKý tự phân tách tìm kiếm “chuỗi-hoặc-chuỗi”

Ghi chú theo phiên bản

VersionThay đổi
B8Hỗ trợ khai báo lookup trực tiếp từ layout, không cần thêm dòng trong B00Lookup
4.5.5Hỗ trợ gõ tìm kiếm bằng ký tự % và _ như Bravo 7
4.5.8Hỗ trợ tìm display member dạng “chuỗi-hoặc-chuỗi” với zLookupCombineSeparator
4.6.3Tìm đích danh ký tự % chỉ cần gõ ABC[%] thay vì %ABC[%]%
5.1.0.1Hỗ trợ zLookupBindingSource

zLookupCombineSeparator — ví dụ

Khai báo zLookupCombineSeparator = + và gõ chuỗi tìm kiếm công+nghệ → lookup tìm các kết quả chứa “công” cùng các kết quả chứa “nghệ”, như “Công dân” và “Nghệ An”.

Warning

Chế độ này bắt buộc phải khai báo DisplayMember, và có thể khai báo để tìm cả các cột ExtraMemberList.

Hiển thị trong Grid với HiddenValueMember

Note

Grid nhập liệu chỉ hiển thị ValueMember hoặc DisplayMember (nếu có) cho các cột dùng lookup có khai báo HiddenValueMember, không phụ thuộc vào zDisplayTextFormat — nội dung đầy đủ theo zDisplayTextFormat chỉ áp dụng khi hiển thị tooltip.

Hỗ trợ tìm kiếm các cột lookup với HiddenValueMember trong grid nhập liệu chỉ khi lookup có khai báo bindingMembers chứa ValueMember hoặc DisplayMember.

Liên quan

BravoBindingMember · LookupKey · FilterKey · SelectKey · zLookupSource · BravoLookupList · B00 - Bảng hệ thống · bSuppressLookupEvents