+ All Categories
Home > Documents > Министерство Образования...

Министерство Образования...

Date post: 08-Jun-2019
Category:
Upload: truongdang
View: 220 times
Download: 0 times
Share this document with a friend
104
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ Національний авіаційний університет РОЗРОБКА ДОДАТКІВ НА ПЛАТФОРМІ .NET FRAMEWORK В ІНТЕГРОВАНОМУ СЕРЕДОВИЩІ VISUAL STUDIO Методичні вказівки до виконання лабораторних робіт і завдання до курсової роботи дисципліни “Організація баз даних і знань” для студентів спеціальності 7/8.05150102 «Технологія електронних мультимедійних видань»
Transcript

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

Національний авіаційний університет

РОЗРОБКА ДОДАТКІВ НА ПЛАТФОРМІ .NET FRAMEWORK В ІНТЕГРОВАНОМУ СЕРЕДОВИЩІ VISUAL STUDIO

Методичні вказівки до виконання лабораторних робіт

і завдання до курсової роботи дисципліни “Організація баз даних і знань”

для студентів спеціальності 7/8.05150102«Технологія електронних мультимедійних видань»

Київ 2013

УДК 004.43(076.5)ББК з973.2-018рС 789

Укладачі: Н.Ф. Халімон, С.М.Станко, О.М.ГлазокРецензент: М.А.Віноградов, д.т.н. проф.

(Національний авіаційний університет)

Затверджено на засіданні кафедри комп’ютеризованих систем управління факультету комп’ютерних систем Національного авіаційного університету 21 січня 2013 року.

Розробка додатків на платформі .Net Framework вінтегрованому середовищі Visual Studio:

С408 Методичні вказівки до виконання лабораторних робіт і завдання до курсової роботи дисципліни “Організація баз даних і знань” /Уклад.: Н.Ф.Халімон, С.М.Станко, О.М.Глазок К.: НАУ, 2013. 70 с.

Містять стислі теоретичні відомості, рекомендації до виконання лабораторних робіт, завдання до курсової роботи, вказівки щодо їх виконання, а також список рекомендованої літератури для дисципліни “Організація баз даних і знань”.

Призначені для студентів спеціальності 7/8.05150102 «Технологія електронних мультимедійних видань».

2

ЗАГАЛЬНІ МЕТОДИЧНІ ВКАЗІВКИ

Метою викладання дисципліни “Організація баз даних і знань” є розкриття сучасних наукових концепцій, понять, методів та технологій в одній з найактуальніших галузей інформаційних технологій організації баз даних, набуття студентами теоретичних та практичних знань з розробки та експлуатації електронних мультимедійних видань, ознайомлення з основними моделями даних для створення інформаційних систем різноманітного призначення.

Завданнями вивчення навчальної дисципліни є:– засвоєння основ теорії та технології баз даних і знань,

які забезпечують методологічні підходи та інструментарій для розробки сучасних інформаційних систем;

– засвоєння етапів та методів проектування баз даних, ознайомлення з засобами автоматизації проектування баз даних;

– ознайомлення з сучасним станом ринку, функціональними можливостями найбільш популярних програмних продуктів, які використовуються для експлуатації та розробки систем баз даних, з основними тенденціями та перспективами розвитку технології баз даних;

– оволодіння практичними навичками розробки інформаційних систем з використанням сучасних систем керування базами даних (СКБД).

У результаті вивчення навчальної дисципліни студент повинен:

Знати: основи проектування інформаційних систем на основі

реляційної моделі; моделі баз даних, основні компоненти системи баз даних; типову організацію і базові функції СКБД; принципи організації файлів баз даних, процесів пошуку

і оновлення даних, здійснення вибірки даних із баз; принципи організації розподілених систем баз даних і

систем клієнт-сервер; сучасний стан, тенденції та перспективи розвитку

технології баз даних;

3

теоретичні основи побудування систем баз знань.Вміти:

– вирішувати завдання по проектуванню структур баз даних, задачі по створенню інформаційно-пошукових систем різноманітного призначення;

– самостійно здійснювати логічне проектування бази даних на основі реляційної моделі;

– самостійно адмініструвати СКБД;– самостійно організовувати пошук інформації з

використанням мови Transact-SQL;– самостійно розробляти програмні інтерфейси

користувача для доступу до даних та налагоджувати їх;– вирішувати задачі проектування і розробки систем баз

знань.Вивчення дисципліни “Організація баз даних і знань”

грунтується на багатьох поняттях, які студенти одержали в процесі вивчення ряду попередніх дисциплін: “Об’єктно-орієнтоване програмування”, “Операційні системи і системне програмування”, “Інформатика”, “Комп’ютерні мережі”. Знання та навики, одержані студентами під час вивчення курсу, необхідні для подальшого вивчення дисциплін: “Гіпертекстова обробка інформації”, “Сучасні мережеві інформаційні технології” і т. ін.

Технічною базою для проведення лабораторних робіт є комп’ютерний клас на базі персональних ЕОМ. Для організації БД використано СКБД MS SQL Server, а для створення клієнтського додатка рекомендується використовувати інтегроване середовище розробки Visual Studio на платформі .Net Framework.

Лабораторні роботи являють собою єдиний комплекс із загальною методикою виконання. Мета лабораторних робіт:

закріплення та поглиблення теоретичних знань з організації реляційних БД;

набуття практичних навиків маніпулювання інформацією, яка зберігається в БД, формування запитів до БД;

оволодіння технологією розроблення клієнтського додатка.

Результатом виконання лабораторних робіт є розроблення клієнтського додатка інформаційної системи з доступом до БД та

4

уніфікованим інтерфейсом у стилі Windows. У методичних вказівках наводиться реалізація варіанта “Оптовик”.

Процес виконання лабораторних робіт передбачає вивчення теоретичних основ організації БД, оформлення і захист курсової роботи. Відповідно до навчального плану на вивчення дисципліни “Організація баз даних і знань” передбачено: 126 год., із них 17 год. лекції, 34 год. лабораторні роботи, 75 год. самостійна робота. Студентам належить виконати курсову роботу та по закінченні семестру здати диференційований залік.

Лабораторна робота 1. ОРГАНІЗАЦІЯ ФАЙЛІВ РІШЕНЬ ТА ФАЙЛІВ ПРОЕКТУ В VISUAL STUDIO. СТВОРЕННЯ

НАЙПРОСТІШОГО WINDOWS-ДОДАТКА

1. Мета роботиВивчення основних елементів об'єктно-орієнтованого

середовища розробки, принципів розробки додатків, основ інтерфейсу, організації рішень та проекту, розробка найпростішого додатку.

2. Підготовка до роботиУ процесі підготовки до роботи потрібно вивчити основні

принципи функціонування об'єктно-орієнтованих візуальних середовищ розробки додатків, ознайомитися з командами інтерфейсу і організацією рішень та проектів засобами середовища Visual Studio, опис яких наведено в стислих теоретичних відомостях.

3. Стислі теоретичні відомостіПлатформа .NET Framework – це інтегрований компонент

Windows, який підтримує розробку та виконання різних типів додатків і веб-служб. Основними компонентами .NET Framework є загальномовне середовище виконання (Common Language Runtime, CLR) і бібліотека класів .NET Framework, яка включає набори

5

класів, що підтримують наступні основні технології: ADO.NET, ASP.NET, Windows Forms і Windows Presentation Foundation (WPF).

Середовище виконання CLR можна вважати агентом, який управляє кодом під час виконання і надає основні служби, такі як управління пам'яттю, управління потоками і віддаленою взаємодією.

Інший основний компонент платформи .NET Framework, бібліотека класів, надає засоби, які застосовуються для розробки додатків, починаючи від звичайних, що запускаються з командного рядка і закінчуючи додатками, що використовують останні можливості розробки для інтернет (технологія ASP.NET) такі як Web Forms і веб-служби XML.

Технологія ADO.NET має багатий набір компонентів для створення різних додатків, зокрема розподілених додатків, надає доступ до реляційних даних, XML-даних, які використовуються для побудови веб-додатків. ASP.NET – це технологія для розробки веб-додатків, містить служби, необхідні для їх побудови. За допомогою Windows Forms можна створювати додатки з елементами уніфікованого інтерфейсу Windows. Windows Presentation Foundation забезпечує підтримку високої якості двомірної та тривимірної графіки, анімації та мультимедіа при розробці додатків.

В .NET Framework використовують поняття збірки. Збірки є структурними елементами додатків .NET Framework; вони складають основну одиницю розгортання, керування версіями, повторного використання, областей дії активації та дозволів безпеки. Збірка являє собою колекцію типів і ресурсів, зібраних для спільної роботи, які утворюють логічну функціональну одиницю. Збірка надає середовищу CLR відомості, необхідні для розпізнавання реалізацій типів. Збірка містить код, що виконується середовищем CLR. Кожна збірка може мати тільки одну точку входу (тобто DllMain, WinMain або Main). Маніфест збірки містить метадані, які використовуються для визначення областей дії типів і для виконання запитів, пов'язаних з ресурсами. У маніфесті вказуються типи і ресурси, які експортуються за межі збірки.

6

