UniqueKey

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Kiểm tra trùng dữ liệu ngay trên màn hình nhập liệu ở các máy client (không cần đợi tới lúc lưu).

Cú pháp

<root>
  <Tables>
    <Ten_bang>
      <UniqueKey>
        <Ten_Unique>Danh_sach_ten_truong</Ten_Unique>
      </UniqueKey>
    </Ten_bang>
  </Tables>
</root>

Khi nào việc kiểm tra được thực thi?

  • ✅ Khi người dùng gõ giá trị
  • ✅ Khi thêm dòng mới trong Grid với giá trị ngầm định của cột
  • ✅ Khi thêm dòng mới bằng BravoAddRowEvaluator
  • ⚠️ Khi merge dòng bằng BravoServerConstraint → chương trình căn cứ vào thẻ checkUnique để thực thi kiểm tra trùng (check trùng giữa dữ liệu merge vào với dữ liệu đang có ở bảng đích)

Ba cách khai báo tính duy nhất

CáchNơi khai báo
1Thẻ <UniqueKey> của bảng
2Thuộc tính <Unique> / <UniqueKey> của cột trong TempColumns
3Thuộc tính unique của cột khi thiết kế CSDL

Ví dụ cách 2:

<TempColumns>
  <CustomerCode>
    <UniqueKey>True</UniqueKey>
  </CustomerCode>
</TempColumns>

Ghi chú

Unique nhiều cột

Chỉ thực hiện kiểm tra Unique với khai báo <UniqueKey> của một bảng có nhiều hơn 1 cột khi và chỉ khi tất cả các giá trị của các cột đều khác trắng.

Tương tác với copy

Khi F2 hoặc Ctrl+F2 chương trình bỏ qua tất cả các trường có khai báo Unique. Nếu khai báo CopyMode = Include thì copy tất cả các cột trong CopyList/CopyListNew mà không kiểm tra Unique.

Liên quan

TempColumns · CopyMode · checkUnique · BravoUniqueKeyValidator · BravoServerConstraint