Итак, у нас есть навигатор. Давайте посмотрим, как он будет работать с обычным проектом. Создаем проект с именем TestDao1 на базе диалогового окна. Создадим некую базу данных. Имя у нее TestDAO1, а в ней таблица Piple. Вот она.
Добавляем наш класс из компонентов.
Подключаем описание его к классу диалога.
/////////////////////////// // CTestDao1Dlg dialog #include "DaoNavigator.h" class CTestDao1Dlg : public CDialog { // Construction public: CTestDao1Dlg(CWnd* pParent = NULL); // standard constructor CDaoNavigator cNavigator; // Dialog Data
Создаем набор записей на основе таблице в базе данных.
Теперь этот набор записей как Foreig Class для диалогового окна, ну и стандартный код.
CTestDao1Dlg::CTestDao1Dlg(CWnd* pParent /*=NULL*/) : CDialog(CTestDao1Dlg::IDD, pParent) { m_pSet = new CSet(); m_pSet->Open(); } ...... void CTestDao1Dlg::OnDestroy() { CDialog::OnDestroy(); delete m_pSet; }
В OnInitDialog настраиваем навигатора.
BOOL CTestDao1Dlg::OnInitDialog() { CDialog::OnInitDialog(); cNavigator.SetRecordset(m_pSet); ...... }
Ну а теперь элементы управления на диалоговое окно, кнопки, код к ним.
void CTestDao1Dlg::OnButtonFirst() { SaveData(); cNavigator.OnButtonFirst(); UpdateData(FALSE); } void CTestDao1Dlg::OnButtonLast() { SaveData(); cNavigator.OnButtonLast(); UpdateData(FALSE); } void CTestDao1Dlg::OnButtonNext() { SaveData(); cNavigator.OnButtonNext(); UpdateData(FALSE); } void CTestDao1Dlg::OnButtonPrev() { SaveData(); cNavigator.OnButtonPrev(); UpdateData(FALSE); }
Функция SaveData Вам известна из прошлых шагов. Как видите применение класса навигации просто сэкономило нам время. Самое главное всегда его применять, если в нем ошибка исправить надо будет один раз, в одном классе.