Шаг 114 - Фильтр

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

114_1.gif (3537 b)

void CTestMemoView::OnButton32773() 
{
	// TODO: Add your command handler code here
	
}
Теперь надо решить как вводить фильтр. Давайте сделаем для него диалоговое окно из элемента Edit. Идея такова ввел слово и по полю Name отфильтровали записи. Создаем диалоговое окно.

114_2.gif (1718 b)

Теперь для этого окна нужен класс. Выделите диалогвое окно и запустите ClassWizard. Вам в ответ должны предложить создать класс, а вы согласиться. Когда спросят имя дайте ему имя СFiltrDialog. Теперь нужно создать переменную для элемента Edit. Опять выделите её и запустите ClassWizard. Переключитесь на Memder Variable, щелкните на Add Variable и дайте имя m_Filtr. Теперь в файле реализации TestMemoView.cpp необходимо подключить заголовок диалогового окна. Вот так.

.........
#include "TestMemoView.h"
#include "FiltrDialog.h"

#ifdef _DEBUG
.......
Вот теперь все приготовления сделаны и можно кодировать.
void CTestMemoView::OnButton32773() 
{
	CFiltrDialog cf;
	if (cf.DoModal()==IDOK)
	{
		CString filt="NAME = '";
		filt=filt+cf.m_Filtr;
		filt= filt +"' ";
		m_pSet->m_strFilter= filt; 
		m_pSet->Requery(); 
		UpdateData(FALSE);
	}
}
Сначала мы собираем строку для фильтра, она должна быть такая
ПОЛЕ = 'ЗНАЧЕНИЕ'

Устанавливаем m_strFilter, а дальше как обычно перечитать и обновить.

Когда будете проверять сделайте несколько групп одинаковых записей по полю NAME. У меня работает.


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