Использование конструктора Visual Basic 6.0 Data Environment

Андрей Колесов, Ольга Павлова

Пример 1. Установление связи с данными и создание простой команды при помощи конструктора Data Environment и окна Data View

Пример 2. Создание связанной с данными формы при помощи метода drag-and-drop

Пример 3. Создание простого отчета с данными

 

В этой статье мы покажем основные возможности нового конструктора Data Environment, включенного в состав Visual Basic 6.0 и предназначенного для работы с данными. На трех примерах мы последовательно рассмотрим вопросы:

  • использования визуальных средств для работы с базами данных;
  • использования конструктора Data Environment Designer для создания команды доступа к данным;
  • создания связанных с данными формы и отчета при помощи метода drag-and-drop
  • написания ADO-кода для управления связанной с данными формой.

Пример 1. Установление связи с данными и создание простой команды при помощи конструктора Data Environment и окна Data View

На данном примере мы продемонстрируем работу с конструктором Visual Basic 6.0 Data Environment для установления связи с данными OLE DB. Для выполнения примера можно использовать базу данных NorthWind, поставляемую вместе с Visual Basic, или базу данных Pubs, поставляемую с Microsoft SQL Server.

В ходе работы мы создадим простую команду для иерархических наборов записей, которая ссылается на три таблицы, соответствующие одной из этих баз данных. Если мы выберем базу данных Northwind, то установим ссылки к таблицам Customers, Orders и Order_Details, а если базу данных Pubs — то к таблицам Authors, TitleAuthor и Titles. Обе базы данных устанавливают взаимосвязи между таблицами, чтобы логически связать их. Использование двух различных источников данных имеет лишь небольшие различия, как будет видно дальше. Для этого мы будем отмечать шаги, относящиеся только к конкретной базе данных, с помощью индексов N (Northwind) и P (Pubs) соответственно.

Шаг 1. Откройте Visual Basic 6.0 и во вкладке New диалогового окна New Project выберите шаблон Data Project (рис. 1).

Шаг 2. В окне Project Explorer дважды щелкните DataEnvironment1 в папке Designers, в результате чего в рабочее пространство Visual Basic загрузится конструктор Data Environment, показанный на рис. 2.

Шаг 3. Щелкните правой кнопкой мыши на элементе Connection1 в конструкторе Data Environment, а затем — на команде Properties. После этого на экран выведется окно Data Link Properties, которое мы будем использовать для установления связи с базой данных (рис. 3).

Шаг 4N. Работа с базой данных Northwind. Во вкладке Provider дважды щелкните на опции Microsoft Jet 3.51 OLE DB Provider — откроется вкладка Connection (рис. 4). Выберите необходимую базу данных, щелкнув на кнопке Browse. Для нашего примера найдем базу данных NorthWind (обычно она хранится по адресу C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb). Выделим ее и затем щелкнем по кнопке Open.

Шаг 4P. Работа с базой данных Pubs. Во вкладке Provider дважды щелкните на опции OLE DB Provider for SQL Server — откроется вкладка Connection. Введите имя используемого вами SQL-сервера, свой идентификатор пользователя (ID) и пароль.

Шаг 5. Сейчас у вас уже установлена связь с выбранной вами базой данных. Чтобы протестировать ее, щелкните на кнопке Test Connection. По окончании тестирования VB выведет на экран окно сообщения Test connection succeeded, где вам нужно щелкнуть на кнопке OK. Затем повторно щелкните на кнопке OK для закрытия окна Data Link Properties.

Шаг 6. Теперь щелкните на значке Data View Window на верхней панели инструментов, чтобы открыть окно Data View, где дважды щелкните на элементе Connection1. VB развернет дерево, отображающее связь с базой данных, показав категории элементов, которые содержатся внутри него. В нашем примере дерево содержит два элемента — Tables и Views, как показано на рис. 5.

Шаг 7. Дважды щелкните на папке Tables, чтобы развернуть таблицу и показать таблицы, хранящиеся в базе данных. В зависимости от того, с какой базой данных вы работаете, скопируйте таблицу Customers или Authors в окно Data Environment с помощью метода drag-and-drop. В результате там появится пользовательская команда с тем же именем, что и перенесенная таблица (рис. 6).

Шаг 8N. Работа с базой данных NorthWind. Повторите шаг 7, перетащив таблицы Orders и Order_Details в конструктор Data Environment.

Шаг 8P. Работа с базой данных Pubs. Повторите шаг 7, перетащив таблицы Titles и TitleAuthor в конструктор Data Environment.

Шаг 9. Закройте окно Data View.

Шаг 10. Теперь необходимо установить родительско-дочернюю связь между тремя таблицами в конструкторе Data Environment. (Последний обладает удобными возможностями для установления подобных связей.) Вначале щелкните правой кнопкой мыши по команде Orders (или Titles) и выберите команду Properties для вывода диалогового окна Orders Properties (или Titles Properties). Щелкните по вкладке Relation и установите флажок Relate to a Parent Command Object (рис. 7).

