Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Por padrão, uma vista de registo é associada a um único objeto de conjunto de registos, cujos campos são mapeados para os controlos da vista de registo. Às vezes, você pode querer colocar uma caixa de listagem ou controle de caixa de combinação em sua exibição de registro e preenchê-la com valores de um segundo objeto de conjunto de registros. O usuário pode usar a caixa de listagem para selecionar uma nova categoria de informações a serem exibidas na exibição de registro. Este tópico explica como e quando fazer isso.
Sugestão
Lembre-se de que o preenchimento de uma caixa de combinação ou caixa de listagem de uma fonte de dados pode ser lento. Tome precauções ao tentar preencher um controlo a partir de um recordset com um grande número de registos.
O modelo para este tópico consiste em um conjunto de registros primário que preenche os controles do formulário, enquanto um conjunto de registros secundário preenche uma caixa de listagem ou caixa de combinação. Selecionar uma cadeia de caracteres na caixa de listagem faz com que o programa consulte novamente o conjunto de registros primário com base no que foi selecionado. O procedimento seguinte utiliza uma caixa de combinação, mas aplica-se igualmente a uma caixa de listagem.
Para preencher uma caixa de combinação ou caixa de listagem a partir de um segundo conjunto de registros
Crie o objeto recordset (CRecordset.
Obtenha um ponteiro para o objeto CComboBox para o controle de caixa de combinação.
Esvazie a caixa de combinação de qualquer conteúdo anterior.
Percorra todos os registros no conjunto de registros, chamando CComboBox::AddString para cada cadeia de caracteres do registro atual que você deseja adicionar à caixa de combinação.
Inicialize a seleção na caixa de combinação.
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);
}
Essa função usa um segundo conjunto de registros, m_courseSetque contém um registro para cada curso oferecido, e um CComboBox controle, m_ctlCourseListque é armazenado na classe de exibição de registro.
A função obtém m_courseSet do documento e abre-o. Em seguida, esvazia m_ctlCourseList e percorre m_courseSet. Para cada registo, a função chama a função membro da caixa de combinação AddString para adicionar o valor do ID do curso a partir do registo. Finalmente, o código define a seleção da caixa de combinação.
Ver também
Vistas de Registos (acesso a dados MFC)
Lista de drivers ODBC