Додатки Windows створюють у інтегрованому середовищі розробки Microsoft Visual Studio (рис. 1). Visual Studio дозволяє розробляти як консольні додатки, так і додатки з графічним інтерфейсом, а також веб-сайти, веб-додатки, веб-служби для платформ: Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework і Microsoft Silverlight (платформа для підтримки графіки). Додаток Windows в Visual Studio будується на основі багатофункціонального набору класів .NET Framework середовища CLR. Додатки Windows можна створювати за допомогою декількох мов програмування .NET Framework (Visual Basic, C#, Visual J #, C++).

Рис.1. Інтегроване візуальне середовище розробки Visual Studio.

При розробці додатків, що включають інтерфейс користувача, можна використовувати або форми Windows Forms, або веб-форми. Форми Windows Forms використовуються для розробки додатків, в яких клієнтський додаток повинен взяти на

7

себе значну частину обробки, яку виконує додаток. Це відноситься до класичних настільних додатків Win32, які традиційно розроблялися в продуктах Builder, Delphi, Visual Basic і VisualC++. Прикладами таких додатків є додатки обробки даних, додатки для малювання або графічні додатки, системи для роздрібної торгівлі, ігри і т.п. Веб-форми ASP.NET використовується для створення додатків, в яких інтерфейс призначений в основному для веб-оглядача. До таких додатків відносяться програми, призначені для загального доступу через Інтернет, наприклад, програми для електронної торгівлі.

Візуальне програмування дозволило зводити проектування інтерфейсу користувача до простих і наочних процедур. Блискуче втілення візуальне програмування знайшло в системах C++Builder, Delphi, Microsoft Visual Studio, які дозволяють створювати додатки за мінімального написання коду при написанні інтерфейсу додатка.

Основою додатків є форми (у додатку їх може бути декілька), на яких розміщуються компоненти. Зазвичай це віконна форма. На форму за допомогою "миші" переносяться і розміщаються компоненти, наявні в бібліотеках середовища програмування. Головна перевага візуального програмування полягає в тому, що під час проектування форми і розміщення на ній компонентів середовище автоматично генерує коди програм, включаючи в них відповідні фрагменти, які описують даний компонент. Розробник створює коди оброблювачів подій, на які реагують розміщені на формі компоненти. Тобто проектування зводиться до розміщення компонентів на формі, задавання їхніх властивостей і написання оброблювачів подій.

Для кожної форми, яка проектується, створюються окремі модулі. Саме в модулях і здійснюється програмування задачі та написання оброблювачів подій. У оброблювачах подій об'єктів (форм і компонентів) розташовуються програми, при цьому вони постійно звертаються до методів (функцій) різноманітних об'єктів.

У Visual Studio реалізовано два види контейнерів для створення додатків: рішення (solutions) і проекти (projects). Об'єкти, що містяться в цих контейнерах, називаються елементами.

8

Проект – це набір файлів і належних до них метаданих, наприклад, відомостей про з'єднання. Склад файлів в проекті залежить від того, для чого цей проект призначений. Наприклад, проект SQL Server може містити інструкції DDL, що визначають об'єкти в базі даних. Проекти середовища Visual Studio – це контейнери в середині рішення.

Рішення містять елементи, необхідні для створення проектів. Рішення містить один або кілька проектів, а також файли і метадані, які дозволяють визначити рішення як єдине ціле. Visual Studio автоматично створює рішення при створенні нового проекту. У рішенні використовуються проекти логічного керування, побудови та налагодження елементів, які складають додаток. На виході проект, як правило, являє собою виконувану програму (EXE), файл бібліотеки динамічного компонування (DLL) або модуль. Елементами рішень і проектів можуть бути файли та інші складові проекту, наприклад, посилання, підключення до даних або папки.

Visual Studio надає кілька попередньо визначених шаблонів для створення різних типів додатків. Ці шаблони можна використовувати для створення основного контейнера і попереднього набору елементів, необхідних для розробки програми, класу, елемента керування або бібліотеки. Нижче перераховані категорії проектів, які доступні в Visual Studio за замовчуванням (Таблиця 1).

Таблиця 1Категорії проектів Visual Studio

Шаблон проекту Компонент, який створено на основі шаблону

1 2

Шаблон консольного застосування

Додаток командного рядка.

1 2

Шаблон бібліотеки класів Клас або компонент, який може повторно використовуватися спільно з іншими проектами.

9

Цей тип проекту є безвіконним і не містить класи форм Windows Form.

Шаблон порожнього проекту

Порожній проект. Цей шаблон створює структуру файлів, необхідну для зберігання даних додатка; при цьому всі посилання, файли і компоненти слід додавати вручну.

Шаблон бібліотеки елементів управління Веб

Нестандартний елемент управління, який може використовуватися на сторінках Web Forms.

Шаблон додатку Windows

Звичайний автономний додаток Windows або багатофункціональний зовнішній інтерфейс розподіленого веб-додатку.

Шаблон бібліотеки елементів управління Windows

Нестандартний елемент управління для використання у формах Windows Forms.

Шаблон служб Windows

Додатки, які призначені для тривалого виконання і які не мають інтерфейсу користувача. Службові додатки Windows (раніше називалися NT-службами) дозволяють контролювати продуктивність системи.

Нижче перераховані деякі шаблони проектів, які доступні в Visual Studio за замовчуванням (Таблиця 2).

Таблиця 2Шаблони проектів Visual C++ для Windows

Шаблон проекту Додаткові відомості1 2

ATL / Проект ATL Створює проект, що

10

використовує бібліотеку шаблонних класів Active Template Library (ATL).

CLR / Бібліотека класів Створює класи для використання в інших додатках.

CLR / Консольний додаток CLR Створює консольний додаток.CLR / Порожній проект Створює порожній проект для

створення локального додатка.CLR / Додаток Windows Forms Створює додаток з інтерфейсом

користувача Windows.CLR / Бібліотека елементів управління Windows Forms

Створює елементи управління для використання в додатках Windows.

Загальне / Порожній проект Створює порожній проект для створення локального додатка.

Загальне / Майстер користувача Створює Майстер користувача.MFC / Додаток MFC Створює додаток, що

використовує бібліотеку класів Windows Foundation.

MFC / Бібліотека DLL MFC Створює бібліотеку динамічного компонування, що використовує бібліотеку класів Windows Foundation.

MFC / Елемент керування ActiveX MFC

Створює елемент управління ActiveX, що використовує бібліотеку класів Windows Foundation.

Win32/Проект Win32 Створює проект для розміщення додатка Win32, консольного додатку, бібліотеки DLL.

У середовищі розробки Visual Studio використовуються два типи файлів (SLN і SUO) для зберігання параметрів рішень. Файл SLN організовує проекти, елементи проектів та елементи рішень в рішення, надаючи середу з посиланнями на їх розташування на диску. Файл SUO записує всі параметри, пов'язані з рішенням так, що кожен раз при відкриванні рішення включаються налаштування

11

користувача. Файл SLN може використовуватися спільно між розробниками в команді розробників. Файл SUO є файлом користувача і не може використовуватися розробниками спільно.

При використанні шаблонів Visual Studio для створення проектів, створюється ряд файлів, склад яких залежить від шаблону, який використовується. Типи файлів (Таблиця 3), які фактично увійдуть у проект, залежать від типу проекту та параметрів, вибраних при роботі:

файли проекту і рішення (Project and Solution Files); файли, які створюються для проектів CLR (Files Created for

CLR Projects); програма ATL або файли елементом управління і файли

заголовка (ATL Program or Control Source and Header Files); програма MFC або файли з елементом управління і файли

заголовка (MFC Program or Control Source and Header Files); файли предкомпільованих заголовків (Precompiled Header

Files); файли ресурсів (Resource Files); файли довідки (WinHelp); різні файли проекту (Miscellaneous Project Files).

Файли рішення і проекту Visual StudioТаблиця 3

Ім'я файлу Розташування каталогу

Розташування в оглядачі рішень

Опис

1 2 3 4

Projname.suo Projname

Файл параметрів рішення. Зберігає налаштування для рішення

1 2 3 4Solname.sln Projname Не

відображається в оглядачі рішень

Файл рішення. Використовується для організації всіх елементів проекту або

12

декількох проектів в єдиний проект

ім'я_ проекту.vcxproj Projname

Файл проекту. Зберігає відомості, що відносяться до кожного проекту. (у попередніх версіях .dsp)

ім'я_ проекту.sdf Projname

Файл бази даних перегляду. Підтримує функції перегляду і навігації. Він створюється шляхом аналізу файлів заголовків

ім'я_ проекту. vcxproj.filters Projname

Файл фільтрів. Містить інформацію для розміщення файлу, який додається в рішення

Projname.idl Projname

Файл використовується для створення бібліотеки типів

1 2 3 4

Readme.txt Projname

Новий файл readme. Створюється майстром додатків і описує файли в проекті

13

Далі перераховані файли, які створюються при використанні шаблонів проектів .NET Framework.

AssemblyInfo.cppФайл з інформацією (атрибутами, файлами, ресурсами,

типами, відомостями про версії, підписах і т. д.), призначеною для зміни метаданих зборок проекту.

projname.asmxТекстовий файл з посиланнями на керовані класи,

інкапсулює функціональність веб-служб XML.projname.cppОсновний файл вихідного коду і точка входу в додаток,

створений Visual Studio. Ідентифікує DLL-файл і простір імен проекту. Код розробника поміщується в цей файл.

projname.vsdiscoФайл розгортання XML, що містить посилання на інші

ресурси, які описують дану веб-службу XML.projname.hГоловний файл заголовка проекту, який містить всі

оголошення, глобальні символи і директиви #include для інших файлів заголовків.

projname.slnФайл рішення, який використовується в середовищі

розробки для організації всіх елементів проекту в єдине рішення.projname.suoФайл параметрів рішення, який використовується в

середовищі розробки.projname.vcprojФайл проекту, який використовується в середовищі розробки

для зберігання відомостей, що відносяться до даного проекту.Файли предкомпільованих заголовків (Precompiled Header

Files). Файли Stdafx.h і Stdafx.cpp використовуються для побудови файлу попередньо скомпільованого заголовка і файлу попередньо скомпільованих типів. Попередньо скомпільовані файли будь-якого типу, включаючи файли заголовків, можуть компілюватися швидше, так як обмежують компіляцію тільки тими файлами, яким вона потрібна. Після першої побудови проекту наступні побудови

14

будуть проходити набагато швидше, завдяки наявності попередньо скомпільованих файлів заголовків.

Файли ресурсів (Resource Files) – це елементи інтерфейсу, що надають інформацію користувачеві. Ресурсами є точкові малюнки, значки, панелі інструментів і курсори.

У наступній таблиці перераховані деякі розширення імен файлів, які створюються при використанні шаблонів проектів .NET Framework (Таблиця 4).

Розширення файлів .NET FrameworkТаблиця 4

Розширення файлу Тип Зміст1 2 3

ASMX вихідний код Файл розгортанняASP вихідний код ASP-файлATP проект Файл шаблону додатка

проектуBMP, DIB, GIF, JPG, JPE, PNG

ресурс Файли зображень загального характеру

BSC компіляція Файл коду браузераCPP; C вихідний код Основні файли

вихідного коду програми

CUR ресурс Растровий графічний файл курсору

EXE, DLL проект Виконувані файли або файли бібліотек динамічного компонування

H вихідний код Файл заголовка

1 2 3HTM, HTML, XSP, ASP, HTC, HTA, XML

ресурс Загальні веб-файли

HXC проект Файл довідки проектуICO ресурс Растровий графічний

файл значкаIDB компіляція Файл стану, який

може

15

використовуватися компілятором в ході мінімальної перебудови і додаткової компіляції.

OBJ, O Об’єктні файли – скомпільовані, але не скомпоновані

PCH інформація для відладки

Файл предкомпілірованних заголовків

PDB інформація для відладки

Файл бази даних для відладки програми

RC, RC2 ресурс Файли скриптів ресурсів для генерації ресурсів

SLN рішення Файл рішенняSUO рішення Файл параметрів

рішенняTXT ресурс Текстовий файл,

зазвичай README-файл

VBG рішення Файл сумісної групи проектів

VBP, VIP, VBPROJ проект Файл проекту Visual Basic

VCXPROJ проект Файл проекту VisualC++

VDPROJ проект Файл розгортання проекту Visual Studio

VMX проект Файл макросів проекту

VUP проект Допоміжний файл проекту

4. Порядок виконання роботиДля завантаження середовища оберіть Start, All Programs,

Visual Studio.1. Створення проекту. При створенні програми на мові Visual C++ в середовищі

Visual Studio першим кроком є вибір типу (шаблону) проекту. Для

16

кожного типу проекту Visual Studio задає параметри компілятора і автоматично створює стартовий код. У проекті, розглянутому в даному покроковому керівництві, створюється базова програма варіанту 4 ОПТОВИК. Вікно програми варіанту Оптовик наведено в додатку А.

У меню File послідовно виберіть пункти New і Project. У діалоговому вікні New Project в групі Project types оберіть вузол Visual C++. У списку встановлених шаблонів Templates виберіть Windows Forms Application. В полі Name введіть ім'я проекту opt_project (для інших варіантів – згідно завдання, наприклад, bank_project). В полі Location вкажіть шлях до файлів рішення (наприклад, папка D:\406\HNF, 406-номер групи, HNF- абревіатура прізвища). Під час створення проекту середовище Visual Studio поміщає проект в рішення. За замовчуванням ім'я рішення збігається з ім'ям проекту. В полі Solution Name введіть opt_ solution. Підтвердіть дії ОК. Відкриється конструктор Windows Forms, що відображає форму Form1 створеного проекту.

Всі файли рішення і проекту відобразяться на панелі перегляду елементів додатку Solution Explorer в об’єктах Header Files, Resource Files, Source Files. Всі файли рішення і проекту записані в папку D:\406\HNF\opt_ solution, яка містить папки Debug, opt_project та файли opt_solution.ncb, opt_solution.sln, opt_solution.suo.

2. Встановлення властивостей компонента форма Form.1). вибрати за допомогою "миші" компонент Form1.

Властивості цього компонента з'являться на панелі Properties;2). в групі Appearance встановити властивість Text

відповідно до обраного варіанту Оптовик;3). в групі Layout встановити властивість WindowState, яка

б дорівнювала значенню Maximized; властивість WindowState визначає розмір вікна: Maximized максимальний, Minimized зменшений до розмірів заголовка, Normal довільний, визначений у процесі проектування;

4). в групі WindowStyle встановити властивість Icon, обравши кнопку з крапками. Властивість Icon дає можливість задавати піктограму заголовку вікна. Зазвичай, усім вікнам додатка належить мати єдину піктограму. За допомогою діалогової панелі,

17

що з'явилася, треба вибрати файл піктограми (розширення .ico) з каталогу, наприклад, C:\ProgramFiles\Borland\Cbuilder\Images\Icons.

3. Компіляція і виконання додатку.1) вибрати пункт меню Debug, Start Debugging; ця операція

компілює, редагує зв'язки та виконує додаток;2) додаток виконано відкрилося основне вікно додатка з

заголовком "Оптовик" вказаних розмірів і з обраною піктограмою в заголовку;

3) для завершення роботи додатка слід використати кнопку закриття вікна стандартного інтерфейсу Windows.

4. Завершення роботи над рішенням і проектом. Обрати пункт меню File, Close Solution.

5. Відкриття рішення і проекту. Оберіть File, Open, Project/Solution, папку D:\406\HNF, файл opt_ solution.sln.

5. Завдання до самостійної роботиСтворити найпростіший додаток згідно з індивідуальним

варіантом.

6. Контрольні запитання

1. У чому переваги об'єктно-орієнтованого візуального середовища розробки?

2. Назвіть елементи інтегрованого середовища розробки.3. Що таке проект об'єктно-орієнтованого візуального

середовища розробки?4. Що таке рішення?5. Які файли створюються в процесі створення рішення,

проекту?Лабораторна робота 2. ДОДАВАННЯ КОМПОНЕНТІВ ДО ФОРМИ.

СТВОРЕННЯ МЕНЮ І ПАНЕЛІ ІНСТРУМЕНТІВ

1. Мета роботиВивчення принципів роботи з бібліотекою компонентів,

характеристик компонентів, маніпуляцій із компонентами, властивостей компонентів і операцій з редагування властивостей. Вивчення можливостей побудови інтерфейсу в стилі Windows

18

візуальними засобами розробки і набуття навичок із його створення.

2. Підготовка до роботиУ процесі підготовки до роботи потрібно ознайомитись з

призначенням засобів побудови інтерфейсу, засвоїти поняття характеристик компонентів: властивостей, подій, методів, а також операцій з компонентами, опис яких наведено в стислих теоретичних відомостях.

3. Стислі теоретичні відомостіПобудова елементів інтерфейсу здійснюється за допомогою

компонент візуального проектування, які реалізовані як класи в відповідних бібліотеках. Меню є поширеним атрибутом сучасних Windows-додатків. Існує визначений стандарт побудови меню для додатків у середовищі Windows, тому основна вимога під час побудови меню їхня стандартизація. Ця вимога ставиться як до оформлення вікна, так і до інших аспектів меню: місця розміщення заголовків меню і їхніх розділів, форми самих заголовків, клавіш швидкого доступу, організації каскадних меню. Заголовки вікон, піктограми додатка, системні кнопки вікон мають бути витримані в єдиному стилі.

Компоненти, які розташовані на панелі компонентів Toolbox, виконаній як спливаючий список зазвичай в правій частині головного вікна Visual Studio, і згруповані за виконуваними функціями або за характером використання.

Компоненти поділяються на візуальні (видимі) і невізуальні (невидимі). Візуальні компоненти на етапі виконання мають вигляд такий самий, як і на етапі проектування. Невізуальні компоненти на етапі проектування мають вигляд піктограм фіксованого розміру. Вони невидимі під час виконання, але мають необхідну функціональність (наприклад, забезпечують доступ до даних, викликають стандартне діалогове вікно, забезпечують зв'язок між іншими компонентами й т. ін.).

Кожний компонент має три різновиди характеристик: властивості, події і методи. Інспектор об'єктів автоматично відображає властивості і події компонента, обраного на формі.

19

Список, що випадає у верхній частині інспектора об'єктів, відображає всі компоненти, які наявні на формі, і дозволяє швидко переключатися між ними.

Властивості є атрибутами компонента, що визначають його зовнішній вигляд і поводження. Властивості компонента відображаються на панелі властивостей (Properties). Панель Properties використовують для установлення властивостей під час проектування. Для зміни властивостей компонента на етапі проектування можна написати код. На рівні програмування властивості це змінні. Наприклад, властивість компонента Name визначає унікальне ім'я для компонента або об'єкта, тобто це ідентифікатор, визначений відповідно до синтаксису мови програмування, за яким провадиться звернення до компонента в програмі.

Панель Properties дозволяє використовувати декілька способів для показу властивостей і зміни їхніх значень. Найчастіше зустрічаються редактори властивостей таких типів: рядок введення, редактор зі списком значень, який випадає, діалогова панель (кнопка з трьома крапками), набір вкладених властивостей (знак "плюс" в імені властивості).

Кнопка подій (Events) панелі Properties показує список подій, які розпізнаються компонентом. Кожний компонент має свій власний набір подій. Створюючи оброблювач тієї або іншої події, розроблювач доручає програмі виконати зазначену функцію, якщо ця подія відбудеться. Саме у створенні оброблювачів подій, тобто в написанні конкретного коду і полягає програмування додатка.

Метод є функцією, пов'язаною з компонентом. Методи на противагу властивостям не активізуються під час проектування. Вони є стандартними функціями бібліотек, що оперують із компонентом під час виконання.

4. Порядок виконання роботиДля відображення вікна Toolbox Панель елементів, у меню

View оберіть Toolbox.1. Додавання компонента Panel:

20

1) знайти компонент Panel в списку All Windows панелі елементів Toolbox; перетягнути компонент за допомогою миші на форму приблизно в те місце, де потрібно розмістити компонент;

2) в групі Layout компонента Panel встановити властивість Dock такою, щоб дорівнювала Bottom (скористатись випадаючим списком цієї властивості);

3) в групі Layout розкрити властивість Size та встановити властивість Height компонента Panel такою, щоб дорівнювала 28;

4) в групі Design встановити властивість Name компонента Panel такою, щоб дорівнювала PanelStatus;

5) в групі Appearance встановити властивість BorderStyle компонента Panel такою, щоб дорівнювала FixedSingle;

2. Додавання компонента Label.1) знайти компонент Label в списку All Windows панелі

елементів Toolbox; перетягнути компонент за допомогою миші на на компонент PanelStatus;

2) в групі Appearance встановити властивість Text компонента Label такою, щоб дорівнювала надпису "Количество записей";

3) в групі Design встановити властивість Name компонента Label такою, щоб дорівнювала LabelKolZap;

4) в групі Layout розкрити властивість Location встановити властивість X компонента Label такою, щоб дорівнювала 5; встановити властивість Y компонента Label такою, щоб дорівнювала 6.

3. Додавання компонента textBox:1) знайти компонент textBox в списку All Windows панелі

елементів Toolbox; перетягнути компонент за допомогою миші на на компонент PanelStatus;

2) в групі Behavior встановити властивість Enabled компонента textBox такою, щоб дорівнювала false;

3) в групі Design встановити властивість Name компонента textBox такою, щоб дорівнювала textBoxKolZap;

4) в групі Layout розкрити властивість Location встановити властивість X компонента textBox такою, щоб дорівнювала 152; встановити властивість Y компонента Label такою, щоб дорівнювала 2;

21

5) в групі Layout розкрити властивість Size та встановити властивість Width компонента textBox такою, щоб дорівнювала 50.

4. Створення меню.1). Продумати меню утворюваного програмного продукту,

представивши його у вигляді схеми. Реалізоване меню та панель інструментів варіанта "Оптовик" наведено на рис.2.

2). Обов'язково ввести в меню пункти для роботи з файлами даних ("Поставщик" і "Товар" для реалізації варіанту "Оптовик"). Пункти меню "Запрос", "Печать", "Помощь" із підменю "Справка" і "Об авторе", "Выход" ввести для всіх варіантів.

3). Додати до форми компонент menuStrip із списку All Windows панелі елементів Toolbox .

4). Обрати компонент menuStrip. В групі Data розкрийте властивість Items. Увікні Items Collection Editor в полі вводу Select items and add to list below оберіть MenuItems оберіть Add. У списку властивостей в групі Appearance встановіть значення властивості Text для першого елемента горизонтального меню: &Поставщики (використовувати для всіх пунктів меню клавіші швидкого доступу до меню, поставивши перед обраною буквою заголовка меню символ &).

5). в групі Design встановити властивість Name компонента toolStripMenuItem1 такою, щоб дорівнювала toolStripMenuItemPostav.

6). В групі Misc зазначити властивість ShortCutKeys для визначення комбінації "гарячих" клавіш для забезпечення швидкого доступу до елементів вертикального меню.

7). Використовувати для найбільш вживаних пунктів меню загальноприйняті комбінації "гарячих" клавіш.

8). Повторити зазначені вище дії починаючи з п.4 доки не будуть додані всі необхідні елементи горизонтального та вертикального меню. Проектування можна здійснювати на формі.

22

Рис. 2 Головне вікно додатку

9). Для додавання вертикальних пунктів меню після вибору горизонтального пункту toolStripMenuItemPechat у вікні Properties оберіть DropDownItems. Увікні Items Collection Editor в полі вводу Select items and add to list below оберіть MenuItems оберіть Add. У списку властивостей в групі Appearance встановіть значення властивості Text для першого елемента вертикального меню: Справка.

Аналогічно додати всі вертикальні пункти меню.5. Створення панелі інструментів.1). Додати на форму компонент ToolStrip. Оберіть на

компоненті ToolStrip першу кнопку toolStripButton. Зображення на кнопці задати властивістю Image в групі Appearance. Файл зображення задати, наприклад, із каталогу C:\Program Files\Microsoft Office\CLIPART\PUB60COR.

23

2). В групі Behavior встановити властивість toolTipText, значення якої містить текст підказування в спливаючому ярлику підказування. Наприклад, Справка.

3). Аналогічно додати "швидкі" кнопки для пунктів меню "Об авторе", "Печать".

4). Додати на панель інструментів компонент bindingNavigator, який використовують для переміщення по записах файлів даних. Відповідна компонента з ім’ям bindingNavigator з’явиться на панелі для невидимих компонент.

5. Завдання до самостійної роботиЗасобами візуального проектування добавити компоненти до

форми згідно з індивідуальним варіантом.

6. Контрольні запитання1. Для чого використовується панель компонентів?2. Які характеристики компонента ви знаєте?3. Що таке властивість компонента?4. У чому полягає різниця між властивістю компонента і

методом?5. Які є способи редагування властивостей?

Лабораторна робота 3. ДОДАВАННЯ ФОРМИ ДО ПРОЕКТУ

1. Мета роботиВивчення можливостей побудови графічного інтерфейсу

користувача за допомогою форм і надбання навичок із його створення. Засвоєння навичок організації заголовних файлів при програмуванні на мові C++.

2. Підготовка до роботиУ процесі підготовки до роботи потрібно ознайомитися зі

структурою інтерфейсу при програмуванні в середовищі Windows, вивчити призначення файлів форм, опис яких наведено в стислих теоретичних відомостях.

24

3. Стислі теоретичні відомостіОсновним елементом будь-якого додатка є форма

контейнер, у якому розміщаються візуальні й невізуальні компоненти. Зазвичай додаток містить декілька форм. За замовчуванням перша із спроектованих форм є головною, саме їй передається керування на початку виконання додатка, закриття цієї форми означає завершення виконання додатка.

Форми в Windows мають такі стандартні елементи: кнопки максимізації, мінімізації і закриття вікна; системне меню; рамку, здатну змінювати розміри вікна. Ці елементи є характерними для немодальних діалогових вікон, але вони не обов'язкові для модальних. Немодальне діалогове вікно це діалогова панель, яку користувач може не закривати під час переключення на інше вікно того самого додатка. Модальне діалогове вікно не дозволить переключитися на інше вікно даного додатка, доки користувач не закриє його.

У разі додавання форми до проекту створюються пов'язані з нею файли .cpp (файл реалізації), .h (заголовний файл), .resX (файл ресурсів форми). Для кожної автоматично утворюваної форми в файлах генерується відповідний код.

Заголовний файл Form1.h (рис.3) починається з автоматично включених у нього директив препроцесора. Середовище розробки само підключить директиви include, які підключають копії файлів, у яких описані ті компоненти, змінні, константи, функції, які використовуються у даному модулі. Проте, при деяких діях директиви include варто добавляти вручну.

Після директив препроцесора описуються простори імен. В .NET Framework для спрощення розробки додатків об'єкти розділені на простори імен. Простір імен – це логічне об'єднання об'єктів. Завдяки наявності різних просторів імен, можна використовувати однакові імена для різних елементів.

25

Рис.3 Файл форми Form1.h

4. Порядок виконання роботи1. Створити в MS Word текстовий файл формату .txt

(тільки текст), який згодом буде завантажуватися кнопкою "Справка" головного меню додатка.

2. Створити форму, яка буде завантажуватися кнопкою "Справка" головного меню розроблюваного додатка. У вікні Solution Explorer правою кнопкою оберіть opt_project, пункт меню Add, потім у вікні New Item в групі Templates оберіть Windows Form. В полі Name введіть ім'я файлів форми opt_spr. В полі Location вкажіть шлях до файлів проекту D:\406\HNF\opt_project. Оберіть Add.

3. Оберіть компоненту форма. В групі Appearance встановити властивість Text такою, щоб дорівнювала Справка. В групі Layout встановити властивість WindowState, яка б

26

дорівнювала Maximized. В групі WindowStyle встановити властивість Icon.

4. На панелі Toolbox обрати компоненту richTextBox. В групі Layout встановити властивість Dock такою, щоб дорівнювала Fill (скористатись випадаючим списком цієї властивості); в групі Behavior встановити властивість Enabled такою, щоб дорівнювала false (зробити неможливим введення). У вікні Solution Explore у вузлі файл opt_spr відобразиться згенерований файл ресурсів opt_spr.resx.

Примітка. Бажано, щоб проектовані форми не відрізнялися із загального стилю проекту ні своїм зовнішнім виглядом (шрифтами, кольором, меню), ні організацією діалогів.

5. Створити форму, яка буде завантажуватися кнопкою "Об авторе" головного меню додатка. При додаванні форми до проекту в полі Name введіть ім'я файлів форми opt_obavt.

6. В групі WindowStyle встановити властивість Icon.7. Використати компоненти: Panel (властивості BorderStyle,

BackColor групи Appearance), PictureBox (властивості BorderStyle, Image, Image Align групи Appearance), Label (властивості Text, Font групи Appearance).

8. Переконайтесь у відсутності помилок на даному етапі. Виконати пункт Debug, Start Debugging.

5. Завдання до самостійної роботиСтворити форми та добавити їх у проект згідно з

індивідуальним варіантом.

6. Контрольні запитання1. Що таке форма?2. Які файли автоматично генеруються під час створення

форми?3. В якому файлі описано клас форми?4. В чому полягає різниця між модальними і немодальними

формами?5. У якому розділі класу зберігаються заголовки

оброблювачів подій для компонентів форми?

27

Лабораторна робота 4. СТВОРЕННЯ НАЙПРОСТІШИХ ОБРОБЛЮВАЧІВ ПОДІЙ

1. Мета роботиВивчення базових принципів, покладених в основу об'єктно-

орієнтованого програмування, призначення оброблювачів подій і засобів їхнього створення. Набуття навичок програмування на мові C++.

2. Підготовка до роботиУ процесі підготовки до роботи потрібно засвоїти поняття

спадкування класів, ознайомитися з бібліотекою компонентів, з поняттям "оброблювача подій" і з засобами їхнього створення, опис яких наведено в стислих теоретичних відомостях.

3. Стислі теоретичні відомостіЕлементи візуального середовища програмування Visual

Studio для побудови інтерфейсу являють собою класи. У класах описуються властивості об'єкта, його методи і події, на які він може реагувати.

Клас визначається як набір членів, а саме властивостей (змінних) і методів (функцій або процедур). В залежності від мови програмування до цього списку можуть додатися константи, атрибути та зовнішні визначення.

Завдяки важливій властивості класів спадкуванню, новий клас може успадковувати властивості, методи, події свого батьківського класу, тобто того класу, на основі якого він створюється. При програмуванні створюються класи, які успадковують характеристики базових класів бібліотек. Класи в коді додатку це типи даних, обумовлені програмістом.