Шаг 11. После этого раскройте список Parent Command и выберите в нем команду Customers (или TitleAuthor) в качестве родительской команды. Тогда окна списков Relation Definition автоматически заполнятся идентификаторами CustomerID (или AU_ID). Щелкните на кнопке Add для установления родительско-дочерней связи, а затем щелкните OK.

Шаг 12. Теперь команда Orders (или Titles) в конструкторе Data Environment представляет собой дочернее поле в папке Customers (или Authors). Это означает, что для каждого Customer (Покупателя) в иерархии может существовать несколько Orders (Бланков заказа). После этого выберите команду Order_Details (или TitleAuthor) и повторите шаги 10 и 11, установив Order_Details (или TitleAuthor) в качестве дочерней команды для Orders (или Titles). В итоге конструктор NorthWind Data Environment приобретет такой вид, как показано на рис. 8.

Шаг 13. Сохраните созданный в данном примере проект NorthWind в файле DataProject.vbp.

 

В начало

В начало

Пример 2. Создание связанной с данными формы при помощи метода drag-and-drop

Перед тем как приступить к этому пошаговому процессу, убедитесь, что вы сохранили проект, созданный в Примере 1. Мы продемонстрируем здесь возможность конструктора Data Environment создавать мощные, управляемые данными формы. Мы будем использовать окно Data View для выбора и просмотра данных, а конструктор Data Environment — для размещения на форме связанных с данными элементов управления.

Создадим простую форму, используя команду Data Environment, которая содержит три таблицы — Customers, Orders и Order_Details. Законченный вид этой формы с несколькими элементами управления TextBox и элементом управления Hierarchical FlexGrid, привязанными к данным, показан на рис. 9.

Шаг 1. Откройте проект DataProject.vbp, созданный в Примере 1.

Шаг 2. В окне Project Explorer дважды щелкните на DataEnvironment1 в папке Designers.

Шаг 3. Раскройте папку Form в окне Project Explorer и дважды щелкните на форме frmDataEnv. На экран выведется конструктор форм. Измените размеры формы и конструктора Data Environment, как показано на рис. 10.

Шаг 4. Затем перетащите команду Customers (или Authors) из конструктора Data Environment в верхнюю часть формы. При этом на ней разместятся несколько связанных с данными элементов управления TextBox и соответствующие им метки. В нижней части формы, сразу под полями текста, разместится связанный с данными элемент управления Hierarchical FlexGrid. Он будет находиться как раз там, где обычно приводится более подробная информация о заказах (orders).

Примечание. Вы можете настраивать элементы управления TextBox или FlexGrid, если вы их связываете с данными. Если щелкнуть правой кнопкой мыши на каком-либо поле в конструкторе Data Environment и выбрать команду Properties, можно установить соответствие между этим полем и элементом управления любого типа.

Шаг 5. Щелкните на поверхности формы, чтобы снять выделение у элементов управления, которые только что были помещены на форму. Щелкните правой кнопкой мыши на элементе управления Hierarchical Flexgrid и затем выберите команду Properties. В появившемся диалоговом окне Property Pages измените свойство BandDisplay на 1-Vertical и щелкните OK (рис. 11).

Шаг 6. Поместите на форму две командные кнопки и расположите их в нижней части, сразу под элементом управления Hierarchical Flexgrid. Установите свойства этих кнопок в окне Properties в соответствии со следующей таблицей:   

Шаг 7N. Работа с базой данных NorthWind. Дважды щелкните кнопку cmdPrev для перехода в окно Code View, где введите следующий код:

Private Sub cmdPrev_Click() If DataEnvironment1.rsCustomers.BOF Then 
	MsgBox «Вы уже находитесь в первой записи».
 Else
 DataEnvironment1.rsCustomers.MovePrevious 
End If
 End Sub

А для кнопки cmdNext введите такой код:

Private Sub cmdNext_Click() 
If DataEnvironment1.rsCustomers.EOF Then 
MsgBox «Вы уже находитесь в последней записи». 
Else 
DataEnvironment1.rsCustomers.MoveNext
 End If
 End Sub

Шаг 7P. Работа с базой данных Pubs. Нужно сделать те же операции, что и в шаге 7N, но вместо «rsCustomers» ввести «rsAuthors».

Шаг 8. Закройте окна Code View и Form.

Шаг 9. Запустите приложение на выполнение, щелкнув значок Start на панели инструментов VB6 или нажав клавишу F5. Воспользуйтесь командными кнопками для перемещения вперед и назад по записям базы данных. Обратите внимание на информацию, которая выводится в элементе управления Hierarchical FlexGrid. Поскольку она не отформатирована, ее можно настроить, придав ей требуемый вид, что и будет описано в следующем примере.

 

