Wypełnianie pola listy z drugiego zestawu rekordów (dostęp do danych MFC)

Domyślnie widok rekordu jest skojarzony z pojedynczym obiektem zestawu rekordów, którego pola są mapowane na kontrolki widoku rekordów. Czasami możesz umieścić pole listy lub kontrolkę pola kombi w widoku rekordu i wypełnić ją wartościami z drugiego obiektu zestawu rekordów. Użytkownik może użyć pola listy, aby wybrać nową kategorię informacji do wyświetlenia w widoku rekordu. W tym temacie wyjaśniono, jak i kiedy to zrobić.

Napiwek

Należy pamiętać, że wypełnienie pola kombi lub pola listy ze źródła danych może być powolne. Podejmij środki ostrożności przed próbą wypełnienia kontrolki z zestawu rekordów z dużą liczbą rekordów.

Model dla tego tematu składa się z podstawowego zestawu rekordów, który wypełnia kontrolki formularza, a pomocniczy zestaw rekordów wypełnia pole listy lub pole kombi. Wybranie ciągu z pola listy powoduje ponowne zapytanie podstawowego zestawu rekordów w oparciu o to, co zostało wybrane. Poniższa procedura używa pola kombi, ale jest stosowana równie do pola listy.

Aby wypełnić pole kombi lub pole listy z drugiego zestawu rekordów

  1. Utwórz obiekt zestawu rekordów (CRecordset.

  2. Uzyskaj wskaźnik do obiektu CComboBox dla kontrolki pola kombi.

  3. Opróżnij pole kombi dowolnej poprzedniej zawartości.

  4. Przejdź przez wszystkie rekordy w zestawie rekordów, wywołując polecenie CComboBox::AddString dla każdego ciągu z bieżącego rekordu, który chcesz dodać do pola kombi.

  5. Zainicjuj zaznaczenie w polu kombi.

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);
}

Ta funkcja używa drugiego zestawu rekordów , m_courseSetktóry zawiera rekord dla każdego oferowanego kursu oraz kontrolkę CComboBox , m_ctlCourseListktóra jest przechowywana w klasie widoku rekordów.

Funkcja pobiera m_courseSet z dokumentu i otwiera ją. Następnie opróżnia m_ctlCourseList i przewija m_courseSetplik . Dla każdego rekordu funkcja wywołuje funkcję składową pola AddString kombi, aby dodać wartość identyfikatora kursu z rekordu. Na koniec kod ustawia zaznaczenie pola kombi.

Zobacz też

Widoki rekordów (dostęp do danych MFC)
Lista sterowników ODBC