РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЗАДАЧІ




ЗНАЕТЕ ЛИ ВЫ?

РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЗАДАЧІ



 

4.1. Опис головного модулю програми (головного вікна)

 

В даний час ОС Windows визначає вимоги до програмного забезпечення для персональних комп'ютерів. Яку б мову програмування не обрати, зрозуміло, що базою є Windows API (Application Programming Interface - інтерфейс прикладного програмування), і освоївши його, можна писати програми будь-якого степеня складності, використовуючи всі можливості, що пропонуються операційною системою. При роботі з базами даних виникає проблема, яка полягає в тому, що що дані можуть поступати з самих різних джерел, кожне з яких володіє своєю специфікою. Проте написання програми істотно спрощується із створенням уніфікованого механізму взаємодії з самими різними джерелами даних. За минулий час різними компаніями було запропоновано безліч рішень в цій області. Найбільш значними є Microsoft ODBC (Open Database Connectivity) і Borland ШАРІ (Integrated Database Application Programming Interface). Технологія Borland ШАРІ більше відома під ім'ям BDE (Borland Database Engine).

В мові програмування Visual Basic була створена своя технологія роботи з базами даних MDB(Microsoft Access). Ця технологія дала змогу вільно управляти даними в БД

Само по собі ця обставина не є останньою новиною в області програмування — модульна архітектура і об'єктно-орієнтований підхід до побудови програм давно є визнаними стандартами. Новиною є те, що є цими компонентами і об'єктами - ними є безпосередньо виконуваний двійковий код - файли, які ніяк не треба "пов'язувати" з своїм проектом, - їх досить зареєструвати в операційній системі, і вони будуть доступні будь-якій програмі, що виконується на даній машині. Тобто їх використання в своїй програмі проводиться "без використання операцій збірки модуля".

Технологія DAO дозволяє підключатися до будь-яких баз даних, з розширенням MDB, достатньо лише вказати ім'я бази. База даних для даної програми була створена у Microsoft Access. Програми типу Microsoft Access можуть зберігати інформацію в декількох зв'язаних між собою таблицях і тому називаються реляційними базами даних. При вірній організації інформації всі таблиці можна вважати єдиною областю пам'яті та отримувати з них дані у відповідності із потребами.

 

 

Опис розробленої програми

 

 

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

 

 

Рис 4.1. Головне вікно програми.

 

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

Для вибору необхідний дій треба користуватися пунктами головного меню.

Під час роботи з програмою ми будемо безпосередньо використовувати такі пункти головного меню:

1). «Файл» - цей пункт меню містить наступні пункти:

- «Открыть базу»

- «Выход»

2). «Выборка данных» - цей пункт меню містить наступний пункт:

- «Выбор условий отбора»

3) «Отчет»

Підменю «Файл» дає доступ до роботи з діалоговими вікнами, за допомогою яких можна здійснити різноманітні операції (відкриття бази даних, вихід з програми).

При виборі пункту меню «Файл» → «Открыть базу» ми бачимо діалогове вікно, за допомогою якого здійснюється вибір БД.

 

 

Рис 4.2. Вибір БД

 

Після вибору бази ми бачимо що відображається основна таблиця БД.

Розглянемо цю процедуру краще, подивившись код програми:

Private Sub Vivod_Click()

 

On Error GoTo ErrHandler:

 

CommonDialog1.CancelError = True

CommonDialog1.Filter = "Databases|*.mdb"

CommonDialog1.ShowOpen

On Error GoTo ErrHandler

 

Set db = OpenDatabase(CommonDialog1.filename)

 

Set rs = db.OpenRecordset("Select * from Osnov", dbOpenDynaset)

Set Data1.Recordset = rs

filename = CommonDialog1.filename

 

Form1.Vib_dan.Visible = True

Form1.Exit.Visible = True

Form1.Command1.Visible = True

Form1.Command2.Visible = True

Form1.otch.Visible = True

Exit Sub

 

ErrHandler:

MsgBox Err.Description

Exit Sub

End Sub

 

Спочатку я звертаюсь до об’єкту ‘ComandDialogControl’ який повертае повний шлях ,з ім’ям, до вибраного файлу. Об’єкт ‘ComandDialogControl’ дозволяє таку можливість як виклик вікна вибору файлу, повертає цей об’єкт повний шлях або ім’я файлу. Потім формуємо Recordset і привласнюємо його як результат, який потрібно вивести об’єкту Data. З об’єктом Data в свою чергу пов’язаний елемент управління DataGrid, який і виводить те що ми відкрили в rs. Повний шлях до файлу присвоїли строковій змінний для того, щоб мати можливість отримувати шлях до файлу в кожній формі. Потім я показую кнопки які при запуску програми були не видні.

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

На рис 4.3 можна побачити результат цієї процедури:

 

 

Рис 4.3. Основне вікно програми.

 

На рис 4.3 ми бачимо що база відкрилась нормально і ще з’явились дві кнопки: «Удалить запись» и «Добавить запись».

При натисканні кнопки «Удалить запись» активний запис в DataGrid старається і таблиця перечитується наново, а показчик в DataGrid зміститься на один запис нижче.

При натисканні кнопки «Добавить запись» :

 

Рис 4.5. Додавання записів у основну табицю БД

 

На рис 4.5 ми бачимо що здійснився переход на іншу форму на я кій розташовані елеиенти управління TextBox які в свою чергу пов’язані з елеметом управління Data. За допомогою Data управляючи данними можемо додавати в базу нивий запис з данними які будуть введені TextBox відповідно.

На цій формі ми бачимо дві кнопки «Ok» і «Cancel». При натисканні кнопки «Ok» виконується процедура:

Private Sub Ok_Click()

On Error GoTo CancelUpdate

kod = 1

Form1.rs.Update

Form1.rs.MoveLast

Unload Me

 

 

Exit Sub

 

CancelUpdate:

 

MsgBox "Ошибка при вводе данных, попробуйте ввести еще раз"

Form1.rs.CancelUpdate

If Form1.rs.RecordCount Then Form1.rs.Bookmark = Form1.book

Unload Me

 

End Sub

По перше Form1.rs.Update - це запис в БД новий запис. Одномоментно машина перечитує Recordset і активним стає новий запис, який є останнім в таблиці. У випадку помилки, невідповідності данних і пустих значень машина буде відображати повідомлення з текстом "Ошибка при вводе данных, попробуйте ввести еще раз" і повертає активний запис який був до цього і можна знову ввести дані і зберегти їх. При нормальному збереженні ми повернемося до вікна головної таблиці і будемо бачити новий запис.

При натисканні кнопки «Cancel» в таблицю пусте поле не додається і ми повертаємося до головного вікна програми.

Повернувшись до головного вікна програми ми бачимо що в головному меню програми є кнопка «Выборка данных», яка маю підменю «Выбор условий отбора». При натисканні ми:

 

Рис 4.6 Вікно вибірки даних.

 

В цьому вікні можна вибрати підходящі варіанти запитів, і зберегти запит в іншому документі

На цій формі є три пункти головного меню «На главную», «Настройки», «Отчет»

При натисканні пункту головного меню «На главную» ми повертаємося на головне вікно а це вікно закривається.

При натисканні пункту головного меню «Настройки» ми бачимо два підпункти: «Шрифт», «Цвет». При натисканні «Шрифт» ми бачимо діалогове вікно в якому здійснюється вибір шрифту, його розміру, яким будуть відображатися текст в елементі управління DataGrid. При натисканні пункту головного меню «Цвет» ми бачимо діалогове вікно в я кому здійснюється вибір кольору, яким буде відображатись текст в елементі управління DataGrid.

На рис 4.6 ми бачимо зліва від елемента управління прапорці. При натисканні на «Выборка по районам» з’являється елемент управління ComboBox в якому можна вибрати район який потрібен для запиту. При натисканні на «Выборка по улицам» з’являється елемент управління ComboBox в якому можна вибрати район який потрібен для запиту. При натисканні на «Выборка по количеству комнат» з’являється елемент управління Frame в якому можна вибрати кількість кімнат квартири яку потрібно знайти. Для виконання запиту є кнопка «Выполнить запрос» яка містить таку процедуру:

