Шаг 33 - Проект библиотека - Диалоговое окно - Авторы - Настройка

Итак, нам пора на диалоговое окно помещать элементы управления. Для этого нужно создать набор записей Set и связать его с диалоговым окном, смотрите "Шаг 26 - Диалог, Foreign Class и классы Recordset". Мы же ужа один раз запускали форму авторы, значит таблица авторы создалась. Она известна нам на этапе проектирования значит во всю можно использовать ClassWizard.

33_1.gif (9520 b)

Связываем класс с диалоговым окном, настраивает создание объекта. Все это описано ранее. Foreign Variable - m_pAuthor.У Вас должны выбираться переменные базы данных для связи с элементами управления.

33_2.gif (5258 b)

Итак, даем название диалоговому окну, расставляем элементы управления для полей.

33_3.gif (6142 b)

При старте окна мы должны попасть на первую запись.

BOOL CDialogAuthor::OnInitDialog() 
{
	......
	db.Close();

	try
	{
		m_pAuthor->MoveFirst();	// на первую 
	}
	catch(...)			// а вдруг даже первой нет
	{
		m_pAuthor->AddNew();
		m_pAuthor->Update();
		m_pAuthor->MoveFirst();	// упорно идем на первую
		UpdateData(FALSE);		// показать что там в первой
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

Нам нужна кнопка двигаться вперед. Давайте ее сделаем.

33_4.gif (4646 b)

Код будем писать, мол по записям вперед.

void CDialogAuthor::OnButtonNext() 
{
	try
	{
		m_pAuthor->MoveNext();	// вперед 
		if (m_pAuthor->IsEOF()) throw CString(""); // если это последняя то новая нужна 
		UpdateData(FALSE);	   	// показать что там 
	}
	catch(...)			// если последняя то создать новую
	{
		m_pAuthor->AddNew();
		m_pAuthor->Update();
		m_pAuthor->MoveLast(); 	// на последнюю
		UpdateData(FALSE);	   	// показать что там 
	}
}

Теперь есть ли записи, нет ли все будет одинаковое. Если записей нет то она будет создана. Если дошли до конца, то она опять будет создана. Только первое поле у нас счетчик. Его Access автоматически назначает. Значит надо его защитить от редактирования.

33_5.gif (7435 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 08.08.2001