Розробка автоматизованої системи обліку бухгалтерських операцій для органів державного казначейства України
Аналіз організації бухгалтерського обліку в державному казначействі України. Сучасні засоби розробки програмного забезпечення. Вибір серверної платформи й системи керування базами даних. Взаємодія користувачів з автоматизованою системою, її вихідні форми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 01.05.2011 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Таблиця вмісту меморіального ордера в частині синтетичних рахунків (BookAcc)
У цій таблиці втримується частина меморіального ордера, що ставиться до синтетичних рахунків.
У даній таблиці первинний ключ є складовим по полях TreID, OrdDate, OrdID. Індекс зветься IX_BookAcc.
Таблиця 3.10
Таблиця вмісту меморіального ордера в частині синтетичних рахунків
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
OrdDate |
datetime |
дата ордера |
|
OrdID |
char (20) |
код ордера |
|
Acc |
char (20) |
рахунок |
|
Debit |
decimal (18,2) |
сума по дебету |
|
Credit |
decimal (18,2) |
сума по кредиту |
Таблиця вмісту меморіального ордера в частині операцій (BookOpr)
У цій таблиці втримується частина меморіального ордера, що ставиться до синтетичних рахунків.
Таблиця 3.11
Зміст меморіального ордера в частині операцій
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
OrdDate |
datetime |
дата ордера |
|
OrdID |
char (20) |
код ордера |
|
OprID |
char (20) |
код операції |
|
Amount |
decimal (18,2) |
сума операції |
У даній таблиці первинний ключ є складовим по полях TreID, OrdDate, OrdID. Індекс зветься IX_BookOpr.
3.1.2 Подання
Вид (подання) це користувальницьке подання таблиці, що створюється на вимогу користувача. Для користувача це реальна таблиця, але вона не існує в базі даних, а створюється віртуально.
Використання подань дозволяє значно спростити складання складних запитів до бази даних, тому вони використовуються в розроблювальній автоматизованій системі.
Подання vOrdTurnAcc
Дане подання повертає обороти по рахунках у розрізі відділень і меморіальних ордерів.
Таблиця 3.12
Структура таблиці, що повертається:
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
OrdDate |
datetime |
дата ордера |
|
OrdID |
char (20) |
код ордера |
|
Acc |
char (20) |
рахунок |
|
Debit |
decimal (18,2) |
дебетовий оборот |
|
Credit |
decimal (18,2) |
кредитовий оборот |
Подання vOrdTurn
Дане подання повертає обороти по ордерах у розрізі відділень.
Таблиця 3.13
Структура таблиці, що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
OrdDate |
datetime |
дата ордера |
|
OrdID |
char (20) |
код ордера |
|
Debit |
decimal (18,2) |
дебетовий оборот |
|
Credit |
decimal (18,2) |
кредитовий оборот |
Подання vTurnAcc
Дане подання повертає обороти по рахунках у розрізі відділень і дат.
Таблиця 3.14
Структура таблиці, що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
Date |
datetime |
дата |
|
Acc |
char (20) |
рахунок |
|
Debit |
decimal (18,2) |
дебетовий оборот |
|
Credit |
decimal (18,2) |
кредитовий оборот |
Подання vUse_TreID
Дане подання повертає використовувані в обліку коди відділень.
Таблиця 3.15
Структура таблиці, що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
Подання vUse_Acc
Дане подання повертає використовувані в обліку рахунки.
Таблиця 3.16
Структура таблиці, що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
Acc |
char (20) |
рахунок |
Подання vUse_OprID
Дане подання повертає використовувані в обліку коди операцій.
Таблиця 3.17
Структура таблиці, що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
OprID |
char (20) |
код операції |
Подання vUse_OrdID
Дане подання повертає використовувані в обліку номери ордерів.
Таблиця 3.18
Структура таблиці, що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
OrdID |
char (20) |
код ордера |
3.1.3 Збережені процедури
Поява збережених процедур пов'язане з тим, що використання технології клієнт-сервер не завжди ефективно й спрацьовує тільки в частині випадків. Якщо необхідно зробити відбір з великої кількості даних, то ефективніше буде не передати клієнтському додатку весь обсяг даних, з якого воно вибере необхідні, а зробити цей відбір на сервері баз даних і результати передати клієнтові [5].
Для обробки даних на сервері на сервері служать збережені процедури. Крім того, у самій процедурі може втримуватися досить об'ємний код, і не потрібно буде передавати його по мережі. Крім того, тому що логіка роботи буде реалізована у вигляді системних процедур, то при зміні її не прийде вносити зміни в клієнтські додатки. Все потрібно буде виправити всього один раз у збереженій процедурі. Збережені процедури дозволяють:
розвантажити трафік мережі;
розвантаження клієнтський додаток;
організувати бізнес-логікові в одному місці.
У розроблювальній автоматизованій системі збережені процедури застосовуються для створення звітності.
Процедури spRemAccOn
Дана збережена процедура повертає набір даних про залишки на рахунках на зазначену дату в розрізі відділень. При виклику процедури в неї передаються наступні параметри:
Таблиця 3.19
Параметри передані в процедуру spRemAccOn
Найменування |
Тип |
Примітка |
|
@OnDate |
datetime |
залишки на дату |
Таблиця, що повертається процедурою spRemAccOn
Таблиця 3.20
Структура таблиці що повертається
Назва поля |
Тип поля |
Призначення |
|
TreID |
char (20) |
код відділення |
|
Acc |
char (20) |
рахунок |
|
Debit |
decimal (18,2) |
дебетовий залишок |
|
Credit |
decimal (18,2) |
кредитовий залишок |
Процедури spMB
Дана збережена процедура повертає набір даних під друковану форму головної книги. При виклику процедури в неї передаються наступні параметри:
Таблиця 3.21
Параметри, передані в процедуру spMB
Найменування |
Тип |
Значення за замовчуванням |
Примітка |
|
@Month |
int |
місяць |
||
@TreLike |
varchar (255) |
`' |
відділення, що включаються |
|
@TreNotLike |
varchar (255) |
`' |
відділення, що виключаються з вибірки |
|
@TreGroup |
bit |
1 |
ознака узагальнення по відділеннях (1) |
|
@OrdGroup |
bit |
1 |
ознака узагальнення по ордерах (1) |
|
@AccLike |
varchar (9) |
класи рахунків, що включаються |
||
@AccTypeGroup |
int |
тип групування рахунків |
Таблиця, що повертається процедурою spMB:
Таблиця 3.22
Структура таблиці що повертається
Назва поля |
Тип поля |
Призначення |
|
ExtRow |
int |
зовнішня група запису |
|
InsRow |
int |
внутрішня група запису |
|
TreID |
char (20) |
код відділення |
|
Acc |
char (20) |
рахунок |
|
OrdDate |
datetime |
дата ордера |
|
OprID |
char (20) |
код операції |
|
Debit |
decimal (18,2) |
дебетовий залишок |
|
Credit |
decimal (18,2) |
кредитовий залишок |
Поля ExtRow і InsRow служать для угруповання записів. Можливі комбінації значень цих полів наведені у таблиці 3.22.
Таблиця 3.23
Можливі комбінації полів ExtRow і InsRow
ExtRow |
InsRow |
Значення |
|
10 |
0 |
заголовок рахунку |
|
10 |
10 |
залишок на початок місяця |
|
10 |
20 |
обороти по дебету й кредиті в розрізі дат і ордерів |
|
10 |
30 |
сума обороту по дебету й кредиті |
|
10 |
40 |
залишки на початок наступного місяця |
Процедури spTSB
Дана збережена процедура повертає набір даних під друковану форму оборотно-сальдової відомості. При виклику процедури в неї передаються наступні параметри, наведені в таблиці 3.24.
Таблиця 3.24
Параметри передані в процедуру spTSB
Найменування |
Тип |
Значення за замовчуванням |
Примітка |
|
@DateBeg |
datetime |
початкова дата |
||
@DateEnd |
datetime |
кінцева дата |
||
@TreLike |
varchar (255) |
`' |
відділення, що включаються |
|
@TreNotLike |
varchar (255) |
`' |
відділення, що виключаються з вибірки |
|
@TreGroup |
bit |
1 |
ознака узагальнення |
|
@AccLike |
varchar (9) |
класи рахунків, що включаються |
||
@AccTypeGroup |
int |
тип групування рахунків |
Таблиця 3.25
Таблиця, що повертається процедурою spTSB
Назва поля |
Тип поля |
Призначення |
|
ExtRow |
int |
зовнішня група запису |
|
InsRow |
int |
внутрішня група запису |
|
TreID |
char (20) |
код відділення |
|
Acc |
char (20) |
рахунок |
|
DateBeg |
datetime |
початкова дата |
|
DebitBeg |
decimal (18,2) |
дебетовий залишок на початкову дату |
|
CreditBeg |
decimal (18,2) |
кредитовий залишок на початкову дату |
|
DateTur |
datetime |
період обороту |
|
DebitTur |
decimal (18,2) |
дебетовий залишок |
|
CreditTur |
decimal (18,2) |
кредитовий залишок |
|
DateNex |
datetime |
наступна за періодом дата |
|
DebitNex |
decimal (18,2) |
дебетовий залишок на наступну дату |
|
CreditNex |
decimal (18,2) |
кредитовий залишок на наступну дату |
Поля ExtRow і InsRow служать для угруповання записів. Можливі комбінації значень цих полів наведені в таблиці 3.26.
Таблиця 3.26
Можливі комбінації полів ExtRow і InsRow для процедури spTSB
ExtRow |
InsRow |
Значення |
|
10 |
10 |
заголовок відділення |
|
10 |
20 |
обороти по дебету й кредиті рахунків |
|
10 |
30 |
підсумкові залишки й обороти по ділянках |
|
10 |
40 |
підсумкові залишки й обороти |
3.2 Реалізація серверної частини автоматизованої системи
3.2.1 Глобальні установки системи
Для глобальних установок додатка на ASP використовується файл global. asa, що розташований у кореневій папці автоматизованої системи.
Global. asa дозволяє виконувати певні скрипти на початку роботи клієнтської сесії або при ініціалізації IIS. Більше того, припустимо використовувати множинні файли Global. asa. Однак варто пам'ятати, що ASP-Скрипт шукає найближчий (розташований у тім же каталозі) файл Global. asa і використовує саме його.
По суті, цей файл може містити чотири скрипта: перший буде виконуватися при ініціалізації служби IIS/PWS (Application_OnStart), другий - при зупинці служби IIS/PWS (Application_OnEnd) (звичайно ці перші два скрипта відпрацьовують у процесі перезавантаження комп'ютера), і ще два скрипта виконуються додатково при ініціалізації сесії користувача (Session_OnStart) і по її закінченні (Session_OnEnd). Дана схема дуже сильно нагадує пари " конструктор-деструктор". Неспроста всяка змінна, котра повинна бути використана (наприклад, у поточній сесії), може бути инициализирована в Session_OnStart для того, щоб бути використаної в процесі роботи сесії, вона ж знищується (обнуляется) в Session_OnEnd [7].
У розроблювальній автоматизованій системі файл Global. asa використовується в такий спосіб.
При ініціалізації сесії користувача (Session_OnStart) встановлюються змінні сесії:
код органа державного казначейства;
код користувача;
результат проходження аутентифікації;
прапори на дозвіл редагування довідників;
установка змінних для підключення до бази даних.
Крім того, при ініціалізації сесії виконується безпосереднє підключення до бази даних.
При закритті сесії (Session_OnEnd) виконується закриття з'єднання з базою даних.
3.2.2 Побудова сценаріїв ASP
Файли, які містять сценарії ASP і розташовані на сервері повинні мати розширення. asp. ASP-Код, якому потрібно виконати на сервері, розміщається усередині спеціальних тегів <% %>. Сам код може бути написаний з використанням Visual Basic Scripting Edition (VBScript) або JScript (JavaScript). Технологія ASP дозволяє використовувати й інші мови програмування. У розроблювальній автоматизованій системі використовується синтаксис VBScript, як найбільш зручний для використання. VBScript - дуже невимогливий до програміста мова. Так він не вимагає описувати змінні й не містить явних типів даних. Всі змінні належать одному типу Variant. В VBScript є всі нормальні конструкції структурного програмування (if, while, case). Є ряд убудованих об'єктів (Request, Response, Session, Server, Connection, Recordset), можна доустанавливать інші компоненти [6].
Для висновку у вихідний потік даних мовою HTML використовується об'єкт Response. Висновок здійснюється за допомогою методу Write:
Response. Write (“<tr height="10%">”)
Так виробляється запис у внутрішній буфер об'єкта Response. Коли сценарій закінчує роботу, весь буфер видається клієнтові. Інші методи й властивості Response дозволяють управляти висновком. Так Response. Buffer регулює, чи одержує клієнт дані в міру із запису в Response, або все відразу по завершенні виконання сторінки. Метод Response. Redirect перенаправляє браузер на іншу сторінку. Якщо в asp-файлі зустрічається шматок тексту поза дужками <% %>, він трактується просто як HTML, якому треба вивести.
Передані в сценарій дані, він одержує через URL. Передані параметри містяться у вхідний потік і доступні через об'єкт Request.
Для відстеження помилок використовується спеціальний об'єкт Err [7]. Він установлюється в ненульове значення, якщо попередня команда породила помилку. Її можна перевіряти за допомогою If, і в такий спосіб реагувати на помилки. Щоб через помилку не переривалося виконання програми, на початку потрібно включити команду:
On Error Resume Next
ASP сценарії передбачають включення інших файлів у сценарій за допомогою директиви include. У розробці дана особливість широко використовується для скорочення повторюваного коду шляхом винесення його в окремі файли:
<! - --і #include file = "_Button. js" - --і>
3.2.3 Взаємодія автоматизованої системи із СУБД
Система керування БД, що використовується в розробці, використовує реляционный підхід для побудови бази даних [15]. Подібні системи засновані на реляционной моделі даних, які використовуються для моделювання взаємозв'язків між об'єктами реального миру й для зберігання даних про ці об'єкти. Застосування реляційної моделі даних обумовлено використанням реляційної алгебри й відповідних алгоритмів і операцій для виконання дій над даними. Використання алгоритмів реляційної алгебри дозволяє забезпечити високу продуктивність роботи з базою даних. [12]
Основні операції реляційної алгебри були вперше запропоновані Коддом. Він довів, що запити, які формулюються за допомогою мови вирахування можуть бути сформульовані в мовах реляційної алгебри й навпаки, т. е запити представлені за допомогою мови реляційної алгебри можуть бути використані для виконання запитів до розробленого БД. Нижче наведений ряд запитів до БД:
SELECT * FROM Usr
WHERE TreID='800.13' AND Id='admin'
SELECT ID, Note, ChrUsr FROM Ord
WHERE TreID='800.13' ORDER BY Date DESC
Розглянемо чотири операції над відносинами [12]:
1. Селекція.
2. Проекція.
3. Теоретико-множинне об'єднання.
4. З'єднання.
Селекція (selected_on - піддані селекції по) зменшує кількість рядків у таблиці, і її можна представити як результат розрізування таблиці по горизонталі й видалення непотрібних кортежів. Формально селекція записується так:
R selected_on [<предикат>] {синтаксис мови запитів (SQL) }
Тут <предикат> це логічне вираження, що може містити порівняння значень одних атрибутів зі значеннями інших у тім же кортежі або з константами. У результаті зберігаються тільки рядки, що задовольняють <предикату>.
Операція селекції відповідає програмам, які вибирають запису з файлів і друкують ці записи. Однак умови відбору можуть ставиться тільки до окремо взятих записів. Наприклад, неможливо вибрати запис, виходячи з того, що значення якого-небудь її поля дорівнює або більше, ніж значення цього поля в попередньому записі. У дійсності майже неможливо змоделювати поводження автомата з кінцевим числом станів, що змінює свій стан для кожного запису, змінюючи тим самим критерії відбору для наступного запису.
Проекція (projected_to - спроектоване на) зменшує кількість стовпців у таблиці; дану операцію можна уявити собі як розрізування по вертикалі назва операції має своїм джерелом поняття проекції безлічі крапок N-Мірного простору в простір з меншою кількістю вимірів. Наприклад, у результаті проекції безлічі крапок площини (Х, В) на вісь Х виходить безліч крапок, розташованих на цій осі. На жаль, значення проекцій деяких “крапок" можуть збігатися; це відбудеться в тому випадку, коли проекція видалить стовпець, що входить у ключ, так що частини, що залишилися, двох “укорочених" кортежів можуть бути ідентичними. Тоді прийде видалити дублікати й тим самим зменшити кількість рядків, тобто розмір БД. Якщо хоча б один з можливих ключів при виконанні проекції залишиться незачепленим, то дублікатів не буде.
Формально проекція записується в такий спосіб:
R projected_to < ім'я-атрибута>{, < ім'я-атрибута>}
Де список < імен-атрибутів> означає імена стовпців, що зберігаються.
Операція проекції відповідає програмі відбору трохи іншого роду, чим операція селекції, а саме, вона друкує певні поля з кожного запису. Видалення дублікатів звичайно досягається в результаті сортування записів по необхідних полях, після чого записи пропускаються доти, поки не зміниться значення поля. На практиці при одному перегляді файлу операція проекції звичайно відбувається з операцією селекції.
Теоретико-множинне об'єднання (union) має два операнда; вона бере рядка двох таблиць і розміщає їхній один за одним, формуючи одну довгу таблицю. Це можливо лише в тому випадку, коли обидві таблиці мають той самий тип, тобто мають співпадаючі назви (імена) і типи стовпців. Такі таблиці називають “сумісними по об'єднанню”. Всі дублікати рядків повинні бути вилучені з відношення-результату. Дана операція аналогічна об'єднанню безлічей в алгебрі, але вона є додатковою стосовно обмеження, тому що є можливість відновити стосунки шляхом об'єднання двох доповнюючих друг друга результатів операції селекції.
Операція теоретико-множинного відношення відповідає відомій операції “злиття" файлів. Якщо відомо, що файли не перетинаються, і якщо порядок записів не грає ролі, то досить скопіювати один файл наприкінці іншого. Однак, як правило, файли підтримуються в порядку первинних ключів, і тоді використовуються прості алгоритми злиття., що зчитують по черзі запису з кожного файлу залежно від того, у якому з файлів запис має ключ із меншим значенням полів, так що в новий файл запису також будуть міститися в порядку первинних ключів.
З'єднання (joined_to - з'єднання с) має два операнда; вона визначена для будь-яких двох таблиць. Якщо ці дві таблиці не мають стовпців зі співпадаючими іменами, то з'єднання поводиться, як декартово добуток, з'єднуючи кожний рядок першої таблиці по черзі з кожним рядком другої таблиці. Якщо імена всіх стовпців цих двох таблиць збігаються, то з'єднання поводиться як теоретико-множинне перетинання, і створює таблицю, що складається з тих рядків, які зустрічаються в кожній з розглянутих двох таблиць (така таблиця може бути й порожній, аналогічно порожній безлічі). Якщо у двох таблиць-операндів збігаються лише деякі імена стовпців, то в результаті з'єднання виходить таблиця, що містить усе імена стовпців першої таблиці, а також всі ті імена стовпців другої таблиці, які не зустрілися в першій. Рядка результату вибираються з першої таблиці, а додаткові значення конкатенуються (приєднуються) з тих рядків другої таблиці, у яких значення в загальних стовпцях збігаються. Певною мірою з'єднання є доповненням проекції, якщо здійснити проекцію “вихідного” відношення так, щоб вийшов набір відносин, кожне з яких зберігає первинний ключ вихідного, то з'єднання цього відношення відновить вихідне при додатковій умові, що кожний стовпець вихідного відношення зустрічається хоча б в одній із проекцій.
При формулюванні запитів операція з'єднання є вирішальної, якщо в запиті використовується більше одного відношення. Як правило, для формування запиту використовується з'єднання декількох таблиць, а потім селекція необхідних рядків, і, нарешті, проекція на необхідні стовпці при печатці.
Операція з'єднання найбільше відповідає операції “селективної вибірки”, при виконанні якої список ключів представлений у вигляді записів у файлі транзакцій [4], і потрібно вибрати або записати у вихідний файл відповідні записи з основного файлу. Ключі у файлі транзакцій можуть збігатися, наприклад, зі стороннім ключем в основному файлі або ж із частиною первинного ключа, і в цих випадках для кожного запису у файлі транзакцій може бути обрано кілька записів з основного файлу. Таким чином, використовується з'єднання як узагальнене перетинання [12].
Алгоритми, які виконують перераховані вище операції, реалізуються на рівні системи керування базою даних. Їхній зміст формується на основі визначень цих операцій. Для їхньої реалізації використовуються або стандартні функції мови програмування, або формується SQL-Запит.
У розроблювальній автоматизованій системі для доступу до даних використовується Active Data Object. Модель об'єктів ADO досить велика. Основні компоненти можна умовно розділити на п'ять функціональних груп, кожна з яких використовується для рішення певного кола завдань:
Об'єкт Command містить параметри й властивості, пов'язані з командами, що посилаються на сервер БД. Такими командами можуть бути як виклики збережених серверних процедур, так і звичайні команди, що направляються на сервер для рішення певних адміністративних завдань.
Колекція Properties, що складається з об'єктів Connection, містить інформацію про встановлювані із сервером БД з'єднаннях. Перелік властивостей включає ім'я користувача, ім'я облікового запису та інші елементи, необхідні для встановлення з'єднання.
Об'єкт RecordSet включає визначення полів і властивостей, пов'язаних з інформацією, що перебуває в базі даних.
Колекція Fields допомагає здійснити доступ до різних стовпців, як певних таблиць бази даних, так і отриманих у результаті виконання запитів.
Колекція Errors містить повідомлення про помилки, що з'являються при виконанні запиту або при підключенні до сервера БД. Це дозволяє створювати оброблювачі помилок. [7]
Для установки з'єднання з базою даних у моделі ADO використовується метод Connection. Перш ніж виконувати які б те не було маніпуляції з кожним з об'єктів ADO, потрібно з'єднатися з базою даних (створити екземпляр об'єкта типу Connection). У розроблювальній автоматизованій системі цей об'єкт створюється у файли глобальної ініціалізації global. asa (додаток А):
Set Con = Server. CreateObject ("ADODB. Connection")
Після створення об'єкта виконується безпосереднє підключення до бази даних за допомогою виклику методу Open:
Con. Open "DRIVER={SQL Server}; SERVER=" & Session ("ConServer") & "; DATABASE="& Session ("ConDatabase"),Session ("ConUserID"),Session ("ConPassword")
Після завершення користувачем роботи із системою з'єднання з базою даних розривається шляхом виклику методу Close:
Con. Close Set Con = Nothing
Для роботи із сервером можуть бути використані два різних об'єкти Command і Recordset, а також метод Execute об'єкта Connection.
Об'єкт Command є основним у ході виконання будь-якого сеансу ADO з'єднання із БД [6]. Він використовується для створення екземпляра об'єкта Recordset, по суті зберігання проміжних значень, що є областю, (отаким кешем) і надання можливості швидкого звертання до елементів (наприклад, певної вибірки) бази даних. Це дозволяє заощадити тимчасові й апаратні ресурси сервера, оскільки в цьому випадку транзакції із сервером виконуються лише з метою витягу кожного конкретного набору окремих значень (вибірки), а вся подальша обробка зводиться до операцій над уже витягнутим набором як над окремим об'єктом Recordset. Крім того, варто розуміти, що завдяки наявності всього одного (замість декількох) з'єднання із сервером у цьому випадку можливий витяг багатьох значень або їхніх наборів, що, природно, дозволяє як значно підвищити обчислювальну продуктивність сервера, так і соптимізувати створюваний додаток.
Метод Execute застосовується для виконання будь-яких команд мови SQL, незалежно від того, будуть у результаті виконання команди вертатися які-небудь дані (результати запитів) чи ні. Цей метод може використовуватися й для виконання на сервері команд адміністрування або підтримки бази даних (виклик збережених процедур - найбільш типовий випадок) [24].
Метод Execute використовується для безпосередньої обробки інформації, внесення змін у структуру таблиці або виконання будь-яких інших операцій, не потребуючі створення об'єкта Recordset. У розроблювальній автоматизованій системі метод Execute використовується для додавання, зміни й видалення даних з таблиць. Приклади використання методу:
Session ("Con"). Execute "update Usr set Note='" & Request. QueryString ("Note") & _
"' where TreID='" & Session ("TreID") & _
"' and ID='" & Request. QueryString ("ID") & "'"
Session ("Con"). Execute "insert Usr (TreID, ID,Pass,Note) values ('" & _
Session ("TreID") & "','" & _
Request. QueryString ("ID") & "','','" & _
Request. QueryString ("Note") & "')"
Session ("Con"). Execute "delete from Usr where TreID='" & Session ("TreID") & _
"' and ID='" & Request. QueryString ("ID") & "'"
Найважливішим компонентом ADO є компонент набору даних (Recordset). Набір даних це копія певного фрагмента бази даних у пам'яті комп'ютера, що зберігає структуру останньої. Набір даних представляє так зване пасивне (не підключене) до бази даних стан, тобто фрагмент бази даних є присутнім у пам'яті комп'ютера, хоча з'єднання з реальною базою даних уже закрито. Цей об'єкт надає розроблювачеві широкий набір функціональних можливостей; завдяки йому можна виконувати практично будь-яку обробку обраної з бази дані інформації. Обробка може виконуватися як динамічно на основі опитування об'єкта Recordset про структуру таблиці, так і статично коли всі виконувані над даними дії жорстко закодовані в додатку [7].
Практично вся вибірка даних з таблиць виконується за допомогою об'єкта Recordset, оскільки його набір властивостей і методів забезпечує можливість універсальної обробки стовпців таблиць бази даних і поміщених у них значень.
Перед початком роботи з об'єктом Recordset необхідно спочатку його створити:
Set TblRst = Server. CreateObject ("ADODB. Recordset")
Після використання об'єкта його необхідно видалити. У розроблювальній системі відповідний метод викликається наприкінці ASP-Сценарію. Як і в інших об'єктах ADO, метод Close об'єкта Recordset закриває цей об'єкт і звільняє всі пов'язані з ним ресурси. По закінченні роботи з об'єктом Recordset його потрібно обов'язково закрити, оскільки при цьому звільняються ресурси й на стороні сервера. При закритті рекомендується привласнювати покажчику на об'єкт Recordset константу Nothing, оскільки саме при цьому виробляється фактичне видалення покажчика на екземпляр об'єкта.
TblRst. Close
Set TblRst = Nothing
Для вибірки необхідних даних з таблиць використовується метод Open. При цьому встановлюється з'єднання між даним об'єктом і необхідними таблицями бази даних. При виклику методу Open об'єкта Recordset варто вказати кілька параметрів, що визначають спосіб подання інформації, можливість внесення в неї змін і т.п. Нижче наведений загальний синтаксис виклику методу Open:
RSet. Open SQL-Команда, з'єднання, тип_курсору, тип_блокування, режим
Замість параметра SQL-Команда вказується одна або кілька команд мови SQL, поділюваних крапкою з коми. Ця команда буде або використана для вироблення інформації з таблиць бази даних, або перероблена для обробки й виконання ядру бази даних. Необхідно звернути увагу на те, що немає необхідності передавати на виконання команду SELECT. Замість цього можна вказати ім'я таблиці бази даних або ім'я використовуваної збереженої процедури й одночасно встановити відповідне значення в параметрі "режим". Крім того, можна зробити посилання на вже існуючий об'єкт Command і використовувати його як джерело інформації для даного об'єкта Recordset.
У параметрі "з'єднання" вказується ім'я вже існуючого об'єкта Connection. Якщо ім'я об'єкта з'єднання не буде зазначено, для даного об'єкта Recordset буде встановлене нове з'єднання. При цьому, якщо не буде наданий рядок визначення параметрів з'єднання, установка нового з'єднання буде пов'язана з новим підключенням до сервера, що буде враховуватися останнім як чергова видана ліцензія на підключення. У світлі цих зауважень рекомендується завжди посилатися на вже існуючий об'єкт Connection.
Приклад використання методу Open у розроблювальній системі:
TblRst. Open "select ltrim (rtrim (A. Acc)) as Acc, ltrim (rtrim (B. Note)) as TypeNote, " & _
"ltrim (rtrim (A. TypeId)) as TypeID, ltrim (rtrim (A. Note)) as AccNote, " & _
"ltrim (rtrim (ChnUsr)) as ChnUsr, " &
"convert (char (8),ChnDate,112) as ChnDate, Deleted " & _
"from Acc A, AccType B " & where A. TypeID=B. ID and A. TreID='" & Session ("TreID") & "'",Session ("Con"),0,1,1
Для роботи з даними, які були відібрані в об'єкті Recordset використовується колекція Fields. Колекція Fields найважливіший елемент об'єкта Recordset. Вона містить інформацію, необхідну для роботи з обраними з таблиць даними. Властивості, пов'язані з кожним з полів у колекції, містять його вичерпний опис від установленого в таблиці типу й розміру цього поля до ім'я для реальної довжини його значення [25].
Для доступу до цих властивостей необхідно знати ім'я необхідного поля й назва властивості, що цікавить нас.
Властивість Value містить значення, обраного з поля таблиці. Для визначення поточного типу подання даних призначена властивість Type. Якщо дані в програмі, залежно від їхнього типу, повинні оброблятися по-різному, властивість Type може бути використане для вибору варіанта обробки [24]. Подібні дії необхідно здійснювати перед виконанням порівнянь, обчисленням значення виражень і т.п.
Наприклад, рядок виду rs. Fields ("ID"). value указує на значення поля ID поточного запису активної таблиці відкритої бази даних.
З метою полегшення написання сценаріїв, в ASP передбачене спрощення запису доступу до значень полів, обраних з таблиці. Замість запису rs. Fields ("FieldName"). value, можна вказати rs ("FieldName").
Для навігації серед записів об'єкта Recordset передбачені методи MoveFirst, MoveLast, MoveNext і MovePrevious.
MoveFirst використовується для переміщення до першого запису в наборі даних Recordset. При виклику цього методу властивості BOF автоматично привласнюється значення TRUE.
MoveLast - використовується для переміщення до наступного запису в наборі даних Recordset. При виклику цього методу властивості EOF автоматично привласнюється значення TRUE.
MoveNext використовується для переміщення до наступної стосовно поточної позиції в наборі даних Recordset запису. Якщо при цьому буде досягнутий кінець набору даних, властивості EOF буде привласнене значення TRUE. Якщо потрібно встановити умову EOF штучно, варто викликати метод MoveLast для переходу до останнього запису набору даних.
MovePrevious використовується для переміщення до попередньої стосовно поточної позиції в наборі даних Recordset запису. Якщо при цьому досягнутий початок набору даних, властивості BOF буде привласнене значення TRUE. Якщо потрібно встановити умову BOF штучно, варто викликати метод MoveFirst для переходу до першого запису набору даних.
Вищевказані методи широко використовуються в розроблювальній автоматизованій системі для навігації за відібраними даними й створення HTML елементів. Приклад створення елемента керування на основі відібраних даних:
< % Do While not TypRst. Eof %>
<option value="<%=TypRst ("ID") %>"><%=TypRst ("Note") %></option>
< % TypRst. MoveNext
Loop %>
3.3 Реалізація інтерфейсу з користувачем
Реалізація інтерфейсу з користувачем приведено в додатку А.
Для того, щоб генеруємі в процесі роботи автоматизованої системи HTML сторінки були інтерактивними, у розробці широко використовується мова сценаріїв JavaScript.
Код скрипта JavaScript розміщується безпосередньо на HTML-Сторінці між тегів <SCRIPT> і </SCRIPT>.
У мові JavaScript всі елементи на web-сторінці вибудовуються в ієрархічну структуру. Кожний елемент з'являється у вигляді об'єкта. І кожний такий об'єкт може мати певні властивості й методи.
На самому початку роботи з автоматизованою системою необхідно підготувати вікно браузера:
<script type="text/javascript" language="JavaScript1.5">
<! - --і
window. open ("MBMain. asp","_blank","left=0, top=0, width=700, height=500, fullscreen=no, channelmode=no, toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=yes");
// window. history. go (-1);
window. close ();
--і>
</script>
Для додання інтерактивності використовуються оброблювач подій. Події, головним чином, ініціюються тими або іншими діями користувача. Якщо він тисне по деякій кнопці, відбувається подія "Click". Якщо покажчик миші перетинає яке-небудь посилання гіпертексту - відбувається подія MouseOver.
Так, наприклад, за допомогою оброблювачів подій MouseOver і MouseOut побудоване динамічне меню системи, що автоматично з'являється в робочому просторі браузера при підведенні курсору миші до лівого краю вікна, і ховається, коли курсор миші виходить за межі меню. Це дозволяє збільшити доступний для роботи робочий простір браузера.
Оскільки таблиці в HTML статичний елемент, то для інтерактивної роботи з ними, наприклад, вибору потрібного рядка для редагування використовуються події OnMouseOver, OnMouseOut, OnClick.
function row_onclick () {
var row = window. event. srcElement. parentElement;
var TblRow = row. parentElement. parentElement;
if (TblRow. index! = null) {
document. all (TblRow. index). bgColor = document. all (TblRow. index). row_color;
}
TblRow. index = row. sourceIndex;
row. bgColor = row. select_color;
}
function row_onmouseover () {
this. bgColor = this. cursor_color;
}
function row_onmouseout () {
if (this. sourceIndex == this. parentElement. parentElement. index) {
this. bgColor = this. select_color;
}
else {
this. bgColor = this. row_color;
}
}
Для керування роботою елементів форм, таких як кнопки, поля вибору й уведення, радіо кнопки, використовуються події OnClick, OnChange.
TblRow. onclick = this. fun_click;
Для скорочення розміру коду всі повторювані дії винесені у функції:
function cancel_row () {
type_edit = null;
Mode. innerHTML = " Запис: перегляд"
if (tbl_Ord. TblRow. index! = null) {
set_row ()
}
else {
txtDate. value = "";
txtID. value = "";
txtNote. value = "";
}
btnOk. unaccess ();
btnCancel. unaccess ();
btnAdd. access ();
btnPrint. access ();
txtDate. disabled = true;
txtID. disabled = true;
txtNote. disabled = true;
}
4. Перевірка роботи автоматизованої системи
4.1 Взаємодія користувачів з автоматизованою системою
Користувачі взаємодіють із розроблювальною автоматизованою системою обліку бухгалтерських операцій за допомогою будь-якого Web-Браузер, установлений в операційній системі й підтримуючого фрейми й JavaScript. До таких можна віднести браузери Microsoft Internet Explorer, Netscape Navigator, Mozilla, Opera.
Браузер забезпечує користувача засобами навігації й відображення Web-Сторінок.
На початку сеансу роботи із системою користувачеві необхідно вибрати своє відділення (своя ділянка), увести свій ідентифікатор і пароль.
Рис.4.1 Вхід користувача в систему
Після успішної аутентифікації й входу в систему можна виконувати роботи.
Всі операції в автоматизованій системі виконуються за допомогою динамічного меню, що з'являється при підведенні покажчика миші до лівого краю робочого вікна. При виході покажчика миші за межі меню, воно автоматично ховається.
Рис.4.2 Динамічне меню автоматизованої системи
Для виконання потрібної операції досить натиснути покажчиком миші по рядку меню.
Автоматизована система передбачає роботу в ній як мінімум трьох чоловік: адміністратора, оператора й бухгалтера.
До завдань адміністратора відноситься ведення довідника користувачів і довідника відділень. Робота з довідником рахунків наведена на рисунку 4.3.
Рис.4.3 Робота з довідником рахунків
Оператор працює з меморіальними ордерами.
Рис.4.4 Робота з меморіальними ордерами
Робота бухгалтера полягає у веденні довідників рахунків і операцій, роздруківці головної книги й оборотних відомостей.
Рис.4.5 Запит на формування головної книги
4.2 Основні вихідні форми автоматизованої системи
У процесі роботи з автоматизованою системою виникає необхідність роздрукувати результати її роботи. Основними вихідними формами АС є меморіальний ордер, головна книга й оборотно-сальдовий баланс.
Висновки
У ході дипломного проектування була розроблена автоматизована система обліку бухгалтерських операцій для установ Державного казначейства України.
Для її розробки були виконані наступні завдання:
1. Виконано аналіз стану існуючої системи бухгалтерського обліку в органах Державного казначейства України, виявлено, що бухгалтерський облік у відділеннях Державного казначейства України практично не автоматизований.
2. Розроблено структуру автоматизованої системи обліку бухгалтерських операцій, що являє собою додаток типу клієнт-сервер, що працює по принципах Web-Технологій.
3. Розроблено автоматизовану систему обліку бухгалтерських операцій.
4. Проведено економічну оцінку ефективності використання автоматизованої системи в органах Державного казначейства.
У результаті отримана цілісна система, що дозволяє здійснювати облік виконаних бухгалтерських операцій при мінімальних накладних витратах на встаткування й навчання персоналу, як на рівні підрозділів, так і на рівні операторів.
Розроблена автоматизована система в цей момент перебуває в стадії впровадження в Ореховському, Куйбишевському й Михайлівськім районах Запорізької області.
Перелік використаних джерел
1. Аллен В. JavaScript в примерах. М.: Диасофт, 2002
2. Аллен В. JavaScript. Энциклопедия пользователя, М.: Диасофт, 2001
3. Артемов Д.В. SQL Server 2000. Новые технологи. М.: Росийськая редакция, 2001
4. Астахова И.А., Мельников У. В, Толстобров А.В. SQL в примерах и задачах М.: Новое знание, 2003
5. Бутинець Ф.Ф. Бухгалтерський облік та звітність в Україні, К.: Атика, 2001
6. Бьюзер Д, Кауффман Дж. Введение в ASP 3.0, - М.: Лори, 2001 р.;
7. Гомер А., Суссман Д. Active Server Pages 3.0 для професионалов, М.: Лорі, 2002 р.;
8. Дунаев С.Б. Технологии Інтернет-Програмирования, - Санкт-Петербург: BHV, 2001 р.;
9. Закон України "Про охорону праці", Постанова Верховної Ради України від 14.10.92 р. N 2696-XII;
10. Карпова Т.Н. Бази даних: моделі, розробка, реалізація, - Санкт-Петербург: Питер, 2001 р.;
11. Кауффман Дж., Матсик Бр. SQL. Програмування, - М.: Біном, 2003 р.;
12. Кобевник В.Ф. Охорона праці. Київ. "Выща школа" 1990;
13. Конолли Т., Бегг К., Страчан А. Бази даних: проектування, реалізація й супровід. - М.: Біном, 2002 р.;
14. Кренфорд Тиге Дж. DHTML і CSS, - М.: ДМК, 2003 р.;
15. Матросів А.В., Сергєєв А. О.html 4.0 в оригіналі, - Санкт-Петербург: BHV, 2002 р.;
16. Ребекка М. Риордан. Програмування в MS SQL Server 2000. Крок за кроком, - М.: Эком, 2002 р.
17. Снип 11-4-79. Природне й штучне висвітлення. Норми проектування. Зміни, затверджені Госстроем СРСР від 4.12.1985 р. N 205;
18. Техніко-економічне обґрунтування дипломних проектів: Учеб. Посібник для втузів / Л.А. Астреина, В.В. Балдесов, В.К. Беклешов і ін.; Під ред.В.К. Беклешова. - М.: ВШ, 1991.
19. Тихомиров Ю.А. SQL Server: розробка додатків, Санкт-Петербург: BHV, 2000;
20. Указі Кабінету Міністрів України "Про організацію бухгалтерського обліку і звітності в Україні" від 03.04.1993 року № 250;
21. Фландерс И., ASP - взглюд из нутри, - М.: ДМК, 2001 р.;
22. Фролов А.В., Фролов Г.В. Створення Web-Додатків: практичне керівництво, - М.: Російська редакція, 2001 р.;
23. Хефлин Д., Т. Разработка Web-Скриптов. Библиотека програмиста, - Санкт-Петербург: Питер, 2001 р.;
24. Шпеник М., Следж О. Руководство администратора баз даних MS SQL Server 2000, - Санкт-Петербург: Изд. дом Вильямс, 2002 р.;
25. ДЕРЖСТАНДАРТ 12.1.019-79* ССБТ Електробезпечність. Загальні вимоги й номенклатура видів захисту;
26. ДЕРЖСТАНДАРТ 12.0.003-74* ССБТ Небезпечні й шкідливі виробничі фактори;
Додаток
Додаток А. Файл глобальної ініціалізації Global. asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
// Обработка старта сессии
Sub Session_OnStart
// Установка параметров сессии
Session. Timeout = 20 // закрытие сессии через 20 мин. отсутствия запросов
// Установка переменных сессии в начальные значения
Session ("TreID") = "" // код органу ДК
Session ("UsrID") = "" // код користувача
Session ("UsrNote") = "" // нотация користувача
Session ("Login") = "no" // результат прохождение аутентификации (no, yes)
Session ("EditTre") = "no"
// флаг разрешения на редактирование справочника казначейств (no,yes)
Session ("EditUsr") = "no"
// флаг разрешения на редактирование справочника пользователей (no,yes)
Session ("EditAcc") = "no"
// флаг разрешения на редактирование справочника счетов (no,yes)
Session ("EditOpr") = "no" // флаг разрешения на редактирование справочника
// операций (no,yes)
Session ("EditOrd") = "no" // флаг разрешения на редактирование МО (no,yes)
Session ("AdminID") = "admin" // код администратора
Session ("AdminPass") = "gavnimda" // пароль администратора
Session ("VisitorID") = "гість" // код гостя
Session ("VisitorPass") = "" // пароль гостя
Session ("MenuStatus") = "unabl" // ?
Session ("ContURL") = "MBPas. asp" // ?
// Установка переменных сессии по соединению с БД в начальные значения
Session ("ConServer") = "SQLServer" // наименование MS SQL
Session ("ConDatabase") = "MainBook" // наименование БД
Session ("ConUserID") = "web" // пользователь БД
Session ("ConPassword") = "" // пароль пользователя БД
// Установление соединение с БД
Dim Con
Set Con = Server. CreateObject ("ADODB. Connection")
Con. Open "DRIVER={SQL Server}; SERVER=" & Session ("ConServer") & _
"; DATABASE=" & Session ("ConDatabase"),Session ("ConUserID"),Session ("ConPassword")
Set Session ("Con") = Con
End Sub
// Обработка завершения сессии
Sub Session_OnEnd
Con. Close
Set Con = Nothing
End Sub
</SCRIPT>
Додаток В. Лістинг проекту
Реалізація Web - інтерфейсу с користувачем.
Файл _Tbl. asp
<% 'Проверка инициализации всех требуемых значений
Dim TblError 'Счетчик ошибок
TblError = 0 'Ошибок пока нет
'Опеределен ли набор данных
If not IsObject (TblRst) Then %>
<div id="error" class="error">Не опеределен набор данных / TblRst</div><br>
<% TblError = TblError + 1
End If
If TblError > 0 Then
Response. End 'При наличии ошибок отказатся от формирования страницы
End If
Dim i, fields, cols_ubound
Set fields = TblRst. fields 'своиства полей набора данных
cols_ubound = TblRst. fields. count - 1 'максимальный индекс столбца
'Формирование страницы %>
<table id="Tbl" style="width: 100%; height: 100%; table-layout: fixed; " cellpadding="0" cellspacing="0">
<tr valign="middle" style="height: 20"><td align="left"></td></tr>
<tr valugn="middle" style="height: 22"><td>
<div id="BoxName" style="width: 100%; height: 100; overflow: hidden; ">
<table id="TblName" style="border-collapse: collapse; position: absolute; width: 1; " border="1">
<tr></tr>
</table></div></td></tr>
<tr><td><div id="BoxRow" style="width: 100%; height: 100%; overflow: scroll; ">
<table id="TblRow" name="TblRow" style="border-collapse: collapse; width: 1; " border="1">
<% 'Формирование строк и ячеек с данными
f = 0
For i = 0 To cols_ubound
If fields (i). name = "Deleted" Then f = 1 End If
Next
Do While TblRst. eof = False
If f = 0 Then%><tr id=0>
<% Else%><tr id=<%=TblRst ("Deleted") %>>
<% End If%>
<% For i = 0 To cols_ubound
If fields (i). name <> "Deleted" Then%>
<td nowrap><%= TblRst (fields (i). name) %></td>
<% End If
Next
TblRst. MoveNext %>
</tr>
<% Loop %>
</table></div></td></tr>
</table>
Файл DEFAULT. asp
% @ LANGUAGE="VBScript" %>
<% Response. Expires=0 %>
<! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.0 Transitional // EN">
<html>
<head>
<title>Головна книга - Заголовок</title>
<link rel="stylesheet" href="mb. css" type="text/css" media="screen">
</head>
<body bottommargin=0 leftmargin=0 rightmargin=0 topmargin=0>
<img height="100%" src="IMAGE/line. jpg" style="LEFT:
0px; POSITION: absolute; TOP: 0px; Z-INDEX: - 1" width="80%" ><font color="#FFFF00" face="Arial, Helvetica, sans-serif" size="3"> <i> <font face="Verdana, Arial, Helvetica, sans-serif"><b>TreBook</b></font></i>
Участок: <font face="Verdana, Arial, Helvetica, sans-serif"> <b><i>
<%If Session ("TreID") ="" Then%>
не визначено
<%Else%>
<%=Session ("TreID") %>
<%End If%>
</i></b></font> <A class=foldinglist href="MBPas. asp" target=frmCont><font color="#FFFF00" face="Arial, Helvetica, sans-serif" size="3"><font face="Verdana, Arial, Helvetica, sans-serif"><i><font color="#990000" size="2">інший
участок</font></i></font></font></a> </font>
</body>
</html>
MBHead. asp
<% @ LANGUAGE="VBScript" %>
<% Response. Expires=0 %>
<! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.0 Transitional // EN">
<html>
<head>
<title>TreBook - Головна книга</title>
</head>
<frameset rows="20,*,40" border="0" frameborder="0">
<frame name="frmHead" id="frmHead" src="MBHead. asp"
frameborder=0 scrolling="No"
style="border-bottom-color: #0066FF;
border-bottom-style: solid;
border-bottom-width: 1; ">
<frameset name="frsMenu" id="frsMenu" cols="20,*" frameborder="0" border="0">
<frame name="frmMenu" id="frmMenu" src="MBMenu. asp"
frameborder=0 scrolling="No"
style="border-right-color: #0066FF;
border-right-style: solid;
border-right-width: 1; ">
<frame name="frmCont" id="frmCont" src="<%=Session ("ContURL") %>"
frameborder=0 scrolling="Yes">
</frameset>
<frame name="frmStat" id="frmStat" src="MBStat. asp"
frameborder=0 scrolling="No"
style="border-top-color: #0066FF;
border-top-style: solid;
border-top-width: 1; ">
</frameset>
</html>
Файл MBMain. asp
<% @ LANGUAGE="VBScript" %>
<% Response. Expires=0 %>
<html>
<! - creation date: 07/09/2001 - ->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<meta name="Description" content="">
<meta name="Keywords" content="">
<meta name="Author" content="Sasha">
<meta name="Generator" content="AceHTML 4 Pro">
<style><! - -
#foldheader{
cursor: hand;
list-style-image: url (IMAGE/fold. gif);
color: Yellow;
font-family: "Arial";
font-size: 14px;
font-style: italic;
}
#foldinglist{
list-style-image: url (IMAGE/list. gif);
font-family: "Arial";
font-size: 14px;
font-style: normal;
}
->
</style>
<script type="text/vbscript" language="VBScript">
<! - -
Dim frsMenu
Set frsMenu = Window. Top. document. all. item ("frsMenu")
sub document_onmouseover
frsMenu. cols="250,*"
end sub
sub document_onmouseout
frsMenu. cols="20,*"
end sub
->
</script>
<script language="JavaScript1.2">
<! - -
/**
* Based on Folding Menu Tree
* Dynamic Drive (www.dynamicdrive.com)
* For full source code, installation instructions,
* 100's more DHTML scripts, and Terms Of
* Use, visit dynamicdrive.com
*
* Updated to support arbitrarily nested lists
* by Mark Quinn (mark@robocast.com) November 2nd 1998
*/
var head="display: ''"
img1=new Image ()
img1. src="IMAGE/fold. gif"
img2=new Image ()
img2. src="IMAGE/open. gif"
function change () {
if (! document. all)
return
if (event. srcElement. id=="foldheader") {
var srcIndex = event. srcElement. sourceIndex
var nested = document. all [srcIndex+1]
if (nested. style. display=="none") {
nested. style. display=''
event. srcElement. style. listStyleImage="url (IMAGE/open. gif)"
}
else {
nested. style. display="none"
event. srcElement. style. listStyleImage="url (IMAGE/fold. gif)"
}
}
}
document. onclick=change
// -->
</script>
</head>
<body bottommargin=0 leftmargin=0 rightmargin=0 topmargin=0>
<img src="IMAGE/line. jpg" width="100%" height="100%" style="top: 0; left: 0; position: absolute; z-index: - 2; ">
<% If Session ("Login") <>"yes" Then %></body>
</html>
<% Response. End
End If%>
<div align="center" style="z-index: 1; "><font color="#0066FF" face="Arial, Helvetica, sans-serif" size="3"><b><i>м
е н ю</i></b></font></div>
<div style="top: 20; left: - 15; position: absolute; z-index: - 1; ">
<ul>
<li id="foldheader"> Адміністратор</li>
<ul id="foldinglist" style="display: none">
<li><a href="MBRefTre. asp" target="frmCont">Довідник територій</a></li>
<li><a href="MBRefUsr. asp" target="frmCont">Довідник користувачів</a></li>
</ul>
<li id="foldheader"> Бухгалтер</li>
<ul id="foldinglist" style="display: none">
<li><a href="MBRefAcc. asp" target="frmCont">Довідник синтетичних рахунків</a></li>
<li><a href="MBRefOpr. asp" target="frmCont">Довідник операцій</a></li>
</ul>
<li id="foldheader"> Оператор</li>
<ul id="foldinglist" style="display: none">
<li><a href="MBMO. asp" target="frmCont">Меморіальній ордер</a></li>
</ul>
<li id="foldheader"> Перегляд / Друк</li>
<ul id="foldinglist" style="display: none">
<li><a href="MBQryTSB. asp" target="frmCont">Обігово-сальдовий баланс</a></li>
<li><a href="MBQry. asp" target="frmCont">Головна книга</a></li>
</ul>
<li id="foldheader"> Допомога </li>
<ul id="foldinglist" style="display: none">
<li><a href="HlpPrg. htm" target="frmCont">Опис програми</a></li>
<li><a href="HlpRef. htm" target="frmCont">Принципи кодування довідників</a></li>
<li><a href="empty. htm" target="frmCont"><font color="#006600">Перелік внесених
змін</font></a></li>
<li><a href="HlpInst. htm" target="frmCont">Встановлення програми</a></li>
<li><a href="HlpDB. htm" target="frmCont">Опис бази даних</a></li>
<li><a href="HlpPWS. htm" target="frmCont">Встановлення Personal Web Server</a></li>
<li><a href="HlpFile. htm" target="frmCont">Перелік файлів віртуального каталогу</a></li>
</ul>
</ul>
</div>
<script language="JavaScript1.2">
<! - -
/**
* Get cookie routine by Shelley Powers
* (shelley. powers@ne-dev.com)
*/
function get_cookie (Name) {
var search = Name + "="
var returnvalue = "";
if (document. cookie. length > 0) {
offset = document. cookie. indexOf (search)
// if cookie exists
if (offset! = - 1) {
offset += search. length
// set index of beginning of value
end = document. cookie. indexOf (";", offset);
// set index of end of cookie value
if (end == - 1) end = document. cookie. length;
returnvalue=unescape (document. cookie. substring (offset, end))
}
}
return returnvalue;
}
if (get_cookie (window. location. pathname)! = '') {
Подобные документы
Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.
курсовая работа [1,1 M], добавлен 22.09.2015Оцінка необхідності створення на сучасному підприємстві автоматизованої інформаційної системи та її значення в процесі управління. Етапи розробки структури бази даних, зміст, призначення. Операційна інформація з обліку фінансово-розрахункових операцій.
контрольная работа [29,4 K], добавлен 06.10.2010Медична інформаційно-аналітична система "Емсімед". Аналіз програмних, апаратних засобів. Архітектурне проектування автоматизованої системи обліку медичних інструментів. Опис структурної та логічної схеми. Вибір мови програмування, керівництво користувача.
дипломная работа [2,9 M], добавлен 26.07.2013Аналіз задач, які вирішуються з використанням інформаційної системи. Вибір серверного вирішення, клієнтської частини, мережного вирішення, системного програмного забезпечення. Розробка підсистеми діагностики, керування, забезпечення безпеки даних.
курсовая работа [1,5 M], добавлен 22.04.2011Автоматизація планування та обліку методичної роботи. Особливовсті веб-орієнтованих інформаціних систем. Логічна модель роботи системи. Розробка структури бази даних та серверної частини. Вибір засобів розробки. Формування інструкції користувача.
дипломная работа [4,9 M], добавлен 21.06.2014Особливості функціонального складу автоматизованої інформаційної системи Казначейства. АРМ формування розпорядження та реєстру на здійснення видатків державного бюджету автоматизованої системи Держказначейства України. Призначення АС "Казна-Видатки".
контрольная работа [27,1 K], добавлен 02.04.2010Використання баз даних та програмних систем для автоматизованої інформаційної системи обліку та обслуговування електричних силових підстанцій. Розробка такого програмного забезпечення для спрощення та пришвидшення дій енергопостачальної компанії.
дипломная работа [449,2 K], добавлен 25.06.2017База даних як сумісно використовуваний набір логічно зв'язаних даних, передбачений для задоволення інформаційних потреб. Програмне забезпечення, яке взаємодіє з прикладними програмами користувачів, апаратне забезпечення, дані, процедури і користувачі.
реферат [160,9 K], добавлен 20.06.2010Етапи розробки проекту. Вимоги до апаратного і програмного забезпечення, до користувача. Специфікація та структура даних, які мають бути розміщеними в системі. Вигляд інтерфейсу системи програмного забезпечення. Розробка бази даних косметичного салону.
дипломная работа [1,8 M], добавлен 21.02.2015Автоматизація бібліотеки Тальнівського будівельно-економічного коледжу УДАУ. Методи автоматизації та проектування. Інфологічна, даталогічна моделі даних. Програмні засоби розробки бази даних. Розробка таблиць та звітів, встановлення зв’язків між таблиць.
курсовая работа [4,9 M], добавлен 07.06.2010