Private Sub Command1_Click()

On Error Resume Next

Dim a, b, c, file As String

file = "zapros.txt"

 

DBGrid1.Refresh

 

If Combo1.Text <> "" Then a = "[Sprav_ray.Rayon] = '" & Combo1.Text & "'" Else a = ""

If Combo2.Text <> "" Then b = "[Sprav_ul.Ulica] = '" & Combo2.Text & "'" Else b = ""

If Check6.Value = 1 Then

If Option1.Value = True Then f = "[Osnov.Kol_kom] = 1"

If Option2.Value = True Then f = "[Osnov.Kol_kom] = 2"

If Option3.Value = True Then f = "[Osnov.Kol_kom] = 3"

If Option4.Value = True Then f = "[Osnov.Kol_kom] = 4"

End If

 

c = "and"

 

Open file For Output As #1

Print #1, "SELECT Osnov.Kod_kvar, Sprav_ray.Rayon, Sprav_ul.Ulica, Osnov.Chislo, Osnov.Orien, Osnov.Nom_dom, Osnov.[Nom_kvar/kom], Osnov.etaz, Osnov.Etaznost, Osnov.Kol_kom, Osnov.Cena, Sprav_riel.Rieltor, Osnov.Prim, Osnov.Obsh_plosh, Osnov.Zhilay_plosh, Osnov.Rash_plosh, Osnov.Kol_bal, Osnov.Vis_potol, Osnov.Kanal, Osnov.Opis_okon, Osnov.Opis_van, Osnov.Opis_kuh, Sprav_plan.Plan"

Print #1, "FROM Sprav_ul INNER JOIN (Sprav_riel INNER JOIN (Sprav_ray INNER JOIN (Sprav_plan INNER JOIN Osnov ON Sprav_plan.Kod_plan = Osnov.Kod_rasp) ON Sprav_ray.Kod_ray = Osnov.Kod_ray) ON Sprav_riel.Kod_riel = Osnov.Kod_riel) ON Sprav_ul.Kod_ul = Osnov.Kod_yl"

Print #1, "WHERE"

Print #1, a

If Combo1.Text <> "" And Combo2.Text <> "" Then Print #1, c

If Combo1.Text <> "" And Combo2.Text <> "" Then Print #1, b

If Check6.Value = 1 Then Print #1, c

Print #1, f; ";"

Close #1

 

Open file For Input As #1

str1 = Input(LOF(1), #1)

Close #1

 

Set d = OpenDatabase(Form1.filename)

Set w = d.OpenRecordset(str1, dbOpenDynaset)

Set Data3.Recordset = w

 

 

End Sub

 

Спочатку машина зчитує данні вибрані в елементах управління ComboBox і зчитує інформацію з елемента управління Options, формує змінна для оформлення запиту. Відкриваємо текстовий файл і записуємо у визначеній послідовності текст SQL запиту. Потім відкриваємо цей же файл і зчитуємо із файлу SQL запит і виконуємо його через елемент управління Recordset. Якщо в ході виконання цієї процедури буде помилка, то не буде системного переривання. А результат можемо побачити на рис. 4.7.

 

 

Рис 4.7. Виконання запиту з вибраних умов.

Наявні три параметри вибірки даних, за якими розраховується запит.

Також ми бачимо пункт головного меню «Отчет» який має такі підменю:

1. «В HTML»

2. «В MS Word»

3. «В MS Excel»

Натиснув на «В HTML» здійснюється передача запиту з вибраними вами записами в файл htm.

Private Sub otch_html_Click()

Open "styles.css" For Output As #1

Print #1, "caption {color:green; font-family:" & nastr.FontN & ";font-size:" & nastr.FontH & "Pt;}"

Print #1, "TH {border-style:solid; border-width: 1px; font-family:" & nastr.FontN & ";font-size:" & nastr.FontN & "Pt; color: #" & nastr.Cvet & ";}"

Print #1, "TD {border-style:solid; border-width: 1px; font-family:" & nastr.FontN & ";font-size:" & nastr.FontH & "Pt; color: #" & nastr.Cvet & ";}"

Close #1

 

CommonDialog1.Filter = "Веб-страница (*.html)|*.html"

CommonDialog1.DefaultExt = ".html"

CommonDialog1.ShowSave

 

 

Open CommonDialog1.filename For Output As #1

 

Data1.Recordset.MoveFirst

Print #1, "<HTML>"

Print #1, "<HEAD>"

Print #1, "<META HTTP-EQUIV=""Content-Type"" CONTENT=""text/html; Charset=Windows-1251"">"

Print #1, "<LINK REL=STYLESHEET TYPE=""text/css"" HREF=""styles.css"">"

Print #1, "</HEAD>"

Print #1, "<BODY>"

Print #1, "<TABLE>"

 

Print #1, "<caption>"

Print #1, "Отчет данных по вашему запросу"

Print #1, "</caption>"

 

Print #1, "<TR>"

For i = 0 To Data3.Recordset.Fields.Count - 1

Print #1, "<TH>";

Print #1, Data3.Recordset.Fields(i).Name;

Print #1, "</TH>"

Next

Print #1, "</TR>"

 

Data3.Recordset.MoveFirst

Do While Not Data3.Recordset.EOF

Print #1, "<TR>"

For i = 1 To Data3.Recordset.Fields.Count

Print #1, "<TD>";

Print #1, Data3.Recordset.Fields(i - 1);

Print #1, "</TD>"

Next

Print #1, "</TR>"

Data3.Recordset.MoveNext

Loop

Print #1, "</TABLE></BODY></HTML>"

Close #1

Data3.Recordset.MoveFirst

ShellExecute 0, "open", CommonDialog1.filename, "", "", SW_MAXIMIZE

Exit Sub

NoHTML:

End Sub

 

Більш повно код викладено в додатку А

Спочатку програмним чином ми створюємо файл ‘styles.css’ і записуємо в файл налаштунки для майбутнього сайту. Задаємо колір та шрифт нашому запиту, який буде виведений в HTML файл. Викликаємо діалогове вікно за допомогою якого зберігаємо наш звіт на жорсткому диску. За допомогою команди Print вписуємо потрібні нам теги для створення файлу. В циклі таким же чином ідучи по записам записуємо значення в файл, закриваємо файл. Після закриття відкриваємо створений файл через Internet Explorer.

Натиснув на «В MS Word» здійснюється передача запиту з вибраними вами записами в файл з розширенням doc. А ось більш детально:

 

Private Sub otch_word12_Click()

On Error GoTo word_error

Dim app As New Word.Application

Dim doc As Word.Document

Dim p As Word.Paragraph

Dim t As Word.Table

 

 

app.Visible = True

Set doc = app.Documents.Add

doc.Select

Set p = doc.Paragraphs.Add

p.Range.Select

app.Selection.Text = "Отчет данных"

app.Selection.Font.Bold = True

app.Selection.Font.Color = &H800000

app.Selection.Font.Size = nastr.FontH

app.Selection.Font.Name = 20

 

 

p.Alignment = wdAlignParagraphCenter

doc.Paragraphs.Add

Set p = doc.Paragraphs(doc.Paragraphs.Count)

Set t = doc.Tables.Add(p.Range, 1, 9)

 

 

p.Range.Select

t.Cell(1, 1).Range.Select

app.Selection.Text = "Район"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 2).Range.Select

app.Selection.Text = "Улица"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 3).Range.Select

app.Selection.Text = "Количество комнат"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 4).Range.Select

app.Selection.Text = "Цена"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 5).Range.Select

app.Selection.Text = "Площадь"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 6).Range.Select

app.Selection.Text = "Планировка"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 7).Range.Select

app.Selection.Text = "Стоимость услуг"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 8).Range.Select

app.Selection.Text = "Зароботок агента"

app.Selection.Font.Color = nastr.Cvet

t.Cell(1, 9).Range.Select

app.Selection.Text = "Доход агенства"

app.Selection.Font.Color = nastr.Cvet

 

 

Data1.Recordset.MoveFirst

Do While Not Data1.Recordset.EOF

t.Rows.Add

t.Cell(t.Rows.Count, 1).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(1)

t.Cell(t.Rows.Count, 2).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(2)

t.Cell(t.Rows.Count, 3).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(8)

t.Cell(t.Rows.Count, 4).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(9)

t.Cell(t.Rows.Count, 5).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(11)

t.Cell(t.Rows.Count, 6).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(18)

t.Cell(t.Rows.Count, 7).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(19)

t.Cell(t.Rows.Count, 8).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(20)

t.Cell(t.Rows.Count, 9).Range.Select

app.Selection.Font.Bold = False

app.Selection.Text = Data1.Recordset.Fields(21)

Data1.Recordset.MoveNext

Loop

 

 

Exit Sub

 

word_error:

MsgBox Err.Description & Chr(13) & "Для выполнения необходимо наличие полей в активном recordset'e."

End Sub

 

Спочатку підключаємо бібліотеку Microsoft Word 11.0 Object Library яка дозволяє нам звертатись до об’єктів VBA в MS Word. Спочатку ми об’являємо змінні типу Word.Application, типу Word.Table, типу Word.Paragraph, типу Word.Document які надають змогу звертатися до об’єктів VBA.. За допомогою них ми і будемо будувати структуру потрібного нам документу. Далі ми створюємо документ а на ньому параграф. Вписуємо туди заголовок нашого звіту та задаємо потрібні параметри кольору шрифту, його розміру, та назву шрифту встановленого користувачем на формі вибірки даних або тих що зберігаються на жорсткому диску. Вирівнюємо параграф з назвою звіту по центру. Створюємо табличку на потрібну нам кількість записів і заповнюємо її значеннями Recordset-а. У випадку помилки буде виведено повідомлені з кодом помилки.

Натиснув на «В MS Excel» здійснюється передача запиту з вибраними вами записами в файл з розширенням xls:

 

Private Sub Otch_excel_Click()

On Error GoTo excel_error

Dim i As Integer

 

If Data1.Recordset.RecordCount = 0 Then MsgBox "В таблице отсутствуют данные для отчета": Exit Sub

Dim e As New Excel.Application

 

e.SheetsInNewWorkbook = 1

e.Workbooks.Add

 

 

e.Columns(1).ColumnWidth = 5

e.Columns(2).ColumnWidth = 10

e.Columns(3).ColumnWidth = 10

e.Columns(4).ColumnWidth = 10

e.Columns(5).ColumnWidth = 15

e.Columns(6).ColumnWidth = 5

e.Columns(7).ColumnWidth = 5

e.Columns(13).ColumnWidth = 10

 

 

With e.Range("A2:v2")

.Font.Bold = True

.HorizontalAlignment = xlCenter

.MergeCells = True

End With

 

 

e.Cells(2, 1) = "Отчет данных"

e.Rows(2).Font.Bold = True

e.Rows(2).Font.Size = 20

 

 

e.Cells(3, 1) = Data1.Recordset.Fields(0).Name

e.Cells(3, 2) = Data1.Recordset.Fields(1).Name

e.Cells(3, 3) = Data1.Recordset.Fields(2).Name

e.Cells(3, 4) = Data1.Recordset.Fields(3).Name

e.Cells(3, 5) = Data1.Recordset.Fields(4).Name

e.Cells(3, 6) = Data1.Recordset.Fields(5).Name

e.Cells(3, 7) = Data1.Recordset.Fields(6).Name

e.Cells(3, 8) = Data1.Recordset.Fields(7).Name

e.Cells(3, 9) = Data1.Recordset.Fields(8).Name

e.Cells(3, 10) = Data1.Recordset.Fields(9).Name

e.Cells(3, 11) = Data1.Recordset.Fields(10).Name

e.Cells(3, 12) = Data1.Recordset.Fields(11).Name

e.Cells(3, 13) = Data1.Recordset.Fields(12).Name

e.Cells(3, 14) = Data1.Recordset.Fields(13).Name

e.Cells(3, 15) = Data1.Recordset.Fields(14).Name

e.Cells(3, 16) = Data1.Recordset.Fields(15).Name

e.Cells(3, 17) = Data1.Recordset.Fields(16).Name

e.Cells(3, 18) = Data1.Recordset.Fields(17).Name

e.Cells(3, 19) = Data1.Recordset.Fields(18).Name

e.Cells(3, 20) = Data1.Recordset.Fields(19).Name

e.Cells(3, 21) = Data1.Recordset.Fields(20).Name

e.Cells(3, 22) = Data1.Recordset.Fields(21).Name

 

 

Data1.Recordset.MoveFirst

i = 4

Do While Not Data1.Recordset.EOF

e.Cells(i, 1) = Data1.Recordset.Fields(0)

e.Cells(i, 2) = Data1.Recordset.Fields(1)

e.Cells(i, 3) = Data1.Recordset.Fields(2)

e.Cells(i, 4) = Data1.Recordset.Fields(3)

e.Cells(i, 5) = Data1.Recordset.Fields(4)

e.Cells(i, 6) = Data1.Recordset.Fields(5)

e.Cells(i, 7) = Data1.Recordset.Fields(6)

e.Cells(i, 8) = Data1.Recordset.Fields(7)

e.Cells(i, 9) = Data1.Recordset.Fields(8)

e.Cells(i, 10) = Data1.Recordset.Fields(9)

e.Cells(i, 11) = Data1.Recordset.Fields(10)

e.Cells(i, 12) = Data1.Recordset.Fields(11)

e.Cells(i, 13) = Data1.Recordset.Fields(12)

e.Cells(i, 14) = Data1.Recordset.Fields(13)

e.Cells(i, 15) = Data1.Recordset.Fields(14)

e.Cells(i, 16) = Data1.Recordset.Fields(15)

e.Cells(i, 17) = Data1.Recordset.Fields(16)

e.Cells(i, 18) = Data1.Recordset.Fields(17)

e.Cells(i, 19) = Data1.Recordset.Fields(18)

e.Cells(i, 20) = Data1.Recordset.Fields(19)

e.Cells(i, 21) = Data1.Recordset.Fields(20)

e.Cells(i, 22) = Data1.Recordset.Fields(21)

Data1.Recordset.MoveNext

i = i + 1

Loop

 

 

e.Rows(3).Font.Bold = True

e.Rows(3).HorizontalAlignment = xlCenter

 

 

With e.Range("A3:v" & CStr(i - 1))

.VerticalAlignment = xlCenter

.Borders(xlEdgeBottom).LineStyle = xlSolid

.Borders(xlEdgeLeft).LineStyle = xlSolid

.Borders(xlEdgeRight).LineStyle = xlSolid

.Borders(xlEdgeTop).LineStyle = xlSolid

.Borders(xlInsideHorizontal).LineStyle = xlSolid

.Borders(xlInsideVertical).LineStyle = xlSolid

End With

 

 

e.Range("A4:B" & CStr(i - 1)).HorizontalAlignment = xlCenter

e.Range("A3:v" & CStr(i - 1)).Font.Name = Trim(nastr.FontN)

e.Range("A3:v" & CStr(i - 1)).Font.Size = nastr.FontH

e.Range("A4:v" & CStr(i - 1)).Font.Color = nastr.Cvet

Data1.Recordset.MoveFirst

e.Visible = True

 

Exit Sub

 

 

excel_error:

MsgBox Err.Description & Chr(13) & "Для отображения отчета необходимо, чтобы в активном recordset'е имелись все поля." & Chr(13) & "Удостоверьтесь в наличии всех полей и попробуйте снова.", vbExclamation, "Обнаружена ошибка!"

 

End Sub

 

Повна версія надана в додатку А.

Спочатку підключаємо бібліотеку Microsoft Excel 11.0 Object Library яка дозволяє нам звертатись до об’єктів VBA в MS Excel. Спочатку ми об’являємо змінну типу Excel.Application, яка надає змогу звертатися до об’єктів VBA.. За допомогою них ми і будемо будувати структуру потрібного нам документу. Далі ми створюємо книгу, в ньому лист. Звертаючись до ячейки, за її адресою, записуємо туди заголовок нашого звіту та задаємо потрібні параметри кольору шрифту, його розміру, та назву шрифту, встановленого користувачем на формі вибірки даних або тих що зберігаються на жорсткому диску. Вирівнюємо заголовок звіту по центру ячейки. Створюємо табличку на потрібну нам кількість записів і заповнюємо її значеннями Recordset-а у циклі. У випадку помилки буде виведено повідомлені з кодом помилки, і поясненням змісту.

Закінчивши роботу з цією формою ми переходимо на основну форму і там:

 

Рис 4.8. Головна форма програми

 

Ми бачимо в пункті головного меню ще одне меню - «Отчет». Це меню відображає в іншому вікні запит з розрахунками. Це вікно можна побачити на рис 4.9.

 

 

Рис 4.9. Вікно звіту з надання послуг.

 

На цьому вікні в головному пункті меню ми бачимо два меню - «Отчет» і «Выход». В пункті «Отчет» є три підменю:

4. «В HTML»

5. «В MS Word»

6. «В MS Excel»

Опис цих підменю можна побачити вище. Меню «Выход» генерує вихід з програми.


ВИСНОВКИ

 

 

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

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

В процесі роботи було обрано методи розв'язання задачі - методи теорії алгоритмів, методи об'єктно-орієнтованого проектування. Для реалізації задачі на ЕОМ було створено базу даних з п’ятьох таблиць, призначену для зберігання вхідної інформації.

Відповідно до розробленої моделі,був визначений алгоритм побудови програми. Для реалізації алгоритму задачі на ЕОМ було обрано мову програмування Visual Basic. В якості СУБД для роботи із створеною базою даних використано Microsoft Access.

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

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

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


СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. Microsoft Access 2002. Русская версия. Шаг за шагом: Практ. пособ. / Пер. с англ. - М.: Издательство ЭКОМ, 2002.—352 с.

2. Волков А .А. Основы построения АСУ. Системы и системные исследования, ч.1. - К.: КНИГА, 1978. - 59 с.

3. Волкова В.Н., Денисов А.А. Основы теории систем и системного анализа. - СПб : "СПбГТУ", 2001.-370 с

4. Глушаков С. В., Коваль А. В., Смирнов С. В., Язык программирования Basic 6. - Харьков: Фолио, 2002. - 500с. - учебный курс.

5. Дж. Обер-Крие. Управление предприятием. Пер. с франц. — М.: Сирин, 1997.-257 с.

6. Жданов С.А.. Основы теории экономического управления предприятием. Учебник. М.: Изд-во "Финпресс", 2000. - 384 с.

7. Задоров В.Б. Основи системного аналізу об’єктів i процесів комп'ютеризації (функціонально-технолоічний підхід). Частина 1. Введения до проблематики системного аналізу організаційних антропогенних систем (на прикладі інформаційних технологій бізнес-систем): Конспект лекій. К.: КНУБА, 2000. -95 с.

8. Зайченко Е.П. Исследование операций. - К.: Высшая школа, -1988. - 520 с.

9. Львовский Е.Н. Статистические методы построения эмпирических формул. Учебное пособие. - М.: Высшая школа, 1982.- 356 с.

10. Месарович У., Такахара И. Теория многоуровневых иерархических систем. М.: Мир. - 1982. - 385 с.

11. Моисеев Н.Н. Математические методы системного анализа. - М.: Наука, 1979.-400 с.

 





Последнее изменение этой страницы: 2016-04-26; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.239.51.78 (0.053 с.)