Bagikan melalui


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

  1. Buat objek recordset (CRecordset.

  2. Dapatkan penunjuk ke objek CComboBox untuk kontrol kotak kombo.

  3. Kosongkan kotak kombo dari konten sebelumnya.

  4. Pindahkan semua rekaman dalam kumpulan rekaman, memanggil CComboBox::AddString untuk setiap string dari rekaman saat ini yang ingin Anda tambahkan ke kotak kombo.

  5. 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

Tampilan Rekaman (Akses Data MFC)
Daftar Driver ODBC