В начало

В начало

Пример 3. Создание простого отчета с данными

Пример демонстрирует, как создать отчет с данными при помощи команды Data Environment, которую мы сформировали в первых двух примерах в качестве источника данных. Когда вы закончите выполнение этого примера, ваш отчет будет выглядеть приблизительно так, как показано на рис. 12.

Чтобы упростить задачу, мы не будем использовать все поля из Data Environment в создаваемом нами отчете. Поэтому в результате приведенного здесь пошагового процесса отчет будет состоять лишь из нескольких позиций. Все сказанное здесь относится к работе с обоими вариантами баз данных — Northwind и Pubs.

Шаг 1. Откройте проект DataProject.vbp, созданный в Примере 1 и дополненный в Примере 2.

Шаг 2. В окне Project Explorer раскройте папку Designers и дважды щелкните на конструкторе DataReport1.

Шаг 3. В окне Properties щелкните на свойстве DataSource, а затем выберите DataEnvironment1 в качестве источника данных.

Шаг 4. В окне Properties щелкните на свойстве DataMember и выберите Customers (или Authors).

Шаг 5. Щелкните правой кнопкой мыши на любом месте в конструкторе Data Report и после этого выберите команду Retrieve Structure. Выберите Yes для замены иерархической структуры на новую. Обратите внимание, что при этом в конструкторе будут созданы новые групповые разделы, отражающие структуру Data Environment, а именно: каждый раздел будет иметь однозначное соответствие с объектом Command в Data Environment. Таким образом, новые разделы Group будут соответствовать команде Customers и ее последующим дочерним командам (рис. 13).

Шаг 6. Щелкните на верхнем колонтитуле Group Header (Customers_Header). В окне Properties измените свойство Name колонтитула с Customers_Header на CompanyName_Header.

Шаг 7. Щелкните на нижнем колонтитуле Group Footer (Customers_Footer) и измените его имя с Customers_Footer на Company_Name_Footer.

Шаг 8. Откройте конструктор Data Environment, дважды щелкнув на DataEnvironment1 в окне Project. Перетащите поле CompanyName из команды Customers из Data Environment в раздел CompanyName_Header (белая область под колонтитулом CompanyName_Header).

Примечание. Раздел Group Header может содержать любое поле из команды Customers, однако для упрощения отчета (о чем мы говорили в самом начале примера) мы сейчас поместим в него только имя Customer.

Шаг 9. Выделите элементы управления txtCompanyName и Label1 и выровняйте их по левому краю конструктора отчетов.

Шаг 10. Снова выделите элементы управления txtCompanyName и Label1, после этого перейдите в окно Properties. Щелкните на свойстве Font, а затем — на кнопке с изображением многоточия (...), которая откроет диалоговое окно Font Style. Щелкните Bold, чтобы наименование компании выводилось полужирным шрифтом, и щелкните OK.

Шаг 11. Перетащите поле OrderDate из команды Orders из Data Environment в раздел Group Header (Orders_Header).

Шаг 12. Раздел Details соответствует самой нижней команде в иерархии Data Environment — команде Orders_Details. Перетащите ее из Data Environment в раздел Detail (Order_Details_Detail) конструктора отчетов. При этом данный раздел автоматически заполнится полями, содержащимися внутри команды. С помощью клавиши SHIFT выделите каждую из меток в разделе Detail и перетащите их влево, чтобы они не накладывались на соответствующие элементы управления Data.

Шаг 13. Измените размеры разделов в конструкторе Data Report так, как показано на рис. 14.

Высота раздела Details должна быть как можно меньше, поскольку она умножается на количество дат OrderDate, возвращаемых для поля CompanyName. Любое дополнительное пространство вверху или внизу поля текста OrderDate ведет к избытку пустого места в окончательном отчете.

Шаг 14. Сохраните проект командой File|Save. Теперь, когда мы уже создали объекты Data Environment и Data Report, можно было бы запустить наш проект на выполнение. Остался лишь один шаг — написать единственную строку кода, позволяющую осуществить предварительный просмотр отчета.

Шаг 15. В окне Project Explorer дважды щелкните на форме frmDataEnv. После появления формы на экране поместите на нее командную кнопку, которую расположите между кнопками cmdPrev и cmdNext.

Шаг 16. Выделите новую командную кнопку и перейдите в окно Properties, где щелкните на свойстве Caption и введите «Просмотр отчета». Затем выделите свойство Name и введите cmdPreview.

Шаг 17. Дважды щелкните на командной кнопке cmdPreview и напишите следующий код в событии cmdPreview_Click:

Private Sub cmdPreview_Click() DataReport1.Show End Sub

Шаг 18. Запустите проект на выполнение и щелкните кнопку «Просмотр отчета». На экран выведется окно просмотра, содержащее наш отчет с данными.

КомпьютерПресс 2'1999

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует