Використання конструктора Visual Basic 6.0 Data Environment, Різне, Програмування, статті

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




Приклад 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) відповідно.

УВАГА! У програмних додатках до даної статті використовується база даних Nwind.MDB, яка повинна знаходитися в каталозі C: ​​VB-DB.

Крок 1. Відкрийте Visual Basic 6.0 і у вкладці New діалогового вікна New Project виберіть шаблон Data Project (рис.1).

Рис. 1.

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

Рис. 2.

Крок 3. Клацніть правою кнопкою миші елемент Connection1 в конструкторі Data Environment, а потім – команду Properties. Після цього на екран виведеться вікно Data Link Properties, яке ми будемо використовувати для встановлення зв’язку з базою даних (рис. 3).

Рис. 3.

Крок 4N. Робота з базою даних Northwind. У вкладці Provider двічі клацніть опцію Microsoft Jet 3.51 OLE DB Provider – відкриється вкладка Connection (рис. 4). Виберіть необхідну базу даних, натиснувши кнопку Browse. Для нашого прикладу знайдемо базу даних NorthWind (зазвичай вона зберігається за адресою C: Program FilesMicrosoft Visual StudioVB98Nwind.mdb, але ми використовуємо C: VB-DBNwind.mdb). Виділимо її і потім клацнемо кнопку Open.

Рис. 4.

Крок 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.

Рис. 5.

Крок 7. Двічі клацніть папку Tables, щоб розгорнути таблицю і показати таблиці, які зберігаються в базі даних. В залежності від того, з якою базою даних ви працюєте, скопіюйте таблицю Customers або Authors в вікно Data Environment за допомогою методу “перетягни і залиш”. В результаті там з’явиться користувацька команда з тим же ім’ям, що і перенесена таблиця (рис. 6).

Рис. 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).

Рис. 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.

Рис. 8.

Крок 13. Збережіть створений в даному прикладі проект NorthWind у файлі DataProject.vbp.


Приклад 2. Створення пов’язаної з даними форми за допомогою методу “перетягни і залиш”


Перед тим як приступити до цього покроковому процесу, переконайтеся, що ви зберегли проект, створений в Прикладі 1. Ми продемонструємо тут можливість конструктора Data Environment створювати потужні, керовані даними форми. Ми будемо використовувати вікно Data View для вибору і перегляду даних, а конструктор Data Environment – для розміщення на формі пов’язаних з даними елементів керування.

Створимо просту форму, використовуючи команду Data Environment, яка містить три таблиці – Customers, Orders і Order_Details. Закінчений вигляд цієї форми з кількома елементами управління TextBox і елементом управління Hierarchical FlexGrid, прив’язаними до даних, зображений на рис. 9.

Рис. 9.

Крок 1. Відкрийте проект DataProject.vbp, створений в Прикладі 1.

Крок 2. У вікні Project Explorer двічі клацніть DataEnvironment1 в папці Designers.

Крок 3. Розкрийте папку Form у вікні Project Explorer і двічі клацніть форму frmDataEnv. На екран виведеться конструктор форм. Змініть розміри форми і конструктора Data Environment так, як показано на рис. 10.

Рис. 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).

Рис. 11.

Крок 6. Помістіть на форму дві командні кнопки і розташуйте їх у нижній частині, відразу під елементом управління Hierarchical FlexGrid. Встановіть властивості цих кнопок у вікні Properties у відповідності з наступною таблицею:















Властивість

Елемент управління
Command1

Елемент управління
Command2

Name

cmdPrev

cmdNext

Caption

<<

>>


Крок 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.

Рис. 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).

Рис. 13.

Крок 6. Клацніть верхній колонтитул Group Header (Customers_Header). У вікні Properties зміните властивість Name колонтитула з Customers_Header на CompanyName_Header.

Крок 7. Клацніть нижній колонтитул Group Footer (Customers_Footer) і змініть властивість Name колонтитула з 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.

Рис. 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. Запустіть проект на виконання і клацніть кнопку “Перегляд звіту”. На екран виведеться вікно перегляду, що містить наш звіт з даними.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*