Поделиться через


Заполнение списка из второго набора записей

По умолчанию представление записей связывается с одним объектом набора записей, поля которого сопоставляются элементам управления представления.В некоторых случаях в представлении записей размещается элемент управления "список" или "поле со списком", который заполняется значениями из второго объекта набора записей.В списке можно выбрать категорию сведений, отображаемых в представлении записей.В этом разделе описывается порядок заполнения списка.

СоветСовет

Обратите внимание, что процесс заполнения списка или поля со списком может выполняться медленно.Учитывайте этот факт при заполнении элемента управления данными из набора с большим числом записей.

В примере этого раздела первый набор записей используется для заполнения элементов управления формы, а второй — для заполнения списка или поля со списком.На основании выбранной в списке строки выполняется запрос первого набора записей.В следующей процедуре используется поле со списком (аналогичным образом может использоваться список).

Заполнение поля со списком или списка из второго набора записей

  1. Создайте объект набора записей (CRecordset для ODBC или CDaoRecordset для DAO).

  2. Получите указатель на объект CComboBox для элемента управления "поле со списком".

  3. Очистите поле со списком.

  4. Просмотрите все записи в наборе. Для каждой строки текущей записи, которую необходимо добавить в поле со списком, вызовите метод CComboBox::AddString.

  5. Инициализируйте выбор элементов в поле со списком.

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

В этой функции используется второй набор записей m_courseSet, в котором содержатся записи по всем предлагаемым курсам, а также элемент управления m_ctlCourseList типа CComboBox, который хранится в классе представления записей.

В функции выполняется получение набора m_courseSet из документа и его открытие.После этого очищается элемент управления m_ctlCourseList и выполняется прокрутка набора m_courseSet.Чтобы добавить идентификатор курса, для каждой записи вызывается функция-член AddString поля со списком.После этого задается выбор элементов поля со списком.

См. также

Основные понятия

Представления записей

Список драйверов ODBC