Bản Đồ Lâm NghiệpGIS · Lâm nghiệp Việt Nam

Thiết kế form nhập nhanh thuộc tính trong QGIS: danh sách chọn, giá trị tự điền

Thiết kế Attributes Form trong QGIS: danh sách chọn Value Map, diện tích và tọa độ tự điền, ô bắt buộc, đính kèm ảnh, để nhập thuộc tính lô rừng nhanh.

Admin 06/11/2026 6 phút đọc
Thiết kế form nhập nhanh thuộc tính trong QGIS: danh sách chọn, giá trị tự điềnQGIS

Vẽ xong một lô rừng, hộp thuộc tính hiện ra với một loạt ô trống: tiểu khu, khoảnh, lô, loại đất loại rừng, diện tích, ngày cập nhật… Gõ tay từng ô cho hàng trăm lô thì vừa chậm vừa sinh lỗi: người gõ TXN, người gõ txn, người gõ Txn, diện tích nhẩm tay sai. QGIS cho thiết kế lại hộp nhập đó: ô nào chọn từ danh sách, ô nào tự tính, ô nào bắt buộc. Làm một lần cho lớp, dùng mãi về sau.

Đây là bài 9, bài cuối trong series Số hoá và tạo dữ liệu bản đồ lâm nghiệp trong QGIS.

Thiết kế form nhập nhanh thuộc tính trong QGIS: danh sách chọn, giá trị tự điền

Thiết kế form nhập nhanh thuộc tính trong QGIS: danh sách chọn, giá trị tự điền

Mở chỗ thiết kế form

Nhấp phải lớp, chọn Properties…, mở tab Attributes Form. Bên trái là danh sách trường, chọn một trường thì bên phải hiện các thiết lập của trường đó. Ba nhóm thiết lập quan trọng nhất:

  • Widget Type — kiểu ô nhập: gõ tự do, chọn từ danh sách, chọn ngày, đính kèm ảnh…
  • Defaults — giá trị tự điền khi tạo đối tượng mới.
  • Constraints — điều kiện bắt buộc: không được để trống, không được trùng.

Thiết lập xong bấm OK. Từ lần vẽ tiếp theo, hộp thuộc tính hiện theo thiết kế mới.

Danh sách chọn thay cho gõ tay (Value Map)

Dùng cho trường có tập giá trị cố định: loại đất loại rừng, nguồn gốc rừng, chủ rừng, tên thôn.

  1. Chọn trường, ở Widget Type chọn Value Map.
  2. Nhập từng cặp Value (giá trị lưu vào dữ liệu) và Description (chữ hiện trong danh sách cho người nhập).
  3. Có sẵn danh sách trong một lớp hoặc bảng khác thì bấm Load Data from Layer để nạp, không phải gõ lại.

Ví dụ minh hoạ cho trường nguồn gốc rừng (mã do đơn vị tự quy ước, hãy theo bảng mã đơn vị bạn đang dùng):

Value (lưu vào dữ liệu)

Description (hiện trong danh sách)

1

Rừng tự nhiên

2

Rừng trồng

3

Đất chưa có rừng

Người nhập chỉ chọn từ danh sách — không ai gõ sai, không có biến thể viết hoa viết thường, và về sau lọc, thống kê theo trường này không sót dòng nào.

Giá trị tự điền (Default value)

Ở mục Defaults, ô Default value nhận một biểu thức QGIS. Những biểu thức hay dùng:

Trường

Biểu thức

Kết quả

Diện tích (ha)

round($area / 10000, 2)

Diện tích lô, làm tròn 2 chữ số

Chiều dài (m)

round($length, 1)

Chiều dài tuyến đường, suối

Tọa độ X, Y của điểm

$x và $y

Tọa độ điểm vừa chấm

Tọa độ tâm lô

X(pole_of_inaccessibility($geometry, 1)) và Y(…) tương tự

Điểm luôn nằm bên trong lô, kể cả lô hình chữ U, lô cong

Ngày cập nhật

now()

Thời điểm tạo đối tượng

Số thứ tự

coalesce(maximum("ID"), 0) + 1

Số lớn nhất hiện có cộng một

