Mengisi Kotak Daftar dari Kumpulan Rekaman Kedua (Akses Data MFC)
Secara default, tampilan rekaman dikaitkan dengan satu objek kumpulan rekaman, yang bidangnya dipetakan ke kontrol tampilan rekaman. Terkadang Anda mungkin ingin meletakkan kotak daftar atau kontrol kotak kombo dalam tampilan catatan Anda dan mengisinya dengan nilai dari objek kumpulan rekaman kedua. Pengguna bisa menggunakan kotak daftar untuk memilih kategori informasi baru untuk ditampilkan dalam tampilan rekaman. Topik ini menjelaskan bagaimana dan kapan harus melakukan itu.
Tip
Ketahuilah bahwa mengisi kotak kombo atau kotak daftar dari sumber data mungkin lambat. Berhati-hatilah untuk tidak mencoba mengisi kontrol dari kumpulan rekaman dengan sejumlah besar rekaman.
Model untuk topik ini terdiri dari kumpulan rekaman utama yang mengisi kontrol formulir Anda, sementara kumpulan rekaman sekunder mengisi kotak daftar atau kotak kombo. Memilih string dari kotak daftar menyebabkan program Anda mengkueri ulang kumpulan rekaman utama berdasarkan apa yang dipilih. Prosedur berikut menggunakan kotak kombo tetapi berlaku sama untuk kotak daftar.
Untuk mengisi kotak kombo atau kotak daftar dari kumpulan rekaman kedua
Buat objek recordset (CRecordset.
Dapatkan penunjuk ke objek CComboBox untuk kontrol kotak kombo.
Kosongkan kotak kombo dari konten sebelumnya.
Pindahkan semua rekaman dalam kumpulan rekaman, memanggil CComboBox::AddString untuk setiap string dari rekaman saat ini yang ingin Anda tambahkan ke kotak kombo.
Inisialisasi pilihan dalam kotak kombo.
void CSectionForm::OnInitialUpdate()
{
// ...
// Fill the combo box with all of the courses
CENROLLDoc* pDoc = GetDocument();
if (!pDoc->m_courseSet.Open())
return;
// ...
m_ctlCourseList.ResetContent();
if (pDoc->m_courseSet.IsOpen())
{
while (!pDoc->m_courseSet.IsEOF() )
{
m_ctlCourseList.AddString(
pDoc->m_courseSet.m_CourseID);
pDoc->m_courseSet.MoveNext();
}
}
m_ctlCourseList.SetCurSel(0);
}
Fungsi ini menggunakan recordset kedua, m_courseSet
, yang berisi rekaman untuk setiap kursus yang ditawarkan, dan CComboBox
kontrol, m_ctlCourseList
, yang disimpan di kelas tampilan rekaman.
Fungsi mendapatkan m_courseSet
dari dokumen dan membukanya. Kemudian menggulir m_ctlCourseList
dan menggulir melalui m_courseSet
. Untuk setiap rekaman, fungsi memanggil fungsi anggota kotak AddString
kombo untuk menambahkan nilai ID kursus dari rekaman. Terakhir, kode mengatur pilihan kotak kombo.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk