- •1 Проектування бази диних
- •1.1 Аналіз предметної області
- •1.2 Розробка er-моделі
- •1.3 Нормалізація
- •1.4 Реалізація бази даних в субд
- •2 Програмна реалізація субд
- •2.1 Реалізація інтерфейсу
- •2.2 Реалізація sql-запитів
- •2.3 Реалізація роботи з таблицями.
- •2.4 Реалізація обробки запитів
- •2.5 Реалізація звітів
- •2.6 Створення автоматизованого документу
- •2.7 Захист бази даних та забезпечення цілісності
- •3 Аналіз результатів і розробка інструкцій по роботі
- •3.1 Інструкція з технічного обслуговування
- •3.2 Інструкції системного програміста
- •3.3 Інструкція програміста
- •3.4 Інструкції оператору
- •Висновки
- •Список використаних джерел
- •Додаток а Лістинг програми
- •Додаток б Приклади автоматизованого документу
- •1. Предмет домовленості
- •5. Термін дії договору
- •1. Предмет домовленості
- •5. Термін дії договору
2.5 Реалізація звітів
Форма для роботи зі звітами складається з двох частин, у перші знаходяться кнопки для безпосереднього формування звітів, а у другій список орендаторів та кнопка, яка автоматично формує договір з вибраним орендатором.
Для створення звітів і договору використовується SQL-запит.
Звіт має виводиться в документ Word у вигляді таблиці, автоматично обраховуючи потрібні величини. Для таблиці створюється заголовок. Документ створюється аналогічним чином як було описано вище (див. п. 2.3). Але деякі особливості.
Для створення заголовка таблиці використовується вирівнювання ліворуч та напівжирний тип шрифту:
DocWord.Paragraphs(1).Alignment = wdAlignParagraphRight
DocWord.Range(0, 20).Bold = True
Для створення таблиці наперед відомо тільки кількість стовпців, так як вони відображають незмінні характеристики. Кількість рядків таблиці невідома, вона залежить від кількості записів в базі даних, тому її потрібно підрахувати:
rs.MoveFirst
Do While Not rs.EOF
k = k + 1
rs.MoveNext
Loop
Далі проводяться оголошення необхідні для створення таблиці:
Dim tbl As Table
Set Table = DocWord.Tables.Add(Range1, k, 3)
Set tbl = DocWord.Tables(1)
Для табиці потрібно задати заголовки стовпців, стиль та дозволити малювання рамки:
DocWord.Tables(1).Borders.Enable = True 'створює розмітку таблиці
DocWord.Tables(1).AutoFormat (wdTableFormatList1)
DocWord.Tables(1).Cell(1, 1).Range = "П.І.П"
DocWord.Tables(1).Cell(1, 2).Range = "Відділ"
DocWord.Tables(1).Cell(1, 3).Range = "Сума грн."
Таблиця заповнюється по комірках, задаючи порядковий номер рядка і стовпця. Слід врахувати, що вони нумеруються з одиниці і перший рядок вже зайнятий для заголовків стовпців. Для кожного стовпця організований окремий цикл заповнення:
j = 1
For i = 2 To tbl.Rows.Count - 1
field = rs.Fields(0).Value
rs.MoveNext
tbl.Cell(i, j).Range.Text = field
Next i
rs.MoveFirst
Нижній рядок таблиці теж зайнятий для автосуми. Ширина стовпців встановлюється після малювання і заповнення таблиці. Таблиця перемальовується автоматично після встановлення ширини стовпців:
DocWord.Tables(1).Cell(i + 1, j).AutoSum
DocWord.Tables(1).Cell(i + 1, 1).Range = "ВСЬОГО ГРН."
DocWord.Tables(1).Columns(1).Width = 250
DocWord.Tables(1).Columns(2).Width = 100
DocWord.Tables(1).Columns(3).Width = 80
2.6 Створення автоматизованого документу
Існують два види створення автоматизованого документу: використання форм або закладок.
Форми використовуються для заповнення користувачами. До форм додаються елементи керування. Будь-який елемент керування вмістом, доданий до форми, можна зв’язати з даними.
Закладка визначає розташування або позначення тексту, якому надається ім'я для подальшого використання. Закладка визначає розташування або позначення тексту, якому надається ім'я для подальшого використання.
Для створення автоматизованого документу був підготовлений документ і заповнений відповідно до вимог оформлення договорів, шаблон цього документу показане в додатку Б.
Серед елементів керування крім текстових полів використовуються елементи вибору дати. Тому не можна застосувати захист документу від зміни вмісту форм.
Список орендаторів в другій частині форми по роботі зі звітами заповняється з бази даних при активації форми. Натискання кнопки «Договір» призведе до запуску процедури обробки, в якій перш за все перевіриться чи був вибраний елемент зі списку. Якщо елемент списку не вибраний, то користувач отримає відповідне повідомлення.
Dim str$
str = ListBox1.Text
If ListBox1.Text = "" Then
MsgBox "Для формування звіту виберіть орендатора"
Else
…
У разі вибору елемента, створюється екземпляр додатку і відкриється раніше заготовлений шаблон договору, що знаходиться в поточній папці:
Path = FileSystem.CurDir()
Set DocWord1 = WordApp1.Documents.Open(Path + "\Договір.docm")
Далі з бази даних за допомогою SQL-запиту вибирається потрібна інформація та вноситься в документ:
DocWord1.FormFields("ТекстовеПоле11").Result = rs.Fields(1)
DocWord1.FormFields("ТекстовеПоле1").Result = rs.Fields(0)
DocWord1.FormFields("ТекстовеПоле5").Result = rs.Fields(2)
Документ не потребує захисту і доступний для редагування та збереження. Приклад готового для збереження чи друку документі показаний в додатку Б.