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 |
|---|---|
| LookupKey | Giá trị cột LookupKey trong B00Lookup |
| DataMember | Cột hiển thị dữ liệu |
| zLookupSource | Khai 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 |
zLookupBindingSource | Lấ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 |
| zCustomConnectionName | Kết nối đến Server khác |
Warning
Không khai báo đồng thời cả
zLookupSourcevàLookupKey— chương trình luôn ưu tiênLookupKey.
Nhóm thẻ — lọc dữ liệu
| Thẻ | Nội dung | Tương đương B7 |
|---|---|---|
| FilterKey | Khi mở form chỉ hiển thị và tích chọn được các bản ghi thỏa mãn | zLoadFilterExpr |
| SelectKey | Khi 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ãn | zPostFilterExpr |
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 B00Lookup | Nội dung |
|---|---|---|
zValueMember | ValueMember | Cột tìm kiếm khi gõ vào ô lookup (tìm theo mã) |
zDisplayTextMember | DisplayTextMember | Cột tìm kiếm theo kiểu ký tự |
zExtraMemberList | ExtraMemberList | Cột mở rộng hiển thị thêm ở màn hình show dữ liệu |
zDisplayTextFormat | DisplayTextFormat | Chuỗi định dạng hiển thị: {0} = cột ValueMember, {1} = cột DisplayMember |
zNewCommand | NewCommand | Tính năng thêm mới khi lookup |
zLinkCommand | LinkCommand | Tính năng mở LinkCommand khi lookup |
zNewCommand/zLinkCommandchỉ hiển thị khibShowCommand = True
bShowCommand
| Giá trị | Nội dung |
|---|---|
True | Luô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 |
False | Khô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-PartialValueMember | Cho 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-ChecklistValueMember | Chỉ cho chọn danh sách các giá trị, chọn được nhiều hơn 1 |
3-SuggestValueMember | Chỉ 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-SuggestDisplayMember | Chọ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 |
|---|---|
bAutoSwitchChecklistMode | Tự động chuyển đổi LookupMode giữa ExactValueMember/PartialValueMember/ChecklistValueMember khi gõ dấu phẩy. (Mặc định False) |
bAutoCheckMatchedValue | Bật/tắt tự động tích chọn giá trị ở dropdown với LookupMode = ChecklistValueMember |
bWaitLookupToCloseDropDown | True → 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) |
bLookupDistinct | Thê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 |
zLookupExcludedColumns | Danh sách các cột bỏ qua khi tìm kiếm (VD cột số / ngày giờ) |
bAlwaysOpenDropdown | Cho phép thả xuống khi người dùng nhập văn bản. (Mặc định False) |
zLookupCombineSeparator | Ký tự phân tách tìm kiếm “chuỗi-hoặc-chuỗi” |
Ghi chú theo phiên bản
| Version | Thay đổi |
|---|---|
| B8 | Hỗ trợ khai báo lookup trực tiếp từ layout, không cần thêm dòng trong B00Lookup |
| 4.5.5 | Hỗ trợ gõ tìm kiếm bằng ký tự % và _ như Bravo 7 |
| 4.5.8 | Hỗ trợ tìm display member dạng “chuỗi-hoặc-chuỗi” với zLookupCombineSeparator |
| 4.6.3 | Tìm đích danh ký tự % chỉ cần gõ ABC[%] thay vì %ABC[%]% |
| 5.1.0.1 | Hỗ 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ộtExtraMemberList.
Hiển thị trong Grid với HiddenValueMember
Note
Grid nhập liệu chỉ hiển thị
ValueMemberhoặcDisplayMember(nếu có) cho các cột dùng lookup có khai báoHiddenValueMember, không phụ thuộc vàozDisplayTextFormat— nội dung đầy đủ theozDisplayTextFormatchỉ áp dụng khi hiển thị tooltip.Hỗ trợ tìm kiếm các cột lookup với
HiddenValueMembertrong grid nhập liệu chỉ khi lookup có khai báobindingMemberschứaValueMemberhoặcDisplayMember.
Liên quan
BravoBindingMember · LookupKey · FilterKey · SelectKey · zLookupSource · BravoLookupList · B00 - Bảng hệ thống · bSuppressLookupEvents