Màn hình này hiển thị dữ liệu của bảng một và dữ liệu của bảng nhiều ứng với dịng hiện hành trên bảng một. Dữ liệu cho màn hình gồm bảng một và bảng nhiều.
Cĩ thể cĩ các dạng :
III.1. Màn hình một-nhiều hai trang
Màn hình gồm các điều khiển cho bảng một, lưới cho bảng một và lưới cho bảng nhiều. Các điều khiển bảng một trên một tab của TabControl và tab cịn lại chứa lưới bảng một. Lưới bảng nhiều được đặt trên Form.
Bảng dữ liệu phía nhiều phải được khai báo và cĩ thể:
Được đọc theo trị cột khĩa bảng phía một khi bảng phía một thay đổi dịng làm việc và xuất ra lưới
Hoặc được lọc theo trị cột khĩa bảng phía một khi bảng phía một thay đổi dịng làm việc và xuất ra lưới (nếu đã được đọc tồn bộ từđầu)
Ví dụ: Xử lý bảng nhiều được đọc theo khĩa bảng một (khi số liệu bảng nhiều quá lớn) Private <bang_du_lieu> As <XL_TEN_BANG>
Private <bang_du_lieu_phia_nhieu> As <XL_TEN_BANG_NHIEU> Private Danh_sach As BindingManagerBase
Private Sub MH_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load ....
Call Danh_sach_CurrentChanged(sender, e) End Sub
Private Sub Xuat_luoi_<ten_bang_nhieu>()
LUOI_<TEN_BANG_NHIEU>.DataSource = <bang_du_lieu_phia_nhieu> End Sub
Private Sub danh_sach_CurrentChanged(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles danh_sach.CurrentChanged ...
Dim khoa As Integer = 0
If Not Them_moi AndAlso Danh_sach.Position >= 0 Then ...
khoa = Danh_sach.Current(<Khĩa>) End If
<bang_du_lieu_phia_nhieu> As New <XL_TEN_BANG_NHIEU> _
("điều kiện lọc theo khĩa bảng một") Xuat_luoi_<ten_bang_nhieu>()
End Sub
Ví dụ: Xử lý bảng nhiều được đọc hết và được lọc theo khĩa bảng một khi dịng hiện hành bảng một thay đổi (khi số liệu bảng nhiều khơng lớn)
Private <bang_du_lieu_phia_nhieu> As <XL_TEN_BANG_NHIEU> Private Sub MH_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load ....
<bang_du_lieu_phia_nhieu> As New <XL_TEN_BANG_NHIEU>() Xuat_luoi_<ten_bang_nhieu>()
Call Danh_sach_CurrentChanged(sender, e) End Sub
Private Sub Xuat_luoi_<ten_bang_nhieu>()
LUOI_<TEN_BANG_NHIEU>.DataSource = <bang_du_lieu_phia_nhieu> End Sub
System.EventArgs) Handles danh_sach.CurrentChanged ... Dim khoa As Integer = 0
If Not Them_moi AndAlso Danh_sach.Position >=0 Then ...
khoa As Integer = Danh_sach.Current(<Khĩa>) End If
<bang_du_lieu_phia_nhieu>.Loc_du_lieu("điều kiện lọc theo khĩa bảng một") End Sub
III.2. Màn hình một-nhiều ba trang
Màn hình cĩ TabControl ba tab : một tab chứa các điều khiển bảng một, một tab chứa lưới bảng một và một tab chứa lưới bảng nhiều. Cách thức xử lý cũng như trên.