Sdílet prostřednictvím


Naplnění seznamu druhou sadou záznamů (přístup k datům MFC)

Ve výchozím nastavení je zobrazení záznamů přidružené k jednomu objektu sady záznamů, jehož pole jsou mapována na ovládací prvky zobrazení záznamů. Někdy můžete chtít vložit ovládací prvek seznamu nebo pole se seznamem do zobrazení záznamu a vyplnit ho hodnotami z druhého objektu sady záznamů. Uživatel může pomocí seznamu vybrat novou kategorii informací, která se zobrazí v zobrazení záznamu. Toto téma vysvětluje, jak a kdy to udělat.

Tip

Mějte na paměti, že vyplnění pole se seznamem nebo seznamu ze zdroje dat může být pomalé. Proveďte opatření proti pokusu o vyplnění ovládacího prvku ze sady záznamů velkým počtem záznamů.

Model pro toto téma se skládá z primární sady záznamů, která vyplní ovládací prvky formuláře, zatímco sekundární sada záznamů vyplní seznam nebo pole se seznamem. Výběr řetězce ze seznamu způsobí, že se váš program znovu dotazuje na primární sadu záznamů na základě toho, co bylo vybráno. Následující postup používá pole se seznamem, ale platí stejně pro seznam.

Vyplnění pole se seznamem nebo seznamu z druhé sady záznamů

  1. Vytvořte objekt sady záznamů (CRecordset.

  2. Získejte ukazatel na objekt CComboBox pro ovládací prvek pole se seznamem.

  3. Vyprázdněte pole se seznamem jakéhokoli předchozího obsahu.

  4. Projděte všechny záznamy v sadě záznamů a volejte CComboBox::AddString pro každý řetězec z aktuálního záznamu, který chcete přidat do pole se seznamem.

  5. Inicializuje výběr v poli se seznamem.

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

Tato funkce používá druhou sadu záznamů, m_courseSetkterá obsahuje záznam pro každý nabízený kurz, a CComboBox ovládací prvek, m_ctlCourseListkterý je uložen ve třídě zobrazení záznamů.

Funkce získá m_courseSet z dokumentu a otevře ji. Pak vyprázdní m_ctlCourseList a posune m_courseSetse . U každého záznamu funkce volá členskou AddString funkci pole se seznamem a přidá hodnotu ID kurzu ze záznamu. Nakonec kód nastaví výběr pole se seznamem.

Viz také

Zobrazení záznamů (přístup k datům MFC)
Seznam ovladačů ODBC