На этом шаге мы рассмотрим. создание диалогового окна Query.
Начиная с этого шага, мы создадим в приложении STUpload меню Query Database,
которое позволит пользователю генерировать простой запрос к базе данных. Пользователь задает в диалоговом окне
Query наименование ценной бумаги, начальную и конечную даты и в ответ получает данные об изменении
цены на эту бумагу в период между указанными датами. Результаты запроса просматриваются в диалоги вом окне
Results, в котором имеется доступный только для чтения элемент DataGrid Control, связанный с
элементом ADO Data Control.
Пункт меню Query Database доступен, только если приложение STUpload находится в режиме
отображения истории изменения цены на какую-то бумагу. Этот пункт нужен пользователю, чтобы проверить
не находятся ли на сервере данные, которые он собирается туда загрузить. Поэтому диалоговое окно
Query по умолчанию открывается с текущими наименованием бумаги и датами начала и конца периода.
Предполагается, что Вы установили SQL Server и создали базу данных Stocks, как описано здесь.
- Создание шаблона диалога Query.
- Используя рисунок 1 в качестве образца, создайте шаблон диалогового окна Query Database с идентификатором
IDD_QUERYDIALOG, содержащий поле со списком и два элемента управления Date Time Picker.
(Чтобы найти их на панели инструментов Controls, руководствуйтесь всплывающей подсказкой.)
Рис.1. Диалоговое окно Query Database - Присвойте полю со списком идентификатор IDC_QUERY_FUND.
Убедитесь, что установлен флажок Sort на вкладке Styles. В поле Туре выберите Drop List. - Щелкните стрелку раскрывающегося списка. Размер области раскрывающегося списка можно изменять.
Перетащите границу этой области так, чтобы нижний ее край находился чуть выше кнопок
ОК и Cancel. - Присвойте элементу Date Time Picker идентификатор IDC_FROMDATE. На вкладке Styles в группе Format выберите
Short Date. Установите флажок Use Spin Control. - Таким же образом добавьте второй элемент Date Time Picker, присвоив ему идентификатор IDC_TODATE.
- Создание класса диалога CQueryDialog.
- Нажмите CTRL+W, чтобы открыть ClassWizard, и создайте класс CQueryDialog.
Рис.2. Создание класса CQueryDialog - На вкладке Member Variables добавьте переменные-члены, руководствуясь данными таблицы 1.
Таблица 1. Переменные-члены класса CQueryDialogИдентификатор Категория Тип переменной Имя переменной IDC_QUERY_FUND Value Int m_nFund IDC_QUERY_FUND Control CComboBox m_dtFund IDC_FROMDATE Value CTime m_fromdate IDC_FROMDATE Control CDateTimeCtrl m_dtFrom IDC_TODATE Value CTime m_todate IDC_TODATE Control CDateTimeCtrl m_dtTo
Рис.3. Добавленные переменные
Далее мы создадим функцию CQueryDialog::OnInitDialog(), инициализирующую диалоговое окно
Query Dialog. Она помещает в поле со списком перечень ценных бумаг из текущего открытого файла и
выбирает из списка текущую бумагу, а также инициализирует элемент управления Date Time Picker, подставляя
из файла даты начала и конца периода.
Текст измененного приложения можно взять здесь (74,2 Кб).
На следующем шаге мы рассмотрим инициализацию окна Query Dialog.