Вираз виду Label1Caption означає властивість Caption об'єкта Label1, ту саму властивість Caption можна одержати і за допомогою виразу (*Label1).Caption. Аналогічна нотація використовується і для доступу до методів об'єкта.

Робота більшості середовищ із графічним інтерфейсом користувача заснована на аналізі й опрацюванні різноманітних подій. Будь-яка з доступних операційній системі подій (наприклад,

28

переміщення "миші", натискання клавіші, переповнювання жорсткого диска і т.ін.) опрацьовується або самою операційною системою, або додатком, якому операційна система передає цю подію для опрацювання. Відповідно додатки, які виконуються під керуванням таких операційних систем, мають містити опис їхньої реакції на дії користувача або системні події.

Тому в доповнення до властивостей будь-який компонент має заздалегідь визначений список подій, який він спроможний розпізнати, тобто події являють собою дії користувача або операційної системи, які розпізнає даний компонент. Під час додавання оброблювача події програма виконує введений розроблювачем набір операторів, якщо оброблювана подія відбувається. Цей набір операторів називається оброблювачем події.

Найширше використовується подія Click, яка відбувається, якщо користувач натиснув і відпустив кнопку "миші", коли покажчик "миші" знаходився на компоненті. Якщо користувач натиснув на кнопку, яка розміщена на формі, наступає подія Click даної кнопки, яка змусить додаток виконати код, що міститься в оброблювачі цієї події.

У разі подвійного натискання "миші" напроти імені події на панелі Properties генерується порожня функція, тобто оброблювач на подію подвійного натискання "миші" DoubleClick. Оброблювач події визначає, як компонент має реагувати на подію. Оброблювачі подій є спеціальними функціями. На панелі Properties можливо визначати, яка функція зв'язується з даною подією.

Події, на які може реагувати даний компонент, містяться у списку подій кнопки Events панелі Properties. Набір таких подій заздалегідь визначений для даного класу компонентів, і кожний компонент має свій власний набір подій.

Оброблювач подій це метод, пов'язаний з подією. При виникненні події виконується код в середині обробника подій. У кожному обробнику подій існує два параметри, які дозволяють правильно обробити подію. У наступному прикладі показаний заголовок функції для оброблювача події Click елемента керування button1: private: void button1_Click(System::Object ^sender, System::EventArgs ^e)

29

Перший параметр sender надає посилання на об'єкт, що викликав подію. Другий параметр e передає об'єкт, пов'язаний з подією, яка обробляється.

При ініціалізації нового процесу середовище виконання резервує для нього безперервну область адресного простору. Цей зарезервований адресний простір називається керованої купою. Керована купа містить покажчик адреси, з якого буде виділена пам'ять для наступного об'єкта в купі. Порівняно з некерованою купою, в керованій купі пам'ять вивільняється автоматично при заповненні адресного простору.

Мова розробки Visual С++ з часом набула деяких нововведень: простори імен, керовані покажчики і т.і. Керовані покажчики з'явилися, починаючи з версії VisualC++2002. Основні відмінності від звичайних покажчиків: 1) при описі такого покажчика замість знака * використовується ^; 2) виділену для них пам'ять не треба звільняти - про це подбає автоматичний збирач сміття; 3) для виділення пам'яті замість new аналогічно використовується gcnew.

У C++ для позначення посилань на керовані об'єкти використовується «^» замість «*». Це дуже зручно щоб розрізняти об'єкти, які потім треба видалити і ті, які не треба. Для виділення пам'яті в керованій купі C++ має оператор gcnew.MyClass ^obj = gcnew MyClass ;

Маркер ^ (керований покажчик) використовується для вказівки того факту, що obj є дескриптором для об'єкта посилального типу класу MyClass, розміщеного в керованій купі (* – некерований покажчик). У некерованій купі пам'ять виділяється оператором new.MyClass *obj = new MyClass ;

Механізм простору імен використовується, щоб не було конфліктів між іменами глобальних змінних, визначеними в різних модулях програми. Будь-який блок програми можна помістити всередину оператора:namespace SampleName {//опис змінноїint x; }

30

Даний блок визначає простір імен SampleName. Якщо потрібно використовувати будь-який ідентифікатор, описаний в цьому блоці (наприклад, змінну x), десь за межами блоку, доведеться звертатися до нього як SampleName::xОператор :: носить назву оператора глобального дозволу імен.

Простори імен ієрархічні. Тобто, якщо наприклад, написано:namespace SampleName1 { namespace SampleName2 { int x; } }то до змінної x доведеться звертатися SampleName1::SampleName2::x

Сучасне середовище розробки Visual Studio дає можливість згортати і розгортати окремі блоки програми. Скажімо, за замовчуванням є можливість згорнути опис класу або функції. Директива #pragma region дозволяє явним чином обмежити частину коду, який можна буде згортати і розгортати:#pragma region RegionName//область, яка згортується#pragma endregion Comment

Замість RegionName слід вставити будь-який текст. Він буде відображатися, коли область згорнута. Comment також потрібно замініти на довільний коментар.

4. Порядок виконання роботиДля того, щоб додати оброблювач події Click на пункт меню

"Выход" на головній формі , необхідно виконати такі дії:1) Оберіть головну форму у вікні конструктора, для чого у

вікні Solution Explore правою кнопкою оберіть вузол Form1.h, пункт View Design.

2) вибрати пункт меню "Выход" на формі;3) вибрати кнопку Events у вікні Properties;4) двічі натиснути "мишею" на колонку праворуч від події

Click;5) ім'я функції private: System::Void

toolStripMenuItemVihod_Click з'явиться в колонці. Visual Studio

31

згенерує прототип оброблювача події в модулі Form1.h і покаже його в редакторі коду:#pragma endregion…private: System::Void toolStripMenuItemVihod_Click(System::Object^ sender, System::EventArgs^ e)

{…

}6) створити код оброблювача події Click, для чого

використати метод Close об'єкта Form; ввести код у тіло функції:…private: System::Void toolStripMenuItemVihod_Click(System::Object^ sender, System::EventArgs^ e)

{Close();

}7). додати оброблювач події Click на пункт меню "Справка",

показавши форму opt_spr; для того, щоб показати невидиму форму opt_spr використовують метод, що робить видимим невидимий компонент. Використати відповідний метод об'єкта Form і синтаксичну конструкцію (покажчик) для звернення до властивостей і методів: opt_spr ^spr = gcnew opt_spr;spr->Show();

Додати оброблювач події Click на відповідну кнопку, обравши оброблювач із списку, який випадає на подію Click для кнопки.

8). Врахувати: якщо даний модуль (наприклад, opt_main.cpp) посилається на інші модулі або форми, то потрібно включити в нього відповідний h-файл за допомогою директиви #include. Після цього усі інтерфейсні елементи іншого модуля, наприклад, opt_spr.h будуть доступні в даному модулі Form1.h;pragma once#include "opt_spr.h"

namespace opt_project {…

32

8) для того, щоб показати інформацію зі створеного раніше текстового файла у компонент RichTextBox форми opt_spr слід у файлі opt_spr.h скористатися функцією LoadFile; оператор, що завантажує у вікно текстовий файл з диска:…void InitializeComponent(void){…//// richTextBox1// …this->richTextBox1->LoadFile("d:\\406_hnf\\opt_instr.rtf");…

9) аналогічно додати оброблювач події Click на пункт меню "Об авторе", показавши форму opt_obavt, якою зробити модальною:// для выделения памяти в управляемой куче исп. gcnew// ^ - управляемый указатель// Управляемые указатели появились, начиная с версии Visual C++ 2002// Основные отличия от обычных:// 1) при описании такого указателя вместо знака * используется ^// 2) выделенную по них память не надо освобождать – об этом// позаботится автоматический сборщик мусора// 3) для выделения памяти вместо new аналогично используется gcnewopt_obavt ^obavt = gcnew opt_obavt;obavt->ShowDialog(this);

10) можливий текст модуля Form1.h наведено в додатку С.

5. Завдання до самостійної роботиСтворити найпростіші оброблювачі подій згідно з

індивідуальним варіантом.

6. Контрольні запитання1. Що таке оброблювач подій?2. Як створити оброблювач подій?3. У якому файлі розміщається код оброблювача подій?4. Які синтаксичні конструкції застосовуються для доступу

до властивостей та методів об'єктів?

33

Лабораторна робота 5. УСТАНОВЛЕННЯ ЗВ'ЯЗКІВ МІЖ КОМПОНЕНТАМИ І БАЗОЮ ДАНИХ. НАВІГАЦІЯ ПО ТАБЛИЦІ

1. Мета роботиНабуття навичок програмування на мові C++ для організації

доступу до баз даних.

2. Підготовка до роботиУ процесі підготовки до роботи належить засвоїти принципи

організації доступу до баз даних в середовищі Visual Studio, ознайомитися з бібліотекою компонентів для програмування роботи з наборами даних, властивостями, подіями та методами застосовуваних компонентів, опис яких наведено в стислих теоретичних відомостях.

3. Стислі теоретичні відомості

Технологія ADO.NET – це набір класів, що надають служби доступу до реляційних даних, XML-даних та даних додатків. Прив'язка даних в Windows Forms дозволяє відображати і змінювати дані джерел даних в елементах управління форми. Можна виконати прив'язку не лише до традиційних джерел даних, але і практично до будь-якої структури, яка містить дані.

Технологія ADO.NET, на відміну від своїх попередників ADO і OLE DB, була розроблена спеціально для використання у веб-додатках, де не буває постійних з'єднань з БД. Традиційна робота з даними в ADO.NET будується за такою схемою: створюється з'єднання підключення, потім воно відкривається методом Open, створюється об'єкт Command, який інкапсулює SQL команду, вона виконується, а з'єднання потім закривається. Такий підхід забезпечує потоковий доступ до результатів запитів. Тобто читаючи дані за допомогою компонента DataReader, не можна перейти через кілька записів або повернутися до попередньої. Потоковий доступ має максимальну продуктивність. ADO.NET була розроблена для доступу до даних без реального з'єднання з БД. При цьому всі дані розміщуються в оперативній пам'яті.

34

Робота з від'єднаними даними в ADO.NET здійснюється за допомогою класів з простору імен System.Data.

У ADO.NET існує два підходи доступу до даних:1. Виконати підключення, завантажити необхідні дані в набір даних за допомогою адаптера даних sqlDataAdapter, закрити підключення. Виконання необхідних операцій при цьому буде здійснюватися в наборі даних, що знаходиться в кеші пам'яті комп'ютера.2. Виконати підключення, потім, використовуючи елемент управління або компонент DataCommand та інструкції SQL виконувати необхідні операції безпосередньо в базі даних, після чого закрити підключення. Якщо передбачається виконання інструкції Select, то зазвичай використовується DataReader, який забезпечує і засоби інтерпретації даних.

Найбільш важливий клас при роботі з від'єднаними даними – DataSet. Після того як результати запиту отримані за допомогою об'єкта DataAdapter і збережені в DataSet, з'єднання між БД і об'єктом DataSet перестає існувати. Зміни в DataSet не позначаються на БД і навпаки. Клас DataSet включає в себе набір таблиць DataTable і зв'язків між таблицями DataRelation. Клас DataTable включає набір рядків DataRow, набір стовпців таблиці DataColumn, і набори відносин ChildRelations і ParentRelations між стовпцями різних таблиць бази даних.

Для завантаження даних використовується адаптер даних і компонент для підключення до джерела даних – компонент з'єднання. Існує два можливих шляхи виконання цього етапу.

Перший полягає в створенні компонента підключення і, потім, створенні sqlDataAdapter, у властивостях підключення якого буде потрібно безпосередньо вказати ім'я створеного компонента sqlConnection. Другий спосіб дозволяє виконати ці дії за один крок за рахунок використання майстра Data Adapter Configuration Wizard. При цьому виконання необхідних операцій відбувається безпосередньо в базі даних. Для здійснення частих і об'ємних змін записів в БД такий спосіб є і більш ефективним. Для роботи в такому режимі існує набір об'єктів, які дозволяють виконувати команди і повертати результати з джерела даних. Компоненти

35

sqlCommand працюють разом з компонентом підключення sqlConnection

Двома основними компонентами ADO.NET для доступу до даних і їх обробки є постачальники даних .NET Framework і компонент DataSet. Постачальниками даних .NET Framework є компоненти, які спеціально сконструйовані для обробки даних і швидкого, однопрохідного доступу до даних тільки для читання. Об'єкт Connection забезпечує обмін даними з джерелом даних. Об'єкт Command дозволяє звертатися до команд бази даних для повернення даних, зміни даних, виконання збережених процедур і передачі або отримання відомостей про параметри. DataReader забезпечує високопродуктивний потік даних з джерела даних. Нарешті, sqlDataAdapter надає міст між об'єктом DataSet та джерелом даних. DataAdapter використовує об'єкти Command для виконання команд SQL на джерелі даних для завантаження DataSet.

У ADO.NET об'єкт підключення використовується для підключення до певного джерела даних шляхом надання в рядку підключення інформації, необхідної для аутентифікації. Об'єкт підключення, який використовується, залежить від типу джерела даних. Кожен постачальник даних .NET Framework включає об'єкт Connection. Постачальник даних .NET Framework для OLE DB містить об'єкт OleDbConnection, постачальник даних .NET Framework для SQL Server містить об'єкт SqlConnection, постачальник даних .NET Framework для ODBC містить об'єкт OdbcConnection, постачальник даних .NET Framework для Oracle містить об'єкт OracleConnection.

Клас DataSet в ADO.NET спеціально сконструйований для доступу до даних незалежно від джерела даних. Тому він може бути використаний з багатьма різними джерелами даних. DataSet містить колекцію одного або декількох об'єктів DataTable, які складаються з рядків і стовпців даних, а також первинний ключ, зовнішній ключ, обмеження та пов'язані відомості про даних в об'єктах DataTable. DataAdapter поміщає результати запиту у відповідну таблицю DataTable, що знаходиться в DataSet.

При вирішенні питання про те, використовувати DataReader або DataSet, слід врахувати для чого призначений додаток. DataSet

36

призначений для виконання наступних завдань: локальне кешування даних в додатку для подальшої обробки (якщо потрібно тільки зчитувати результати запиту, клас DataReader підходить якнайкраще); віддалена взаємодія з даними або веб-службою XML; динамічна взаємодія з даними, наприклад, прив'язка до елементу управління Windows Forms або комбінування і зв'язування даних з декількох джерел; виконання інтенсивної обробки, яка не вимагає відкритого з'єднання з джерелом даних, що звільняє з'єднання для використання іншими клієнтами.

Об'єкт SqlConnection представляє унікальний сеанс з'єднання з джерелом даних SQL Server, представляє відкрите з'єднання з базою даних SQL Server. У випадку бази даних типу клієнт-сервер це еквівалентно мережевому підключенню до сервера. SqlConnection використовується разом з SqlDataAdapter і SqlCommand для підвищення продуктивності при підключенні до бази даних Microsoft SQL Server.

SqlDataAdapter здійснює зв'язок між DataSet і SQLServer для отримання і збереження даних. SqlDataAdapter надає цей зв'язок, використовуючи метод Fill, що змінює дані в DataSet для відповідності їх джерелу даних, і метод Update, що змінює дані в джерелі даних для їх відповідності DataSet, за допомогою виконуваних над джерелом даних інструкцій Transact-SQL.

Компонент BindingSource розроблено для прив'язки елементів управління до базових джерел даних. Компонент BindingSource діє і як канал передачі, і як джерело даних для прив'язки інших елементів управління.

Елемент управління DataGridView надає спосіб відображення даних у табличному форматі. Елемент управління DataGridView дозволяє відображати і редагувати табличні дані з різних джерел даних. Зазвичай прив'язка здійснюється до компонента BindingSource, а компонент BindingSource зв'язується з іншим джерелом даних або заповнюється бізнес-об'єктами. Використання компоненти BindingSource є більш ефективним, оскільки він забезпечує прив'язку до різних типів джерел даних і може автоматично вирішувати різні проблеми прив'язки даних.

Заповнення набору даних фактично означає завантаження даних в окремі об'єкти DataTable, які складають набір даних.

37

Таблиці даних заповнюються шляхом виконання запитів до адаптера таблиці TableAdapter або викликом команд адаптера обробки даних (наприклад, SqlDataAdapter).

Необхідність використання об'єктів TableAdapter або адаптерів обробки даних залежить від способу створення набору даних. При використанні засобів розробки в Visual Studio, наприклад, майстра налаштування джерела даних, набір даних містить адаптери таблиць TableAdapter. Заповнення набору даних за допомогою адаптера таблиць:TableAdapter1->Fill(dataSet11);

Якщо набір даних був створений програмно, то, як правило, для завантаження даних в таблиці необхідно створення адаптерів обробки даних. Заповнення набору даних за допомогою адаптера даних DataAdapter:sqlDataAdapter1->Fill(dataset11);

4. Порядок виконання роботи1. Створити базу даних nf_optovik засобами СКБД MS SQL

Server. Третя нормальна форма бази даних nf_optovik наведена в додатку В.

2. Організація з'єднання з базою даних SQL Server. На панелі ToolBox в групі Data оберіть компонент sqlConnection, на формі з’явиться компонент sqlConnection1. У випадаючому списку властивості ConnectionString оберіть ім’я бази даних nf_optovik.

3. Налаштування доступу до таблиці. На панелі ToolBox в групі Data оберіть компонент SqlDataAdapter і перенесіть його на форму, на формі з’явиться компонент SqlDataAdapter1. Автоматично з’явиться вікно Data Adapter Configuration Wizard або оберіть правою кнопкою SqlDataAdapter1, потім Configure Data Adapter. Буде запропоновано створити нове або вибрати вже існуюче підключення до бази даних.

У разі створення нового підключення оберіть New Connection, у вікні Add Connection у випадаючому списку Server name оберіть ім'я сервера (відображаються всі доступні SQL сервера мережі). Якщо імена серверів не відображаються, введіть ім'я сервера, яке відображається при підключенні в SQLServer

38

Management Studio. В групі Log on to the server оберіть потрібний тип ідентифікації. В групі Connect to a database в списку Select enter a dabase name оберіть ім'я бази даних nf_optovik, в якій розташовується таблиця. Перевірте TestConnection і натисніть OK. У вікні Data Adapter Configuration Wizard з'явиться ім'я з'єднання kernel.nf_optovik.dbo (kernel – це імя сервера), оберіть Next.

У разі використання існуючого підключення залиште ім'я з'єднання kernel.nf_optovik.dbo, оберіть Next.

В наступному вікні оберіть перемикач Use SQL Statements, потім Next. У наступному вікні введіть SQL-оператор для вибірки даних (або можна скористатись режимом QueryBuilder). SQL- оператор для вибірки даних з таблиці postav:SELECT * FROM postav

Оберіть Next, потім Finish.Оберіть компонент SqlDataAdapter1, групі Design

властивість Name вкажіть SqlDataAdapterPostav.4. Автоматичне створення набору даних DataSet. Для

створення набору даних DataSet оберіть правою кнопкою компоненту sqlDataAdapterPostav, пункт Generate DataSet. У вікні Generate Dataset всі налаштування за замовчуванням залиште: перемикач New, ім’я opt_project.DataSet1, перемикач postav, перемикач Add this DataSet to the designer повинні бути встановлені. Натисніть кнопку ОК. Автоматично згенерована компонента DataSet11 відобразиться на панелі для невізуальних компонентів.

5. Організація зв’язку з наборами даних. Перенесіть на головну форму невізуальний компонент BindingSource, в групі Design властивість Name вкажіть BindingSourceDataSet11, у списку властивості DataSource розгорніть Other Data Sources, Form1 List Instances та оберіть DataSet11.

6. Організація зв’язку для таблиці з даними. Перенесіть на головну форму невізуальний компонент BindingSource, в групі Design властивість Name вкажіть BindingSourcePostav, у списку властивості DataSource розгорніть Other Data Sources, Form1 List Instances та оберіть DataSet11, властивість DataMember оберіть Postav.

39

7. Відображення назви таблиці. Для відображення назви таблиці, яку буде завантажено у вікно, перенесіть на форму проекту рішення компонент Panel, в групі Design властивість Name вкажіть panelInf, в групі Layout властивість Dock вкажіть Top, розкрийте властивість Size і властивість Height вкажіть 28. Перенесіть на компоненту Panel компонент label, в групі Design властивість Name вкажіть labelInf, в групі Layout розкрийте властивість Location властивість X вкажіть 250, властивість Y вкажіть 5, в групі Appearance властивість Text вкажіть «пусто».

8. Налаштування візуальної компоненти для відображення даних на формі (відображення даних таблиці Postav). Для відображення даних на формі перенесіть на головну форму візуальний компонент dataGridView. В групі Design властивість Name вкажіть dataGridViewPostav. В групі Data властивість DataSource оберіть BindingSourcePostav, Властивість Visible вкажіть false. В групі Layout оберіть властивість Anchor, вкажіть Top, Left.

9. Налаштування назв колонок. Для налаштування назв колонок в групі Misc оберіть властивість Columns, розгорніть значення (Collection). У вікні Edit Columns у списку Select Columns оберіть перше поле KOD_POST, у списку властивостей Bound Columns Properties в групі Appearance оберіть властивість Header Text та введіть назву колонки на мові інтерфейсу Код поставщика. Введіть назви всіх колонок на мові інтерфейсу.

10. Створення оброблювача події для відображення даних таблиці Postav на пункт меню «Поставщики». Для створення оброблювача події на пункт меню оберіть у вікні Properties компонент toolStripMenuItemPostav, оберіть подію Click та введіть код:PanelUslovie->Visible=false;bindingNavigator1->Visible=true;sqlDataAdapterPostav->Update(dataSet11,"postav");bindingNavigator1->BindingSource=BindingSourcePostav;dataGridViewTov->Visible=false;labelInf->Text="Поставщики";sqlDataAdapterPostav->Fill(dataSet11);

40

dataGridViewPostav->Visible=true;textBoxKolZap->Text=BindingSourcePostav->Count.ToString();

11. Відображення даних таблиці Tovar. Для відображення даних таблиці Tovar виконайте дії аналогічно попереднім пунктам для таблиці Postav.

Оберіть компоненту SqlDataAdapter, на формі з’явиться компонент SqlDataAdapter2, в групі Design властивість Name вкажіть SqlDataAdapterTovar Налаштуйте його аналогічно попереднім пунктам. SQL оператор для вибірки даних:SELECT * FROM tovar

Після налаштування SqlDataAdapter2 компоненту DataSet11 буде підключено до двох таблиць.

Перенесіть на головну форму невізуальний компонент BindingSource, в групі Design властивість Name вкажіть BindingSourceTovar, властивість DataSource оберіть BindingSourceDataSet11, властивість DataMember оберіть Tovar.

Налаштування компоненти для відображення даних на формі (відображення даних таблиці Tovar). Перенесіть на головну форму візуальний компонент dataGridView для відображення даних таблиці Tovar. В групі Design властивість Name вкажіть dataGridViewTovar. Зробіть відповідні налаштування: в групі Layout оберіть властивість Anchor, властивість Top, Left, для властивості Dock вкажіть Fill; в групі Misc налаштуйте властивість Columns. Властивість Visible вкажіть false.

12. Створення оброблювача події для відображення даних таблиці Tovar на пункт меню «Товар». Для створення оброблювача події на пункт меню оберіть у вікні Properties компонент toolStripMenuItemTov, оберіть подію Click та введіть код:dataSet11->Clear();sqlDataAdapterTovar->SelectCommand->CommandText="select * from tovar";PanelUslovie->Visible=false;bindingNavigator1->Visible=true;sqlDataAdapterTovar->Update(dataSet11,"tovar");bindingNavigator1->BindingSource=BindingSourceTovar;dataGridViewPostav->Visible=false;

41

labelInf->Text="Товар";sqlDataAdapterTovar->Fill(dataSet11);dataGridViewTov->Visible=true;textBoxKolZap->Text=BindingSourceTovar->Count.ToString();

13. Для підрахунку кількості записів у таблиці Postav після додавання записів створити оброблювач події RowsAdded для компоненти dataGridViewPostav:sqlDataAdapterPostav->Update(dataSet11);textBoxKolZap->Text=BindingSourcePostav->Count.ToString();

14. Для підрахунку кількості записів у таблиці Postav після видалення записів створити оброблювач події RowsRemoved компоненти dataGridViewPostav.

15. Організувати підрахунок записів для таблиці Tovar після додавання та видалення записів.

16. Організувати відображення назви таблиці Tovar.17. Організувати налаштування назв колонок таблиці Tovar.

5. Завдання до самостійної роботиВстановити зв'язки між компонентами і файлами даних

згідно з індивідуальним варіантом.

6. Контрольні запитання1. Які компоненти застосовують для доступу до наборів

даних?2. Які компоненти застосовуються для відображення

наборів даних?3. Поясніть призначення компонента BindingSource.4. Який компонент містить події, які відображають

маніпулювання даними в наборах?

42

Лабораторна робота 6. ПОБУДОВА ЗАПИТІВ ДО БАЗИ ДАНИХ

1. Мета роботиНабуття навичок програмування на мові C++ для побудови

запитів до наборів даних.

2. Підготовка до роботиУ процесі підготовки до роботи потрібно засвоїти принципи

організації запитів, ознайомитися з бібліотекою компонентів для запитів, властивостями, подіями та методами застосовуваних компонентів, опис яких наведено в стислих теоретичних відомостях.

3. Стислі теоретичні відомостіADO.NET – це набір бібліотек, що поставляється з Microsoft

.NET Framework і призначений для взаємодії з різними сховищами даних з .NET додатків. Бібліотеки ADO.NET включають класи для приєднання до джерела даних, виконання запитів і обробки їх результатів. Крім того, класи ADO.NET використовують для організації надійного, ієрархічно організованого, від’єднаного кеша даних для автономної роботи з даними. Головний від'єднаний об'єкт DataSet, дозволяє сортувати, здійснювати пошук, фільтрувати, зберігати відкладені зміни і переміщатися по ієрархичним даним. Крім того, об'єкт DataSet включає ряд функцій, що скорочують розрив між традиційним доступом до даних і програмуванням з використанням XML. Існує можливість працювати з XML-даними через звичайні інтерфейси доступу до даних і навпаки.

Модель ADO.NET містить два види об’єктів: приєднані (connected) та від'єднані (disconnected). Приєднані об’єкти використовуються для управління з'єднанням, транзакціями, вибірки даних і передачі змін. Вони взаємодіють безпосередньо з БД. Від'єднані об’єкти дозволяють працювати з даними автономно.

Одним із найважливіших аспектів використання файлів даних є вибір і опрацювання інформації. Ці задачі зазвичай розв'язують побудовою запитів до бази даних. Крім цього, запити

43

можуть використовуватися і для введення, модифікації та видалення даних.

У додатках, що працюють з базами даних, зазвичай застосовувався доступ до даних через постійне з'єднання з джерелом даних. Додаток відкривав з'єднання з базою даних і не закривав його принаймні до завершення роботи з джерелом даних. У цей час з'єднання з джерелом підтримувалося постійно. Недоліки такого підходу стали виявлятися після появи додатків, орієнтованих на Інтернет. З'єднання з базою даних вимагають виділення системних ресурсів, і якщо база даних розташовується на сервері, то при великій кількості клієнтів це може бути критичним для сервера.

У ADO .NET використовується інша модель доступу – доступ до від'єднаних даних. При цьому з'єднання встановлюється лише на той час, який необхідно для проведення певної операції над базою даних. Модель доступу ADO .NET у ряді випадків програє за продуктивністю традиційної моделі і для цих випадків рекомендується замість ADO .NET використовувати ADO. Концепція доступу до даних в ADO .NET заснована на використанні двох компонентів:

•набору даних (об'єкт класу DataSet) з боку клієнта, це локальне тимчасове сховище даних;

•провайдера даних (об'єкт класу DataProvider) – посередника, що забезпечує взаємодію програми та бази даних з боку бази даних (в розподілених додатках – з боку сервера).

Об'єктна модель ADO .NET використовує два класи, що виконують чітко визначені завдання при роботі з базою даних: класи приєднаних об'єктів, класи від'єднаних об'єктів.

Класи приєднаних об'єктів забезпечують встановлення з'єднання з базою даних і управління базою з боку додатка; класи від'єднаних об'єктів забезпечують збереження, використання і перетворення отриманої від бази даних інформації на стороні додатку (Рис. 4).

Клас DataTable. Кожен об'єкт DataTable представляє одну таблицю бази даних.

44

Рис.5 Класи об'єктної моделі ADO .NET

Клас DataView. Об'єкти класу DataView не призначені для організації візуалізації об'єктів DataTable. Їх призначення – простий послідовний доступ до рядків таблиці. Об'єкти DataView є засобом перебору записів таблиці. Після створення об'єкта DataView і його настроювання на конкретну таблицю з'являється можливість перебору записів, їх фільтрації, пошуку і сортування.

Клас DataSet. В рамках від'єднаної моделі ADO .NET об'єкт DataSet стає важливим елементом технології від'єднаного доступу. Об'єкт-представник DataSet може представляти декілька таблиць.Функціональні можливості дозволяють завантажити в локальне сховище на стороні додатку дані з будь-якого допустимого для ADO. NET джерела: SQL Server, Microsoft Access, XML-файл і т.ін.DataSet – це об'єкт, який знаходиться в пам'яті ADO. NET і який використовується в додатку для представлення даних; він визначає узгоджену реляційну модель бази даних, яка не залежить від джерела даних, які містяться в ньому. Ступінь повноти моделі визначається завданнями, які вирішує додаток. Об'єкт DataSet може представляти абсолютно точну модель бази даних, і в такому випадку ця модель повинна буде включати повний набір структурних елементів бази даних, включаючи таблиці, що містять

45

Класи приєднаних об'єктівКласи від’єднаних об'єктів

дані, з урахуванням встановлених обмежень і зв'язків між таблицями.

Інформацію, яка міститься в об'єкті DataSet можна змінювати незалежно від джерела даних (від самої БД). Відповідні значення формуються безпосередньо в програмі і додаються в таблиці.При роботі з базою даних дані можуть збиратися з різних таблиць, локальне представлення яких забезпечується різними об'єктами – представниками класів DataSet. Таким чином, DataSet є основою для побудови різних варіантів від'єднаних об'єктів – сховищ інформації.

Постачальник даних для програми (провайдер) – об'єкт, призначений для забезпечення взаємодії додатку з сховищем інформації (базами даних). Джерело даних (Data Provider) – це набір взаємозалежних компонентів, що забезпечують доступ до даних. Функції забезпечуються набором спеціально розроблених класів. ADO .NET підтримує два типи джерел даних, відповідно, два класи:

• SQL Managed Provider (SQL Server.NET Data Provider) – для роботи з Microsoft SQL Server 7.0 і вище;

• ADO Managed Provider (OleDb.NET Data Provider) – для всіх інших баз даних. Забезпечує роботу з довільними базами даних. Однак за рахунок універсальності є програш в порівнянні з SQL Server Provider, так що при роботі з SQL Server рекомендовано використовувати спеціалізовані класи.

Кожен постачальник даних .NET реалізує однакові базові класи – Connection, Command, DataProvider, Parameter і Transaction, конкретне ім'я яких залежить від постачальника.

У постачальника SQL Client .NET Data Provider є об'єкт SqlConnection, а у постачальника OLE DB. NET Data Provider – об'єкт OleDbConnection. У кожного постачальника даних .NET – власний простір імен. Обидва постачальника зі складу .NET Framework відносяться до простору імен SystemData, де знаходяться від'єднані об'єкти.

Клас Connection. Представник класу Connection представляє з'єднання з джерелом (базою) даних і забезпечує підключення до бази даних. Компонента Connection (незалежно від того, представником якого класу вона є) має властивість

46

ConnectionString, в якій фіксується вся необхідна для встановлення з'єднання з БД інформація.

Запити бувають декількох видів: запити, які не повертають записів (action query або командні запити, які призначаються для зміни вмісту бази даних); запити, що повертають значення з бази даних; запити з параметрами.

Об'єкт Command забезпечує управління джерелом даних, яке полягає: у виконанні DML (Data Manipulation Language) запитів, які не повертають дані (INSERT, UPDATE, DELETE); у виконанні DDL запитів (Data Definition Language), які змінюють структуру бази даних (CREATE); у виконанні запитів, повертають дані через об'єкт DataReader (SELECT).

Об'єкт Command представлено двома класами – SqlCommand і OleDb Command. Дозволяє виконувати команди на БД і при цьому використовує встановлене з'єднання. Виконувані команди можуть бути представлені: збереженими процедурами; командами SQL; операторами, які повертають окремі таблиці. Доступ до даних в ADO .NET за допомогою Data Provider здійснюється наступним чином:

1. Об'єкт – представник класу Connection встановлює з'єднання між БД і додатком.

2. Це з'єднання стає доступним об'єктам Command і DataAdapter.

3. При цьому об'єкт Command дозволяє виконувати команди безпосередньо над БД.

4. Якщо виконувана команда повертає кілька значень, Command відкриває доступ до них через об'єкт DataReader.

5. Результати виконання команди обробляються або безпосередньо з використанням коду програми, або через об'єкт DataSet, який заповнюється за допомогою об'єкта DataAdapter.

6. Для поновлення БД застосовують також об'єкти Command і DataAdapter.

Отже, в будь-якому випадку, незалежно від обраного постачальника даних, при роботі з даними в ADO .NET використовуються: об’єкт Connection для установки з'єднання з базою даних; об’єкт Dataset для представлення даних на стороні додатку; об’єкт Command для зміни стану бази.

47

Клас DataReader надає підключення до джерела даних і доступний лише для односпрямованого читання. Забезпечення так званого "доступу до від'єднаних даними" виконується за допомогою об'єкта DataReader.

Заповнення набору даних фактично означає завантаження даних в окремі об'єкти DataTable. Таблиці даних заповнюються шляхом виконання запитів до адаптера таблиці TableAdapter або викликом команд адаптера обробки даних (наприклад, SqlDataAdapter). Необхідність використання об'єктів TableAdapter або адаптерів обробки даних залежить від способу створення набору даних. При використанні засобів розробки в Visual Studio, наприклад майстра настройки джерела даних, набір даних містить адаптери таблиць TableAdapter. Якщо набір даних був створений програмно, то, як правило, для завантаження даних в таблиці необхідно створення адаптерів обробки даних.

4. Порядок виконання роботи

А). Створення панелей для роботи з запитами.1. Створити панель запитів: установіть компонент Panel,

властивість Name має дорівнювати PanelUslovie,в групі Layout властивість Dock вкажіть Bottom, розкрийте властивість Size і властивість Height вкажіть 28, в групі Appearance властивість Text вкажіть «пусто»., властивість Visible вкажіть False.

2. На панелі запитів PanelUslovie установити компонент Label, властивість Name має дорівнювати LabelUsl, а властивість Text рівною "Введите код поставщика:". Установити компонент textBox, властивість Name має дорівнювати textBoxUsl. Установити компонент Button, властивість Name має дорівнювати ButtonDa, властивість Text вкажіть Да. Установити компонент Button, властивість Name має дорівнювати ButtonNet, , властивість Text вкажіть Нет.

В). Організація запиту.1. Створити оброблювач події на пункт меню Запрос, щоб

показати панель для обробки запиту PanelUslovie.2. Створити оброблювач події OnClick на натискання

кнопки ButtonNet, зробивши невидимими непотрібні компоненти.

48

3. Створити для компоненти textBoxUsl оброблювач події TextChanged для того, щоб запам'ятати значення властивості Text при введенні поле ZKodPostav.

4. Змінну VvodKodPost об’явити як зовнішню для усіх оброблювачів після оператору #pragma endregionString^ VvodKodPost;

5. Зробити невидимою компоненту bindingNavigator1.6. Створити оброблювач події Click на натискання кнопки

ButtonDa: bindingNavigator1->Visible=false;dataGridViewTov->Visible=true;dataSet11->Clear();sqlDataAdapterTovar->SelectCommand->CommandText="select * from tovar where kod_post='"+VvodKodPost+"' order by cena";sqlDataAdapterTovar->Fill(dataSet11);

Звернути увагу, що синтаксис наведеного нижче оператору залежить від типу поля kod_post. Якщо змінна kod_post числового типу, то її значення не вказувати в одинарних дужках.select * from tovar where kod_post='"+VvodKodPost+"' order by cena";

5. Завдання до самостійної роботиОрганізувати виконання запиту згідно з індивідуальним

варіантом.

6. Контрольні запитання1. Для чого використовують запити?2. Які компоненти застосовуються для формування запиту?3. Які компоненти застосовуються для відображення

результатів запиту?4. Яка мова використовується для побудови запитів?

Лабораторна робота 7. СТВОРЕННЯ ЗВІТУ ДЛЯ ВИВОДУ НА ДРУК

49

1. Мета роботиВивчення можливостей і набуття навичок роботи при

створенні звітів.

2. Підготовка до роботиДля організації звітів у обраних середовищах потрібно

ознайомитись з технологіями побудови звітів, опис яких наведено в стислих теоретичних відомостях.

3. Стислі теоретичні відомостіVisual Studio підтримує декілька рішень для складання звітів,

надаючи можливості для генерації інформативних звітів в додатках. Можна створювати та додавати звіти за допомогою елементів управління ReportViewer, засобів Crystal Reports або служб звітів SQL Server (SQL Server Reporting Services). Служби SQL Server Reporting Services – це частина SQL Server 2005, а не Visual Studio. Якщо SQL Server 2005 не встановлений, то, відповідно, служби Reporting Services також не встановлені.

Найпростіший спосіб запровадження функціональних можливостей створення звітів в додатках Windows – додавання елемента керування ReportViewer до форми додатка. Цей елемент управління безпосередньо наділяє додаток можливостями обробки звітів і надає вбудований конструктор звітів, що дозволяє складати звіти, використовуючи дані з будь-якого об'єкта даних ADO.NET. Повнофункціональний API забезпечує програмний доступ до елемента управління і звітів.

ReportViewer – це окремий, вільно поширюваний елемент управління даними, що надає вбудовані можливості обробки та перегляду звітів. Елемент управління ReportViewer має сенс вибрати, якщо потрібні наступні функціональні можливості:

– обробка звітів в клієнтському додатку (оброблений звіт відображається в області перегляду, наданої елементом управління);

– прив'язка даних до таблиць даних ADO.NET (можна створювати звіти, які використовують екземпляри об'єктів DataTable, надані елементу управління, можна також здійснювати безпосередню прив'язку до бізнес-об'єктів);

50

– використання вільно поширюваних елементів управління, які можна включити в додаток;

– функціональні можливості часу виконання, такі як навігація по сторінках, друк, пошук (підтримку цих операцій забезпечує панель інструментів ReportViewer).

У Visual Studio звіти зберігаються у вигляді RDLC-файлів. Ці файли засновані на тій же схемі, що RDL-файли, які публікуються на серверах звітів служб SQL Server, однак зберігаються і обробляються інакше. Під час виконання RDLC-файли обробляються локальним чином, а RDL-файли – віддаленим.

Засіб Crystal Reports входить до складу середовища розробки Visual Studio. Crystal Reports for Visual Studio дозволяє інтерактивно і з високою якістю відображати дані в середовищі Windows. За допомогою Crystal Reports for Visual Studio можна створювати складні і професійні звіти в програмах, що використовують графічний інтерфейс користувача. Подання даних у спеціальних форматах, зведених дані, багаторівневих підсумків, діаграм, посторінковий вивід реалізує Crystal Reports. В якості джерела даних для звіту можна використовувати практично будь-яку базу даних або дані з проміжного джерела. Звіт можна підключити до веб-додатку або додатку Windows за допомогою одного з елементів управління засобів перегляду Crystal Reports for Visual Studio.

Служби звітів SQL Server Reporting Services – це серверна технологія складання звітів, що входить до складу SQL Server. Служби звітів включають в себе додаткові функції, відсутні в елементі керування ReportViewer. Має сенс вибирати служби звітів, якщо потрібна будь-яка з наступних можливостей:

– масштабне розгортання та обробка звітів на стороні сервера, яке забезпечує підвищену продуктивність для складних звітів з великим обсягом операцій;

– інтегрована обробка даних і звітів з підтримкою призначених для користувача елементів управління звітами та різноманітних вихідних форматів відтворення звітів;

– обробка звітів за розкладом, що дозволяє точно вказати, коли слід виконувати звіти;

51

– поширення звітів на основі передплати по електронній пошті або через загальні папки;

– функції складання спеціальних звітів, що дозволяють бізнес-користувачам створювати звіти по мірі необхідності.

Сервер звітів реалізований як веб-служба. Код додатка повинен включати виклики веб-служби для доступу до звітів та інших метаданих. Веб-служба надає повний програмний доступ до примірника сервера звітів.

Оскільки служби звітів являють собою веб-технологію, в засобі перегляду за замовчуванням відображаються звіти, які візуалізовані у форматі HTML. Якщо HTML не використовується як заданий за замовчуванням формат подання звітів, необхідно створити засіб користувача перегляду звітів.

Для побудови звітів в Visual Studio з використанням Reporting Services необхідно створити файли визначення звітів (RDL) в Visual Studio за допомогою програмного середовища Business Intelligence Development Studio, що входить до складу SQL Server 2005.

Business Intelligence Development Studio надає шаблони проектів, які відносяться до компонентів SQL Server. Для створення звітів можна вибрати шаблон Report сервера звітів або Майстер проектів сервера звітів. Можна задати підключення до джерел даних і запити до різних типів джерел даних, включаючи SQL Server, Oracle, служби аналітики, XML і служби інтеграції SQL Server.

Елементи управління ReportViewer і служби звітів Reporting Services SQL Server 2005 можуть використовуватися разом в одному додатку. Елемент управління ReportViewer надає засіб перегляду, який використовується для відображення звітів в додатку. Служби звітів надають звіти і виконують всю обробку на віддаленому сервері.

У режимі локальної обробки обробка звітів виконується елементом управління ReportViewer в клієнтському додатку. Вся обробка звітів виконується в локальному процесі з використанням даних, переданих додатком. Для створення звітів в режимі локальної обробки використовується шаблон проекту звіту в середовищі Visual Studio.

52

Режимом віддаленої обробки називається обробка звітів, яка виконується сервером звітів Reporting Services SQL Server 2005 або вище. У режимі віддаленої обробки елемент управління ReportViewer використовується в якості засобу перегляду для підготовки до перегляду звіту, який обробляється на сервері звітів Reporting Services. Всі етапи обробки, від отримання даних до обробки звіту, виконуються на сервері звітів.

Microsoft SQL Server 2005 Reporting Services (SSRS) забезпечує функціональні можливості формування веб-звітів в рамках підприємства, дозволяючи створювати звіти на основі даних з багатьох джерел, публікувати їх в різних форматах, централізовано керувати безпекою і підписками.

Сервер звітів – це основний компонент служб Reporting Services. Він реалізований у вигляді служби Microsoft Windows і веб-служби і являє собою структуру для обробки даних і побудови звітів. Веб-служба реалізує ряд програмних інтерфейсів, якими клієнтські додатки можуть користуватися для доступу до сервера звітів. Служба Windows містить служби ініціалізації, планування і доставки, а також забезпечує обслуговування сервера. Ці служби взаємопов'язані і разом складають єдиний екземпляр сервера звітів.

За допомогою служб Служби Reporting Services можна створити інтерактивні, табличні, графічні звіти і звіти вільної форми з реляційних, багатовимірних і XML-джерел даних. Звіти можуть включати візуалізацію складних даних, в тому числі діаграм, карт. Надається можливість вибору форматів перегляду, можливість публікувати звіти, планувати їх обробку або здійснювати доступ до звітів за вимогою, здійснювати експорт звітів в інші додатки, наприклад, Microsoft Excel.

4. Порядок виконання роботиСтворення локального звіту з використанням компонента

ReportViewer.А). Створення файлів для виводу на друк.1. Створення форми для виводу на друк. У меню Project

послідовно виберіть команди Add New Item, Visual C++, Windows Form, в полі Name введіть імя файлів форми opt_pech, в полі

53

Location вкажіть шлях до папки з проектом рішення …\opt_solution\opt_project, оберіть Add.

Оберіть форму opt_pech, в групі Appearance властивість Text вкажіть Отчет для вывода на печать, в групі Layout властивість WindowStyle встановити Maximized.

В). Налаштування компонент.1. На панелі DataSources обрати правою кнопкою

компоненту DataSet11, обрати пункт Edit DataSet in Designer.2. У вікні редактора схеми DataSet1.xsd обрати правою

кнопкою вільну частину вікна, обрати пункт Add, потім TableAdapter, використати існуюче підключення до бази даних nf_optovik, обрати Next, залишити перемикач Use SQL statements.

В конструкторі запитів створити запит, наприклад:SELECT postav.nazv_post, tovar.naim, tovar.cena, tovar.ed_izm, grup_p.nazv_gr FROM postav INNER JOIN tovar on postav.kod_post = tovar.kod_post INNER JOINgrup_p on tovar.nom_gr = grup_p.nom_gr або мовою SQL:SELECT postav.nazv_post, tovar.naim, tovar.cena, tovar.ed_izm, grup_p.nazv_gr FROM postav, tovar, grup_p WHERE postav.kod_post = tovar.kod_post

У вікні редактора схеми буде згенерована компонента DataTable1.

3. Вийти з редактора схеми DataSet1.xsd із збереженням результатів.

С). Створення звіту.1. Створення звіту з використанням ReportViewer. Щоб

створити звіт, виконуваний в ReportViewer, додайте в проект шаблон Report, для чого у меню Project послідовно виберіть команди Add New Item, Visual C++, у вузлі Visual C++ оберіть Data, Report, в полі Name введіть імя файлів форми opt_report.rdlc, в полі Location залиште шлях до папки з проектом рішення …\opt_solution\opt_project, оберіть Add, відкриється вбудований конструктор звітів в робочій області Visual Studio.

2. Оберіть на панелі Toolbox в групі Report Items оберіть елемент Table і покладіть на елемент Body.

54

3. На панели Data Sources розкрити вузол DataSet1, розкрити вузол DataTable1, перетягнути перше поле nazv_post на компоненту Table1 в зону Detail у першому стовпчику. Оберіть поле nazv_post на компоненті Table1 в зоні Header або оберіть компоненту textbox1 на панелі Properties, властивість Value встановіть Название поставщика.

Аналогічно налаштувати інші поля.4. Відкрийте файл opt_pech[Design] в режимі конструктора,

оберіть на панелі Toolbox елемент ReportViewer з розділу Reporting і перетягніть на форму.

5. Оберіть елемент ReportViewer. Оберіть елемент ReportViewer, в групі Layout властивість Dock вкажіть Fill. В правому верхньому куті елемента ReportViewer відкрийте позначку. Із списку Choose Report оберіть створений звіт opt_report.rdlc.

Після вибору звіту автоматично створюються екземпляри джерел даних, які використовуються в звіті. Формується код для створення екземпляра DataSet (контейнера ADO.NET для DataTable), компонента TableAdapter і об'єкта BindingSource, відповідного кожному джерелу даних у звіті. Автоматично згенеровані компоненти відображаються на панелі для невидимих компонент вікна opt_pech[Design].

6. Оберіть елемент ReportViewer. Для формування звіту, який обробляється і готується до перегляду локально, без з'єднання з сервером звітів, в групі Misc розкрийте властивість LocalReport, оберіть властивість ReportEmbeddedResource (задає ім'я впровадженого ресурсу звіту) вкажіть opt_Report.rdlc. Властивість ReportPath, яка задає системний шлях до локального файла локального звіту, вкажіть …\opt_solution\opt_project\ opt_Report.rdlc.

7. Для формування заголовку звіту додати компоненту TextBox з панелі Toolbox з групи Common Controls, в групі Appearance властивість Text встановити Товары поставщика, властивість BorderStyle встановити None.

D). Перегляд звіту. 1. Для перегляду звіту створити оброблювач події на пункт

меню Печать в файлі Form1.h:

55

private: System::Void toolStripMenuItemPPechat_Click(System::Object^ sender, System::EventArgs^ e)

{opt_pech^ pechat= gcnew opt_pech;pechat->Show();

}2. Підключити в файлі Form1.h файл opt_pech.h:

#pragma once#include "opt_spr.h"#include "opt_obavt.h"#include "opt_pech.h"namespace opt_project {…

3. В файлі opt_pech.h автоматично буде згенеровано код:…#pragma endregionprivate: System::Void opt_pech_Load(System::Object^ sender, System::EventArgs^ e) {// TODO: This line of code loads data into the 'DataSet1.DataTable1' table. You can move, or remove it, as needed.this->DataTable1TableAdapter->Fill(this->DataSet1->DataTable1);this->reportViewer1->RefreshReport();

}4. Виконати додаток.

5. Завдання до самостійної роботиСтворити звіт згідно з індивідуальним варіантом.

6. Контрольні запитання1. Яку форму-компонент використовують для побудови

звітів?2. Які компоненти містять текст звіту?3. Як формують рядки звіту?4. Як формують заголовки звіту?5. Які компоненти потрібні для доступу до даних у звіті?6. Як здійснюється нумерація сторінок звіту?

56

МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ КУРСОВОЇ РОБОТИ

Завдання до курсової роботи.Створити інформаційно-пошукову систему за обраним варіантом

Курсова робота це творча робота над вивченим матеріалом. Метою курсового проектування є засвоєння теоретичного матеріалу, вміння застосовувати його в практичних цілях для створення інформаційно-пошукової системи за обраним варіантом.

Тему курсової роботи (номер варіанта) обирає студент і затверджує керівник роботи (Таблиця 5). Курсова робота за обраним варіантом створюється на основі послідовного виконання лабораторних робіт (реалізовано варіант "Оптовик").

Рекомендований план структури роботи:1. Програмні засоби проектування прикладних

інформаційних систем.2. Постановка задачі “Оптовик” для автоматизації обліку

товарів на оптовій базі.3. Проектування бази даних для інформаційно-довідкової

підсистеми “Оптовик” (третя нормальна форма).4. Створення бази даних для задачі “Оптовик” засобами

СКБД.5. Розроблення клієнтського додатку “Оптовик”.6. Умови застосування і технологія експлуатації задачі

“Оптовик”.Курсова робота має обсяг 1520 сторінок пояснювальної

записки (без урахування текстів програм). Обсяг розділів 35 має становити не менше 60 % від загального обсягу. Роботу оформляти виконувати з урахуванням діючих стандартів.

57

ВАРІАНТИ КУРСОВИХ РОБІТ

Таблиця 5Номер

варіанта Завдання

1 21 Спроектувати і створити інформаційно-довідкову систему

“СТУДЕНТ” для автоматизації роботи деканату2 Спроектувати і створити інформаційно-довідкову систему

”АБІТУРІЄНТ" для автоматизації роботи приймальної комісії

3 Спроектувати і створити інформаційно-довідкову систему “АУДИТ” для автоматизації роботи компанії з перевірки діяльності підприємств

4 Спроектувати і створити інформаційно-довідкову систему обліку товарів на оптовій базі “ОПТОВИК”

5 Спроектувати і розробити інформаційно-довідкову систему “КАДРИ” для автоматизації роботи відділів кадрів підприємств

6 Спроектувати і розробити інформаційно-довідкову систему “ЗАРПЛАТА” для автоматизації розрахунків заробітної плати

7 Спроектувати і створити інформаційно-довідкову систему комерційної інформації “НЕРУХОМІСТЬ” для автоматизації роботи агенції з оренди та продажу житла й інших об’єктів нерухомості

8 Спроектувати і створити інформаційно-довідкову систему обліку комерційної інформації “БІЗНЕС–КОМЕРСАНТ” для складання прайс-журналів

9 Спроектувати і створити інформаційно- довідкову систему “СТРАХОВА КОМПАНІЯ” для автоматизації роботи страхової компанії

10 Спроектувати і створити інформаційно-довідкову систему “ЖД-Киев” для автоматизації продажу квитків у залізничних касах

1 2

58

11 Спроектувати і створити інформаційно-довідкову систему “КІНО-АРХІВ” для автоматизації роботи архіву даних

12 Спроектувати і розробити інформаційно-довідкову систему “РЕЄСТРАТУРА” для автоматизації роботи поліклініки

13 Спроектувати і реалізувати інформаційно-довідкову підсистему “МИТНИЦЯ” для автоматизації обліку перевезення вантажів і товарів

14 Спроектувати і створити інформаційно-довідкову систему “СПОРУДА” для автоматизації обліку діяльності будівельної компанії