Với các trường tính từ hình dạng (diện tích, chiều dài, tọa độ tâm), tích thêm ô Apply default value on update: sửa ranh lô bằng Vertex Tool thì diện tích tự tính lại, không bao giờ lệch với hình vẽ.

Lưu ý quan trọng: Biểu thức diện tích chỉ đúng khi lớp ở hệ tọa độ đơn vị mét như VN-2000. Lớp ở WGS 84 sẽ cho số vô nghĩa — xem bài Tạo lớp điểm, đường, vùng mới và thiết kế trường thuộc tính chuẩn.

Tâm lô dùng pole_of_inaccessibility thay vì centroid vì tâm hình học của một lô cong queo có thể rơi ra ngoài lô — đặt nhãn số hiệu lô vào đó sẽ nằm nhầm sang lô bên cạnh.

Ô bắt buộc và chống trùng (Constraints)

  • Not null: không cho để trống — dùng cho số hiệu tiểu khu, khoảnh, lô.
  • Unique: không cho trùng — dùng cho trường mã lô duy nhất.
  • Expression: điều kiện tuỳ ý, ví dụ diện tích phải lớn hơn 0: "dtich" > 0.

Ô vi phạm điều kiện sẽ báo đỏ ngay trong hộp nhập. Chọn mức Enforce để chặn không cho lưu khi còn ô sai.

Đính kèm ảnh thực địa (Attachment)

Trường kiểu Text đặt Widget Type là Attachment: trong hộp nhập có nút chọn ảnh, trường lưu đường dẫn tới file ảnh. Hợp cho lớp điểm điều tra, điểm bẫy ảnh, điểm vi phạm. Nên để ảnh trong cùng thư mục dự án và chọn lưu đường dẫn tương đối, để chép cả thư mục sang máy khác vẫn mở được ảnh.

Ẩn bớt trường không cần nhập

Trường nào đã tự điền (diện tích, tọa độ, ngày) thì không cần hiện trong hộp nhập. Chọn trường, đặt Widget Type là Hidden. Hộp nhập chỉ còn vài ô thật sự cần người điền — nhanh hơn hẳn khi số hoá cả tiểu khu.

Dùng lại form cho lớp khác

Form được lưu trong kiểu hiển thị (style) của lớp. Thiết kế xong một lớp lô rừng chuẩn, vào Properties ▸ Style ▸ Save Style… lưu ra file .qml. Lớp lô rừng khác mở ra chỉ cần Load Style… chọn file đó — có ngay toàn bộ danh sách chọn, giá trị tự điền và điều kiện.

Lỗi thường gặp

  • Diện tích tự điền ra 0 hoặc số rất nhỏ: lớp ở hệ WGS 84. Đưa lớp về VN-2000.
  • Sửa ranh lô mà diện tích không đổi: chưa tích Apply default value on update.
  • Danh sách chọn hiện số thay vì chữ trong bảng thuộc tính: bình thường — dữ liệu lưu Value, chỉ hộp nhập hiện Description. Trong bảng thuộc tính, bật lại hiển thị theo widget để xem chữ.
  • Gửi lớp cho người khác, họ mở ra không có form: form nằm trong style của dự án. Gửi kèm file .qml, hoặc lưu style mặc định vào GeoPackage (Save Style ▸ In Database).

Câu hỏi thường gặp

Form này có dùng được trên điện thoại khi đi thực địa không? Có. Các ứng dụng thu thập dữ liệu trên điện thoại đọc dự án QGIS như QField dùng lại đúng form đã thiết kế: danh sách chọn, ô bắt buộc, chụp ảnh đính kèm.

Biểu thức số thứ tự có bị trùng khi nhiều người cùng nhập không? Có thể, vì mỗi người tính trên bản dữ liệu của mình. Nhiều người cùng nhập thì đặt thêm điều kiện Unique, hoặc ghép mã người nhập vào số thứ tự.

Bài tiếp theo

Bảng thuộc tính QGIS: mở, lọc, sắp xếp, tùy chỉnh cột

―――

Bài viết biên soạn lại từ tài liệu tập huấn "Ứng dụng QGIS trong quản lý tài nguyên rừng" – Dự án Quản lý rừng bền vững và Bảo tồn đa dạng sinh học (VFBC/USAID), Quảng Trị 2024. Tác giả: Vũ Văn Thái.

Bài liên quan