Шаг 143.
Среда программирования Visual C++.
Приложение STUpload: создание диалогового окна Query Results
На этом шаге мы рассмотрим создание шаблона и класса диалога для окна Query Results.
- Создание шаблона диалога Query Results.
- Из галереи Components and Controls Gallery добавьте в проект элементы управления
Microsoft ADO Data Control, version 6.0 (OLE DB) и Microsoft DataGrid Control, Version 6.0 (OLE DB).
Убедитесь, что созданы все соответствующие классы.
- Пользуясь рисунком 1 в качестве образца, создайте шаблон диалогового окна Results с идентификатором
IDD_RESULTSDIALOG. Оно должно содержать элемент управления ADO Data Control с заданным по
умолчанию идентификатором IDC_ADODC1 и элемент DataGrid Control с идентификатором
IDC_DATAGRID1. Переименуйте кнопку ОК в Close, а кнопку Cancel удалите.
Рис.1. Шаблон диалога
- На вкладке Control диалогового окна ADO Data Control Properties задайте строку подключения
к источнику данных Microsoft OLE DB Provider for SQL Server. На вкладке Connection выберите сервер
Ваш SQL Server и базу данных Stocks.
- Снова откройте диалоговое окно ADO Data Control Properties и на вкладке RecordSource из
раскрывающегося списка Command Type выберите 1 - adCmdText. В поле Command Text (SQL) введите следующую команду:
SELECT * FROM pricehistory
Рис.2. Вкладка RecordSource
- Отредактируйте свойства элемента DataGrid. На вкладке Control сбросьте флажок AllowUpdate, а на вкладке
All для свойства DataSource задайте идентификатор IDC_ADODC1 элемента управления ADO Data Control.
Нажав CTRL+T, проверьте вид получившегося окна Query Results. Убедитесь, что в нем отображены
записи из таблицы цен базы данных Stocks.
Рис.3. Диалоговое окно Query Results
- Создание класса диалога CResultsDialog.
- В ClassWizard создайте класс CResultsDialog.
- На вкладке Member Variables добавьте переменные-члены, перечисленные в таблице 1.
Таблица 1. Переменные-члены класса CQueryDialog
Идентификатор |
Категория |
Тип переменной |
Имя переменной |
IDC_ADODC1 |
Control |
CAdodc |
m_adodc |
IDC_DATAGRID1 |
Control |
CDataGrid |
m_datagrid |
- Закройте ClassWizard. Откройте файл ResultsDialog.h и добавьте в
открытый раздел класса CResultsDialog следующие переменные.
CString m_strQuery;
CString m_strCaption;
Далее Вы реализуете функцию CResultsDialog::OnInitDialog() для инициализации диалогового окна
Query Results. Она помещает в поле со списком перечень ценных бумаг из открытого файла, выбирает
текущую бумагу, а также инициализирует элемент управления Date Time Picker, считывая из файла даты начала и конца периода.
- Инициализация диалогового окна Query Results.
- Чтобы включить класс C_Recordset, сгенерированный в результате добавления в проект элемента
управления ADO Data Control, поместите в начало файла ResultsDialog.cpp такую строку:
- Средствами ClassWizard создайте функцию CResultsDialog::OnInitDialog(). Замените строку
с комментарием //TODO следующим кодом:
m_adodc.SetRecordSource( m_strQuery );
m_adodc.Refresh();
C_Recordset cRS = m_adodc.GetRecordset();
long lRecs = cRS.GetRecordCount();
if( lRecs < 1 )
{
AfxMessageBox( "No records match this query" );
EndDialog( IDCANCEL );
}
m_datagrid.SetCaption( m_strCaption );
Текст измененного приложения можно взять здесь (128,1 Кб).
На следующем шаге мы рассмотрим обработку команды меню Query Database.
Предыдущий шаг
Содержание
Следующий шаг