Создание приложения ODBC
Реферат - Компьютеры, программирование
Другие рефераты по предмету Компьютеры, программирование
ка) и добавьте подпункты - &ID_JOB и &JOB_NAME (с именами S_JOB_ID и S_JOB_DESC, а также соответствующими подсказками типа Sort by job_id\nJOB_ID sort).
Рис. 17. Окно свойств элементов меню
После того, как элементы меню созданы и им присвоены соответствующие идентификаторы, необходимо создать обработчик соответствующих команд (воспользуйтесь ClassWizard аналогично построению функций для кнопок).
//Сортировка
void CPrimView::OnSortJobId()
{
OnSort("job_id");
}
void CPrimView::OnSortJobDesc()
{
OnSort("job_desc");
}
Добавьте в класс CPrimView функцию OnSort, непосредственно осуществляющую сортировку по записям.
//Сортировка по записи
Рис. 18
void CPrimView::OnSort(CString szText)
{
m_pSet->Close ();
m_pSet->m_strSort=szText;
m_pSet->Open();
UpdateData(FALSE);
}
- Поиск информации в базе данных.
Необходимо потратить некоторое время на модификацию меню и/или панели инструментов, прежде чем переходить непосредственно к поиску. Добавим кнопку. Для того чтобы запросить у пользователя, что именно требуется найти, необходимо создать небольшое диалоговое окно. В окне Resource View щелкните правой кнопкой мыши на папке Dialog и выберите из контекстного меню Insert Dialog.
Рис. 19. Свойства блока диалога
Наберите IDD_DLG_FIND в поле ID. Далее следует дать этому диалоговому окну более содержательный заголовок. Наберите "Поиск информации в базе данных" в поле ввода Caption (Заголовок), а затем нажмите кнопку Close, расположенную в правом верхнем углу окна, чтобы завершить, ввод изменений.
Теперь нам необходимо добавить один элемент управления Static Text и связанный с ним элемент управления Edit Box, чтобы завершить создание блока диалога. Последняя часть работы для этого диалогового окна установить свойства элемента управления Edit Box. Щелкните правой кнопкой мыши на этом элементе управления и выберите Properties из контекстного меню. Измените свойство ID в диалоговом окне Edit Properties (Свойства текстового поля) на IDC_RECORD_FIND. Нажмите кнопку Close. Теперь при нажатой клавише еще раз дважды щелкните на элементе управления Edit Box, появится диалоговое окно Add Member Variable, которое вы и ожидали увидеть. Наберите m_Job в поле Member variable name. Убедитесь, что поле Category содержит Value, а поле Variable Type CString. Нажмите кнопку ОК, чтобы добавить компонентную переменную.
Осталось создать оболочку и саму функцию OnRecordFind() (просмотрите примечания ниже по тексту):
void CPrimView::OnRecordFind()
{CDBVariant varBookmark;
// Создаем экземпляр диалогового окна
CFindJob dlgFind;
// Нашли соответствующую запись?
BOOL bFound = FALSE;
// Расположение закладки CDBVariant.varBookmark;
// Отображаем диалоговое окно и определяем,
// какую кнопку пользователю нажимать для выхода
if (dlgFind.DoModal () ==IDOK) {
//Сохраняем текущую позицию, если закладки поддерживаются
if(m_pSet->CanBookmark())
m_pSet->GetBookmark(varBookmark);
// Идем к началу
m_pSet->MoveFirst(); }
while (!m_pSet->IsEOF() ^ bFound)
{
// Проверяем, равны ли значения
m_job_desc.CompareNoCase(dlgFind.m_Job)==0)">if(m_pSet->m_job_desc.CompareNoCase(dlgFind.m_Job)==0)
bFound = TRUE;
else
// Переходим к следующей
m_pSet->MoveNext();
}
if (bFound)
{
//Отображаем данные о новой записи
UpdateData(FALSE);
} else
{
// Отображаем сообщение об ошибке, если запись не найдена
MessageBox("Запись не найдена",
"Ошибка",
MB_OK | MB_ICONERROR) ;
// Восстанавливаем текущую позицию,
// если база данных поддерживает закладки
if(m_pSet->CanBookmark())
m_pSet->SetBookmark(varBookmark);
else
//В противном случае переходим к первой записи
m_pSet->MoveFirst();
UpdateData(FALSE);
}}
Примечание:
#include.FindJob,.#include,