15 Спроектувати і створити інформаційно-довідкову систему “АЕРОПОРТ-КАСА” для автоматизації продажу квитків на рейси

16 Спроектувати і створити інформаційно-довідкову систему “ТЕЛЕКОМ” для автоматизації розрахунків за користування послугами міської і міжнародної телефонної мережі та операторів зв’язку

17 Спроектувати і створити інформаційно-довідкову систему “РЕКЛАМА-ІНТЕР” для автоматизації роботи відділу реклами на телебаченні

18 Спроектувати і створити інформаційно-довідкову систему “БАНК” для автоматизації обліку банківських операцій із платіжними документами клієнтів банку

19 Спроектувати, розробити і реалізувати інформаційно-довідкову систему “ФАРМАЦІЯ” для автоматизованого пошуку ліків в аптеках

20 Спроектувати і створити інформаційно-довідкову систему “АС-КИЕВ” для автоматизації продажу квитків на маршрути автобусів

21 Спроектувати і створити інформаційно-довідкову систему “МИТНИЦЯ-ПОРУШЕННЯ” для автоматизації урахування порушень у державній митній службі

1 2

59

22 Спроектувати і створити інформаційно-довідкову систему “ЧЕМПІОНАТ” для автоматизації аналізу результатів спортивного змагання

23 Спроектувати і створити інформаційно-довідкову підсистему “ТОВАРИ-ПОСЛУГИ” для автоматизації фінансово-господарської діяльності підприємства

24 Спроектувати і створити інформаційно-довідкову систему “ТУР-ОПЕРАТОР” для автоматизації роботи компанії з продажу турів

25 Спроектувати і створити інформаційно-довідкову систему “КЛІМАТИЧНА ХАРАКТЕРИСТИКА АЕРОПОРТУ” для автоматизації ведення даних про погоду

26 Спроектувати і створити інформаційно-довідкову систему “ЛОГІСТИКА” для автоматизації роботи компанії з вантажних перевезень

27 Спроектувати і створити інформаційно-довідкову систему “ДержАвтоІнспекція” для автоматизації обліку і розшуку автотранспорту

28 Спроектувати і створити інформаційно-довідкову систему “ПРОКАТ-АВТО” для автоматизації роботи підприємства з прокату автотранспорту

29 Спроектувати і створити інформаційно-довідкову систему “КАДРОВЕ АГЕНСТВО” для автоматизації роботи підприємства з підбору персоналу

30 Спроектувати і створити інформаційно-довідкову систему “БІБЛІОТЕКА” для автоматизації роботи бібліотечного абонементу

60

Додаток А. Вікно додатку варіанту «Оптовик»

61

Додаток В. Графічне подання зв’язків між таблицями даних бази даних.

Третя нормальна форма

62

Додаток С. Текст модуля FORM1.H

#pragma once#include "opt_spr.h"#include "opt_obavt.h"#include "opt_pech.h"

namespace opt_project {using namespace System;using namespace System::ComponentModel;using namespace System::Collections;using namespace System::Windows::Forms;using namespace System::Data;using namespace System::Drawing;/// <summary>/// Summary for Form1…

…#pragma endregionString^ VvodKodPost;

private: System::Void toolStripComboBox1_Click(System::Object^ sender, System::EventArgs^ e) {

}private: System::Void toolStripMenuItem5_Click(System::Object^ sender, System::EventArgs^ e) {

}private: System::Void menuStrip1_ItemClicked(System::Object^ sender, System::Windows::Forms::ToolStripItemClickedEventArgs^ e) {

}private: System::Void ToolStripMenuItemSpr_Click(System::Object^ sender, System::EventArgs^ e)

{opt_spr ^spr = gcnew opt_spr;spr->Show();

}private: System::Void toolStripMenuItemVihod_Click(System::Object^ sender, System::EventArgs^ e)

{Close();

}

63

private: System::Void toolStripMenuItemObAvt_Click(System::Object^ sender, System::EventArgs^ e)

{opt_obavt^ obavt = gcnew opt_obavt;obavt->ShowDialog(this);

}private: System::Void dataGridView1_CellContentClick(System::Object^ sender, System::Windows::Forms::DataGridViewCellEventArgs^ e) {

}private: System::Void sqlConnection1_InfoMessage(System::Object^ sender, System::Data::SqlClient::SqlInfoMessageEventArgs^ e) {

}private: System::Void toolStripMenuItemPostav_Click(System::Object^ sender, System::EventArgs^ e)

{PanelUslovie->Visible=false;bindingNavigator1->Visible=true;//При редактировании содержимого в DataGrid//изменения сохраняются в наборе данных, но не в базе//Для передачи данных в базу использунтся//метод адаптера данных UpdatesqlDataAdapterPostav->Update(dataSet11,"postav");bindingNavigator1->BindingSource=BindingSourcePostav;dataGridViewTov->Visible=false;labelInf->Text="Поставщики";sqlDataAdapterPostav->Fill(dataSet11);dataGridViewPostav->Visible=true;textBoxKolZap->Text=BindingSourcePostav->Count.ToString();

}private: System::Void sqlDataAdapter1_RowUpdated(System::Object^ sender, System::Data::SqlClient::SqlRowUpdatedEventArgs^ e) {

}private: System::Void sqlDataAdapter2_RowUpdated(System::Object^ sender, System::Data::SqlClient::SqlRowUpdatedEventArgs^ e) {

}private: System::Void toolStripMenuItemTov_Click(System::Object^ sender, System::EventArgs^ e)

{dataSet11->Clear();

64

sqlDataAdapterTovar->SelectCommand->CommandText="select * from tovar";PanelUslovie->Visible=false;bindingNavigator1->Visible=true;//При редактировании содержимого в DataGrid//изменения сохраняются в наборе данных, но не в базе//Для передачи данных в базу использунтся//метод адаптера данных UpdatesqlDataAdapterTovar->Update(dataSet11,"tovar");bindingNavigator1->BindingSource=BindingSourceTovar;dataGridViewPostav->Visible=false;labelInf->Text="Товар";sqlDataAdapterTovar->Fill(dataSet11);dataGridViewTov->Visible=true;textBoxKolZap->Text=BindingSourceTovar->Count.ToString();

}private: System::Void BindingSourcePostav_PositionChanged(System::Object^ sender, System::EventArgs^ e)

{ }

private: System::Void BindingSourcePostav_DataSourceChanged(System::Object^ sender, System::EventArgs^ e)

{ }

private: System::Void dataGridViewTov_RowsAdded(System::Object^ sender, System::Windows::Forms::DataGridViewRowsAddedEventArgs^ e)

{sqlDataAdapterTovar->Update(dataSet11);textBoxKolZap->Text=BindingSourceTovar->Count.ToString();

}private: System::Void dataGridViewPostav_RowsAdded(System::Object^ sender, System::Windows::Forms::DataGridViewRowsAddedEventArgs^ e)

{sqlDataAdapterPostav->Update(dataSet11);textBoxKolZap->Text=BindingSourcePostav->Count.ToString(); }private: System::Void dataGridViewPostav_RowsRemoved(System::Object^ sender, System::Windows::Forms::DataGridViewRowsRemovedEventArgs^ e)

65

{sqlDataAdapterPostav->Update(dataSet11);textBoxKolZap->Text=BindingSourcePostav->Count.ToString();

}private: System::Void dataGridViewTov_RowsRemoved(System::Object^ sender, System::Windows::Forms::DataGridViewRowsRemovedEventArgs^ e)

{sqlDataAdapterTovar->Update(dataSet11);textBoxKolZap->Text=BindingSourceTovar->Count.ToString();

}private: System::Void toolStripMenuItemZapr_Click(System::Object^ sender, System::EventArgs^ e)

{PanelUslovie->Visible=true;

}private: System::Void ButtonDa_Click(System::Object^ sender, System::EventArgs^ e)

{bindingNavigator1->Visible=false;dataGridViewTov->Visible=true;dataSet11->Clear();sqlDataAdapterTovar->SelectCommand->CommandText="SELECT postav.nazv_post, TOVAR.NAIM, TOVAR.CENA, grup_p.nazv_gr, TOVAR.KOD_POST "+"FROM postav INNER JOIN TOVAR ON postav.KOD_POST = TOVAR.KOD_POST "+"INNER JOIN grup_p ON TOVAR.nom_gr = grup_p.nom_gr "+"WHERE (TOVAR.KOD_POST = '00120')";//sqlDataAdapterTovar->SelectCommand->CommandText=//"select * from tovar where kod_post='"+VvodKodPost+"' order by cena";sqlDataAdapterTovar->Fill(dataSet11);

}private: System::Void ButtonNet_Click(System::Object^ sender, System::EventArgs^ e)

{PanelUslovie->Visible=false;//dataGridViewTov->Visible=false;

}private: System::Void textBoxUsl_TextChanged(System::Object^ sender, System::EventArgs^ e)

66

{VvodKodPost=textBoxUsl->Text;

}private: System::Void toolStripMenuItemPPechat_Click(System::Object^ sender, System::EventArgs^ e)

{// для печати организована компонента DataTable1DataTable1// в схеме DataSet1.xsdopt_pech ^pechat= gcnew opt_pech;pechat->Show();//reportViewer1->Visible=true;//printForm1->Print();

}private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{ }

};}

67

СПИСОК ЛІТЕРАТУРИ

1. Дейт К. Дж. Введение в системы баз данных. –8-е изд.: Пер. с англ. –М.: Издательский дом "Вильямс", 2006. – 1328 с.

2. Роберт Э. Уолтерс, Майкл Коулс. SQL Server 2008: ускоренный курс для профессионалов = Accelerated SQL Server 2008. — М.: «Вильямс», 2008. — С. 768

3. Роберт Виейра. Программирование баз данных Microsoft SQL Server 2005. Базовый курс = Beginning Microsoft SQL Server 2005 Programming. — М.: «Диалектика», 2007. — С. 832. 

4. Майк Гандерлой, Джозеф Джорден, Дейвид Чанц Освоение Microsoft SQL Server 2005 = Mastering Microsoft SQL Server 2005. — М.: «Диалектика», 2007. — С. 1104. 

5. Джеймс Р. Грофф, Пол Н. Вайнберг. SQL: Полное руководство. –3-е изд.: Пер.с англ. –М.: Издательский дом " Диалектика-Вильямс", 2012. – 960 с.

6. Ник Рендольф, Дэвид Гарднер, Майкл Минутилло, Крис Андерсон Visual Studio 2010 для профессионалов = Professional Visual Studio 2010. — М.: «Диалектика», 2011. — С. 1184.

7. Пауэрс Л., Снелл М. Microsoft Visual Studio 2008 = Microsoft Visual Studio 2008 Unleashed by Lars Powers and Mike Snell. — C.: «БХВ-Петербург», 2008. — С. 1200.

68

ЗМІСТ

ЗАГАЛЬНІ МЕТОДИЧНІ ВКАЗІВКИ.........................................................3Лабораторна робота 1. ОРГАНІЗАЦІЯ ФАЙЛІВ РІШЕНЬ ТА ФАЙЛІВ ПРОЕКТУ В VISUAL STUDIO. СТВОРЕННЯ НАЙПРОСТІШОГО WINDOWS-ДОДАТКА................................................................................5Лабораторна робота 2. ДОДАВАННЯ КОМПОНЕНТІВ ДО ФОРМИ. СТВОРЕННЯ МЕНЮ І ПАНЕЛІ ІНСТРУМЕНТІВ..................................19Лабораторна робота 3. ДОДАВАННЯ ФОРМИ ДО ПРОЕКТУ...............24Лабораторна робота 4. СТВОРЕННЯ НАЙПРОСТІШИХ ОБРОБЛЮВАЧІВ ПОДІЙ..........................................................................28Лабораторна робота 5. УСТАНОВЛЕННЯ ЗВ'ЯЗКІВ МІЖ КОМПОНЕНТАМИ І БАЗОЮ ДАНИХ. НАВІГАЦІЯ ПО ТАБЛИЦІ......34Лабораторна робота 6. ПОБУДОВА ЗАПИТІВ ДО БАЗИ ДАНИХ.........43Лабораторна робота 7. СТВОРЕННЯ ЗВІТУ ДЛЯ ВИВОДУ НА ДРУК. 50МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ КУРСОВОЇ РОБОТИ.......57ВАРІАНТИ КУРСОВИХ РОБІТ................................................................58Додаток А. Вікно додатку варіанту «Оптовик».........................................61Додаток В. Графічне подання зв’язків між таблицями даних бази даних..................................................................................................................... 62Третя нормальна форма.............................................................................62Додаток С. Текст модуля FORM1.H..........................................................63СПИСОК ЛІТЕРАТУРИ............................................................................68

69

Навчально-методичне видання

РОЗРОБКА ДОДАТКІВ НА ПЛАТФОРМІ .NET FRAMEWORK В ІНТЕГРОВАНОМУ СЕРЕДОВИЩІ VISUAL STUDIO

Методичні вказівки до виконання лабораторних робіт

і завдання до курсової роботи дисципліни “Організація баз даних і знань”

для студентів спеціальності 7/8.05150102«Технологія електронних мультимедійних видань»

Укладачі Халімон Наталія ФедорівнаСтанко Світлана МихайлівнаГлазок Олексій Михайлович

Редактор Технічний редактор Коректор

70


Recommended