Приложение 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_ADODC1ControlCAdodcm_adodc
    IDC_DATAGRID1ControlCDataGridm_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 такую строку:

       #include "_recordset.h"
    
  • Средствами 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.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий