Програмне забезпечення бази даний Екологічний моніторинг

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Програмне забезпечення бази даних "Система екологічного моніторингу.

Зміст
Содержание_____________________________________________________________________________ 1
Введение________________________________________________________________________________ 2
Екологічний мониторинг________________________________________________________________ 5
Нормативно-правове забезпечення в галузі охорони навколишнього среди.________________________ 9
Цілі і завдання СЕМ Минатома____________________________________________________________ 9
Склад і структура системи екологічного моніторингу ситуаційно кризового центру СЕМ СКЦ 12
Програмно-технічне забезпечення СЕМ СКЦ_____________________________ 12
Інформаційне обеспечение______________________________________________ 12
Основні напрямки створення СЕМ СКЦ__________________________________________________ 13
Опис клієнтського приложения_________________________________________ 19
Додаток 1. Форма державної статистичної звітності 2-ТП радіоактивність 24
Додаток 2. Коди генерації бази даних у репозітарій__________________ 32
Додаток 3. Приклад тексту программы.__________________________________ 43

Введення

Метою даної навчально-дослідницької роботи було написати й налагодити клієнтське додаток для бази даних "система екологічного моніторингу"
База даних була спроектована в рамках проекту Екологічного моніторингу Міністерства атомної енергії і промисловості, і входить до системи екологічного моніторингу ситуаційно кризового центру Мінатому.
Використання даної системи спрямоване на:
1. Здійснення внутрівідомчого моніторингу (контролю) за надходженням забруднювачів у навколишнє середовище (контроль скидів, викидів, інших шляхів надходження радіаційного, хімічного, теплового забруднення природного середовища в районах розташування підприємств Мінатому Росії);
2. Централізовану передачу даних відомчої системи моніторингу в рамках Єдиної державної системи екологічного моніторингу;
3. Збір, аналіз та систематизація інформації інших відомств, що здійснюють моніторинг (контроль) за рівнями надходження забруднюючих речовин та показників стану навколишнього середовища і здоров'я людини в районах (зони спостереження) і регіонах (суб'єкти РФ) розташування підприємств галузі, у тому числі в ретроспективі з урахуванням відбулися радіаційних аварій та інших надзвичайних ситуацій;
4. Облік і контроль територій, забруднених в результаті функціонування підприємств галузі, робіт з їх дезактивації та реабілітації;
5. Створення об'єктивної картини за рівнями екологічного впливу підприємств галузі на навколишнє середовище та здоров'я населення, включаючи комплексну оцінку ризиків, пов'язаних з їх функціонуванням, в тому числі у порівнянні з іншими техногенними ризиками, зумовленими наявністю в регіонах підприємств-забруднювачів інших галузей промисловості і сільського господарства;
6. Забезпечення інформаційно-аналітичної підтримки керівництва галузі та підприємств, у тому числі в разі НС з екологічними наслідками на об'єктах Мінатому Росії чи в регіонах їх розміщення
7. Автоматизацію діяльності фахівців з екологічного моніторингу підрозділів Мінатому Росії.
База даних задовольняє вимогам
1. Система повинна бути повністю інтегрована з іншими діючими інформаційними системами ІАК СКЦ Мінатому Росії входить у систему, як розділ "Екологія"
2. Всі системи повинні використовувати єдиний банк даних атрибутивної та картографічної інформації
3. Склад і гриф конфіденційності інформації, що розміщується у тих, що розробляються структурах БД, повинні бути визначені адміністратором.
Розділ "Екологія" БД СКЦ включає наступні блоки інформації:
1. Щорічні дані державної статистичної звітності радіаційно-небезпечних підприємств Мінатому за формами 2-ТП повітря, водогосподарства, токсичні відходи, радіоактивність і радіоактивні відходи (приклад форми радіоактивність наведений у додатку).
2. Узагальнені показники по скидах - викидами підприємств Мінатому і стану зовнішнього середовища
3. Середньорічні дані по викидах, скидах та відходах в розрізі суб'єктів Федерації (і основних населених пунктів) і галузей народного господарства.
4. Середньорічні дані по забрудненню атмосферного повітря в районах розміщення радіаційно-небезпечних підприємств Мінатому (у розрізі суб'єктів федерацій і основних населених пунктів).
5. Середньорічні дані по забрудненню поверхневих вод у пунктах контролю в районах розміщення радіаційно-небезпечних підприємств Мінатому (у розрізі суб'єктів Федерації і основних населених пунктів по Окатий).
6. Необхідні довідники та класифікатори (ОКЕІ ЗКГНГ ​​і т.д.).
Було також написано клієнтське додаток АРМ Адміністратора, що дозволяє редагувати записи бази даних.
Додаток "Адміністратор" має забезпечити можливість введення (завантаження), коригування, імпорту та перегляду даних
за екологічними показниками підприємств галузі, за узагальненими екологічними показниками інших міністерств, відомств і організацій, по всіх словниках системи "Екологічний моніторинг"

Екологічний моніторинг

Поняття екологічного моніторингу, незважаючи на частої вживається, не до кінця чітко окреслено. У цьому сенсі цікаво думку академіка М.М. Моїсеєва "Для цього необхідно навчитися виділяти значимі параметри навколишнього середовища, розробити способи їх вимірювань і створити систему норм допустимого забруднення. Нагадаю, що незагрязняющіх виробництв не може бути в принципі! Тому й народилася концепція ГДК - гранично допустимих норм концентрації шкідливих речовин у повітрі, у воді, у грунті. Це прийнято називати екологічним моніторингом. Назва не зовсім вдале, оскільки слово "моніторинг" означає вимір, спостереження. Звичайно, дуже важливо навчитися міряти ті чи інші характеристики навколишнього середовища, ще важливіше звести їх у систему. Але найважливіше - зрозуміти, що треба міряти в першу чергу, ну і, звичайно, розробити і обгрунтувати самі норми ГДК. Треба знати, як ті чи інші значення параметрів біосфери впливають на здоров'я людини і його практичну діяльність. І тут ще дуже багато невирішених питань. Але нитка Аріадни вже намічена - здоров'я людини. Саме воно і є кінцевий, Верховний суддя всієї діяльності екологів. "
Тим не менш, у природоохоронній діяльності існують чіткі визначення і класифікації моніторингу: "Е гінекологічного моніторинг - інформаційна система спостережень, оцінки і прогнозу змін у стані навколишнього середовища, створена з метою виділення антропогенної складової цих змін на тлі природних процесів". / Ізраель, 1984 р. /
Уявлялося, що організована таким чином Система екологічного моніторингу повинна накопичувати, систематизувати та аналізувати інформацію:
· Про стан навколишнього середовища;
· Про причини спостережуваних та ймовірних змін стану (т.e., про джерела і фактори впливу);
· Про допустимість змін і навантажень на середовище в цілому;
· Про існуючі резерви біосфери.
Реальна ситуація виявилася набагато складнішою. Дуже часто не вдавалося чітко визначити реальну причину відбуваються в навколишньому середовищі змін. Виявлення реальної причини ставало предметом серйозних досліджень, а не дії системи. З цієї причини формулювання визначення екологічного моніторингу зазнали змін. Так, Державна доповідь "Про стан навколишнього природного середовища в РФ в 1995 р." визначає екологічний моніторинг в РФ наступним чином: комплекс виконуваних за науково обгрунтованими програмами спостережень, оцінок, прогнозів і розробку на їх основі рекомендацій та варіантів управлінських рішень, необхідних і достатніх для забезпечення управління станом навколишнього природного середовища та екологічною безпекою.
Видно, що у визначенні екологічного моніторингу отримала посилення наукова складова. Одночасно, в силу розвитку кризових явищ, істотно скоротилася практична складова екологічного моніторингу - спостереження за факторами впливу і станом середовища. У цій ситуації оцінку фактичного стану середовища та прогнозування її стану стають надзвичайно трудомісткими науковими завданнями.
Існують різні підходи до організації моніторингу (за характером вирішуваних завдань, за рівнями організації, за природними середовищами, за якими ведуться спостереження). Прийнято розрізняти різні рівні моніторингу:
  • вивчення сильних впливів локальному масштабі, тобто коли мова йде про імпактних впливах І);
  • регіональний - Р);
  • фоновий (в біосферних заповідниках - Ф).
Стаття 68. Завдання екологічного контролю.
1. Екологічний контроль ставить своїми завданнями: спостереження за станом навколишнього середовища і її зміною під впливом господарської та іншої діяльності; перевірку виконання планів та заходів з охорони природи, раціонального використання природних ресурсів, оздоровлення навколишнього природного середовища, дотримання вимог природоохоронного законодавства і нормативів якості навколишнього природного середовища .
2. Система екологічного контролю складається з державної служби спостереження за станом навколишнього природного середовища, державного, виробничого, громадського контролю.
Окремі види екологічного моніторингу здійснюються низкою міністерств, відомств і служб: Росгідрометі (РГМ), Міністерством природних ресурсів, що включає колишній Госкомекологію (МПР), Службою Держсанепіднагляду (ГСЕН), Роскоземом, Федеральною службою лісу, Міністерством сільського господарства, Держбудом, Держкомстатом.
Система уповноважених федеральних органів у галузі охорони природного середовища включає 9 міністерств. Аналіз, а також досвід роботи цієї системи виявляють її недосконалість і невисоку ефективність. Зокрема, з 9 які у списку відомств тільки 3 (Росгідромет, Мінсільгосппрод, Рослесхоз) мають власні мережі спостережень за станом підвідомчих їм природних об'єктів на всій території РФ. У той же час, функції кількох відомств перетинаються (близькі або збігаються) в межах одного середовища: наприклад, питаннями охорони поверхневих вод займаються Госкомекологія, МПР Росії, Росгідромет, Мінсільгосппрод, Держкомриболовства
Уповноважені федеральні органи в галузі охорони природи
(Станом на 10 травня 2001 р.).
Міністерство, відомство
Функції та завдання природоохоронної діяльності
Державний комітет РФ по охороні навколишнього середовища (Госкомекологія)
У сфері охорони навколишнього середовища, забезпечення екологічної безпеки та збереження біологічного різноманіття:
· Здійснення державної політики та державного контролю
· Міжгалузева координація
· Державна екологічна експертиза
· Формування нормативно-правової бази і регулювання природокористування
· Моніторинг джерел антропогенного впливу на НПС та стану біоти (крім лісів)
· Забезпечення екологічною інформацією
· Міжнародні зобов'язання РФ
· Заповідні території.
Міністерство природних
ресурсів РФ
(МПР Росії)
У сфері вивчення, відтворення, використання та охорони природних ресурсів:
· Розробка і проведення державної політики
· Координація діяльності федеральних органів влади
· Управління державним фондом надр, використанням і охороною водного фонду, в т.ч. рибних запасів, ліцензування користування надрами
· Державний контроль за геологічним вивченням, використанням та охороною надр
· Охорона і відновлення водних об'єктів, басейнове регулювання
· Спостереження за станом надр та моніторинг поверхневих вод суші та морських вод.
Федеральна служба Росії по гідрометеорології та моніторингу навколишнього середовища
(Росгідромет)
В області моніторингу стану і забруднення навколишнього природного середовища:
· Моніторинг стану і забруднення атмосфери, поверхневих вод суші, грунтів, морського середовища
· Комплексний фоновий моніторинг і космічний моніторинг стану природних об'єктів
· Оцінка кліматичних змін
· Дослідження геофізичних процесів у біосфері
Міністерство сільського господарства і продовольства РФ
(Мінсільгосппрод)
В області охорони навколишнього середовища:
· Меліорація земель
· Охорона, контроль і регулювання використання об'єктів тваринного світу та середовища їх проживання (об'єкти полювання, водні біологічні ресурси в частині впливу на рибні запаси)
· Забезпечення родючості земель с / г призначення
· Безпечне поводження з пестицидами та отрутохімікатами
· Використання, охорона, захист ділянок лісового фонду, переданих у користування безвоздмездно
Державний земельний
комітет РФ
(Держкомзем)
В області контролю за використанням та охороною земель:
· Здійснення державної політики та контролю у сфері раціонального використання та охорони земель, збереження та відтворення родючості грунтів, поліпшення природного середовища
· Організація і проведення робіт із землеустрою та приватизації земель
· Ведення державного земельного кадастру і моніторингу земель
Державний комітет РФ з рибальства
(Держкомриболовства)
В області раціонального використання та вивчення запасів риб, інших водних тварин і рослин:
· Вивчення стану запасів риб, інших водних тварин і рослин, їх поширення та поведінки
· Регулювання використання водних біологічних ресурсів (внутрішні води, територіальні морські води, континентальний шельф та ін);
· Ліцензування рибальства і рибництва;
· Охорона водних біоресурсів, підвищення рибопродуктивності водойм.
Федеральна служба лісового господарства РФ
(Рослесхоз)
У галузі охорони, захисту, використання та відтворення лісів і ведення лісового господарства:
· Організація та забезпечення раціонального лісокористування
· Збереження і посилення средообразующих, водоохоронних, оздровітельних та ін корисних природних властивостей лісу
· Забезпечення збереження природних комплексів та об'єктів, що мають особливе природоохоронне, культурне, наукове і рекркаціонное значення, біологічного різноманіття і т.п. на землях лісового фонду.
· Охорона об'єктів тваринного світу та середовища їх проживання на землях лісового фонду
Федеральна служба геодезії та картографії РФ
(Роскартография)
В області охорони навколишнього середовища:
державний нагляд і контроль за дотриманням встановлених вимог при проведенні картографічних робіт, а також за реалізацією результатів робіт
Федеральна прикордонна служба РФ
(ФПС Росії)
У сфері охорони водних біологічних ресурсів:
державний контроль за дотриманням законодавства РФ у сфері охорони запасів риб в територіальному морі, виключної економічної зони і континентального шельфу РФ
У 1993 році було прийнято рішення про створення Єдиної державної системи екологічного моніторингу (ЕГСЕМ). Проте до цих пір роботи зі створення EГСЕМ знаходяться на стадії пілотних проектів регіонального масштабу.
Передбачалося, що ЕГСЕМ буде забезпечувати:
· Координацію розробки і виконання програм спостережень за станом навколишнього середовища;
· Регламентацію і контроль збору і обробки достовірних і порівнянних даних;
· Зберігання інформації, ведення спеціальних банків даних і їх гармонізацію (узгодження, телекомунікаційний зв'язок) з міжнародними еколого-інформаційними системами;
· Діяльність з оцінки і прогнозу стану об'єктів навколишнього природного середовища, природних ресурсів, відгуків екосистем і здоров'я населення на антропогенний вплив;
· Доступність інтегрованої екологічної інформації широкому колу споживачів.
Таким чином, в країні ведеться досить різноманітний комплекс спостережень, обліку, контролю і узагальнення даних за станом навколишнього середовища, який, тим не менш, не став єдиною системою.
Більше того, існуюча нормативно-правова база у сфері захисту навколишнього середовища та населення від впливу шкідливих факторів не може бути визнаною збалансованої та ефективної.

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

Перелік нормативних правових актів вищих органів державної влади Російської Федерації з питань охорони навколишнього середовища і природокористування, прийнятих до 1998 р., налічує 316 найменувань. Нижче наведені основні нормативно-правові акти з питань охорони навколишнього середовища та природокористування:
Конституція Російської Федерації; Законі РРФСР "Про охорону навколишнього природного середовища" та інших законодавчих актах;
Основні положення державної стратегії Російської Федерації з охорони навколишнього середовища і забезпечення сталого розвитку (Указ Президента Російської Федерації від 4 лютого 1994 р. № 236);
План дій Уряду Російської Федерації в області охорони навколишнього середовища на 1994-1995 рр.. і 1996-1997 рр.. (Постанови Уряду Російської Федерації від 18 травня 1994 р. № 496 та від 19 лютого 1996 р. № 155) та регіональних планах дій з охорони навколишнього середовища;
Концепція переходу України до сталого розвитку (Указ Президента Російської Федерації від 1 квітня 1996 р. № 440);
Державна стратегія сталого розвитку Російської Федерації, проект якої в основному схвалено Урядом 11 грудня 1997;
Національний план дій з охорони навколишнього середовища Російської Федерації на 1999-2001 роки

Цілі і завдання СЕМ Мінатому

Метою створення і діяльності СКЦ Мінатому Росії є підвищення ефективності управління галуззю та вдосконалення Галузевий системи щодо попередження та ліквідації надзвичайних ситуацій за рахунок використання сучасних методів і засобів для інформаційно-аналітичної підтримки керівництва Міністерства та Галузевої комісії з надзвичайних ситуацій. Таким чином, система екологічного моніторингу СКЦ має стати ефективним інструментом інформаційно-аналітичної підтримки керівництва і підприємств галузі у вирішенні зазначених завдань.
Основною метою створення в СКЦ Мінатому Росії системи екологічного моніторингу є: забезпечення інформаційно-аналітичної підтримки керівництва Мінатому Росії з питань охорони навколишнього середовища та екологічної безпеки населення як при нормальній експлуатації підприємств, так і в надзвичайних ситуаціях. При цьому повинні враховуватися оперативні та перспективні завдання галузі, а також сучасні тенденції створення ефективних систем екологічного менеджменту.
Таким чином, система екологічного моніторингу СКЦ Мінатому включає:
- Галузевий екологічний (по суті локальний) моніторинг;
- Збір, аналіз і узагальнення даних моніторингу, здійснюваного іншими відомствами в районах розміщення об'єктів галузі (локальний), систем територіального екологічного моніторингу (суб'єкта федерації) і узагальнених даних федеральних відомств, уповноважених у сфері охорони навколишнього середовища.
Для досягнення зазначеної мети необхідно вирішення наступних завдань:
1. здійснення внутрівідомчого моніторингу надходжень забруднюючих речовин у навколишнє середовище (контроль скидів, викидів, інших шляхів надходження), радіаційного, хімічного, теплового забруднення природного середовища в районах розташування підприємств Мінатому Росії;
2. централізована передача даних відомчої системи моніторингу в рамках Єдиної державної системи екологічного моніторингу;
3. збір, аналіз і систематизація інформації інших відомств, що здійснюють моніторинг (облік) надходження забруднюючих речовин та показників стану ОПВ та здоров'я людини у районах (зони спостереження) і регіонах (суб'єкти РФ) розташування підприємств галузі, у тому числі в ретроспективі з урахуванням що відбулися радіаційних аварій та інших надзвичайних ситуацій;
4. обліку та контролю ядерно-, радіаційно-та хімічно небезпечних об'єктів, включаючи виведені зі складу ВМФ АПЛ, забруднених в результаті функціонування підприємств територій і робіт з їх дезактивації та реабілітації;
5. створення об'єктивної картини за рівнями екологічного впливу підприємств галузі на навколишнє середовище та здоров'я населення, включаючи комплексну оцінку ризиків, пов'язаних з їх функціонуванням, в тому числі у порівнянні з іншими техногенними ризиками, зумовленими наявністю в регіонах підприємств-забруднювачів інших галузей промисловості і сільського господарства;
6. забезпечення інформаційно-аналітичної підтримки керівництва галузі і підприємств у разі НС (з екологічними наслідками) на об'єктах Мінатому або в регіонах їх розташування.
З урахуванням викладених завдань система екологічного моніторингу СКЦ Мінатому може бути визначена як інформаційно-аналітична система збору, обробки й подання результатів спостережень, оцінок і прогнозів змін у навколишньому середовищі і здоров'я населення, викликаних функціонуванням підприємств галузі, їх зіставленням з рівнем впливу інших техногенних факторів та сприйняття цих впливів громадськістю.
Ряд з перерахованих завдань може бути реалізований в рамках основного режиму функціонування СКЦ Мінатому Росії - отримання регулярних повідомлень безпосередньо з підприємств галузі та / або вже діючих центрів збору інформації (ВНІІХТ, ЦНІІАТОМІНФОРМ) на основі вже існуючих та створюваних форм звітності. Для цих завдань необхідна розробка документів, що регламентують надходження повідомлень в СКЦ і створення сполучених з іншими підсистемами СКЦ програмних засобів передачі та прийому повідомлень, їх зберігання, обробки та подання на технічних засобах СКЦ.
Для вирішення завдання 2 необхідно підготовка регламентів передачі даних в рамках ЕГСЕМ та необхідних програмно-технічних засобів.
Значний обсяг інформації про стан навколишнього середовища та пов'язаних з цим ризики, необхідний для вирішення завдань 3 та 5 може бути отриманий з звітності інших відомств - Держкомстату, МОЗ, Мінприроди і т.д. У відношенні цього блоку інформації, можливості зміни існуючих регламентів і форм є дуже обмеженими. У цьому випадку необхідно створити програмні засоби для конвертації інформації у формати, доступні для програмних засобів СКЦ. Значний обсяг інформації може бути отриманий з аналізу науково-технічної літератури. У цьому випадку необхідна його аналітична обробка, розробка способів і засобів зберігання і представлення даних на програмно-технічних засобах СКЦ.
Для вирішення завдання 6 необхідна організація системи моніторингу науково-технічної інформації з використанням вже ведуться робіт. У цьому випадку також необхідна регламентація збору та аналітичної обробки інформації, її передачі і прийому в СКЦ і розробка способів і засобів зберігання і представлення даних на програмно-технічних засобах СКЦ.
Для вирішення задачі 7 необхідно не тільки наявність даних по вихідного стану потенційних джерел викидів та скидів радіоактивних речовин і хімічних забруднювачів, але і засоби оперативного аналізу та прогнозування обстановки та їх подання на ПТК СКЦ.
Таким чином, для створення СЕМ СКЦ роботи повинні вестися за такими напрямками:
Розробка регламентів передачі даних з підприємств та галузевих інформаційних центрів у СКЦ Мінатому.
Розробка програмних засобів і баз даних для прийому - передачі, зберігання, обробки і представлення даних з урахуванням особливостей функціонування вже існуючих систем ПТК СКЦ.
Інформаційна інтеграція аналітичних робіт, в тому числі робіт з комплексної оцінки екологічної обстановки та ризиків для населення в районі розташування підприємств галузі з урахуванням всіх джерел забруднення навколишнього середовища.
Інформаційно-технічне забезпечення робіт експертних груп і центрів технічної підтримки в разі виникнення НС.

Склад і структура системи екологічного моніторингу ситуаційно кризового центру СЕМ СКЦ

Програмно-технічне забезпечення СЕМ СКЦ

Програмно-технічне забезпечення СЕМ СКЦ повинна включати наступні підсистеми:
1. Приймання і відображення даних екологічного моніторингу підприємств галузі;
2. Збору і представлення даних галузевої та відомчих систем екологічного моніторингу (природоохоронної звітності) - додаток 4;
3. Обліку радіаційно-та хімічно-небезпечних об'єктів галузі (у тому числі виведених зі складу флоту АПЛ), радіоактивно-забруднених територій, робіт з їх утилізації та реабілітації в рамках реалізації галузевих і державних екологічних програм;
4. Подання даних за екологічну ситуацію в районах розміщення підприємств галузі, включаючи результати комплексної порівняльної оцінки ризиків та інших параметрів екологічного впливу підприємств галузі на навколишнє середовище та населення
5. Підтримки прийняття рішень при виникненні у разі НС на об'єктах Мінатому або в регіонах їх розташування.
6. Уявлення інтегральних показників екологічного моніторингу керівництву галузі і користувачам корпоративної мережі Мінатому
7. Нормативно-правової документації з проблем екології

Інформаційне забезпечення

1. Довідкова інформація. До неї належать:
- Картографічна інформація (топооснови різного масштабу, карти лісокористування і використання земель санітарно-захисної зони і зон спостереження, карти з демографічними даними по зоні спостереження і регіону, карти транспортних повідомлень)
- Метеорологічна і гідрологічна інформація (роза вітрів, кліматичні дані по зоні спостереження та регіону, гідрологія основних водойм і водотоків, розташування метеостанцій і гідропостів, гідрологічна інформація);
- Інформація про об'єкт (генплан об'єкта, штатні джерела викидів та скидів, розміщення постів контролю, регламент контролю, допустимі та контрольні рівні забруднюючих речовин в джерелах скидів та викидів, і за валовими показниками скидів та викидів, допустимі і контрольні рівні вмісту забруднювача в контрольованих об'єктах зовнішнього середовища);
- Узагальнені дані про екологічну обстановку в зоні спостереження та регіоні (забруднення атмосфери та гідросфери за основними показниками, наявність специфічних забруднювачів і їх рівні вмісту в об'єктах зовнішнього середовища, червонокнижні види флори і фауни, ареали їх проживання, узагальнені екологічні показники (індекси, оцінки, бали), дані про медичні показники захворюваності і здоров'я персоналу об'єкта та населення, дані про споживання продуктів місцевого виробництва);
- Плани заходів щодо захисту персоналу та населення у разі аварії на об'єкті;
- Моделі розрахунку поширення забруднювача у випадку аварії на об'єкті (модель розсіювання забруднювача в атмосфері, модель формування "сліду" забруднення, моделі розповсюдження забруднювача у водоймах і водотоках, ін)
- Проектні дані про аварії на об'єкті, дані про їх наслідки.
- Нормативно-правова документація з питань охорони навколишнього середовища (законодавство РФ, постанови КМ РФ, відомчі норми і правила, ГОСТ, БНіП, галузеві документи, накази і розпорядження Мінатому) - додаток 5.
-Довідкова інформація термінів і визначення (глосарій з екологічного моніторингу) накопичується, оновлюється і зберігається в базі даних СКЦ.
Слід зазначити, що значна частина інформації, необхідної для функціонування СЕМ, зібрана і планується для збору в СКЦ в ході виконання центром робіт за іншими напрямками.
2. Регламентна інформація. Це інформація, що отримується спеціалізованими службами об'єктів (лабораторії зовнішньої дозиметрії, відділи охорони навколишнього середовища) в ході виконання регламентних робіт з контролю об'єкта, як джерела забруднюючих речовин та контролю за змістом забруднювача в об'єктах зовнішнього середовища на території санітарно-захисної зони і зони спостереження. До регламентної інформації відноситься також інформація від сторонніх організацій, підприємств, відомств, одержувана об'єктами Мінатому і (або) СКЦ. Прикладами такої інформації є: дані територіальних СЕС, інформація Росгідромету, Мінприроди, ГАН, Держкомстату та ін До регламентної інформації слід віднести також інформацію з НДР, виконуваних для підприємств з тематики охорони навколишнього середовища, а також аналітична інформація, готувати спеціалізованими установами Мінатому (ЦНІІАТОМІНФОРМ , ВНІІХТ та ін.) Дана інформація надходить з об'єктів Мінатому в спеціалізовані установи Мінатому (НДІ, главки, відділи). Одним з користувачів цієї інформації має стати СКЦ. Регламентна інформація використовується СКЦ для вирішення власних завдань, а також для поповнення і вдосконалення довідкової інформації СЕМ СКЦ.
3. Оперативна інформація. До неї належить інформація, що отримується СКЦ від підприємств Мінатому в автоматичному режимі (приклад - інформація АСКРО), а також інформація, що отримується в автоматичному режимі від установ інших відомств (приклад - метеоінформації від Росгідромету). Оперативною інформацією є також дані, одержувані від об'єктів Мінатому при виникненні від них НС.
4. Аналітична інформація. Це інформація, що отримується СЕМ СКЦ (або залученими для цієї мети фахівцями) за результатами аналізу та узагальнення науково-технічної інформації з питань СЕМ і охорони навколишнього середовища (інформація МАГАТЕ, НКДАР, публікації та звіти про НДР організацій галузі та інших відомств).
До аналітичної інформації належить також і основний продукт діяльності СКЦ - інформаційно-аналітичні матеріали, що направляються на підприємства галузі, керівництву Мінатому і в сторонні установи, в тому числі в ЗМІ (оформлені в установленому порядку).

Основні напрямки створення СЕМ СКЦ

Екологічний моніторинг включає в себе моніторинг забруднення всіх видів: хімічного, теплового, радіаційного. Підприємства Мінатому, в тій чи іншій мірі, є джерелами всіх трьох видів забруднення, причому нерідко специфічних (радіаційне забруднення, специфічні хімічні забруднювачі). Теплове забруднення навколишнього середовища характерно для АЕС, причому слід мати на увазі, що низько потенційне тепло, розсіюване у зовнішньому середовищі може розглядатися і як економічного ресурсу, використовуваного в господарських цілях (рибництво на теплих водах, парникові господарства).
На рівні галузевого екологічного моніторингу, для отримання об'єктивної картини впливу підприємств Мінатому на навколишнє природне середовище, необхідно вести моніторинг всіх видів забруднювача (з урахуванням специфіки кожного підприємства) за джерелами забруднення та об'єктам зовнішнього середовища, а також обов'язковий моніторинг факторів зовнішнього середовища, що визначають міграцію забруднювача в навколишньому середовищі (атмосферне перенесення, поведінка забруднювача в об'єктах гідросфери, грунтова міграція та ін.) Таким чином, екологічний моніторинг (локальний) включає в себе:
- Моніторинг джерел;
- Моніторинг факторів міграції;
- Моніторинг стану об'єктів навколишнього середовища.
Основні організації та служби, які здійснюють збір інформації про радіаційний, хімічному і тепловому забрудненні навколишнього середовища на територіальному рівні (здійснюють локальний моніторинг):
1. Служби самого підприємства. До них відносяться: лабораторія (відділ) зовнішньої дозиметрії, ведуча радіаційний контроль за станом об'єктів навколишнього середовища в санітарно-захисній зоні та зоні спостереження підприємства, служби цехів (відділів) підприємств (контроль за скидами-викидами радіоактивних речовин - лабораторії РБ відділів радіаційної безпеки, за скиданням-викидом хімічних забруднювачів - лабораторії хімічних цехів, тепла - турбінний цех, гідроцеху; органічних і хімічних речовин з КОС - лабораторії КОС).
2. Територіальні органи відомств, уповноважених у проведенні робіт у галузі охорони природи і здоров'я людини. До них відносяться: ПСЛ (промислово-санітарні лабораторії) об'єктових СЕС Держсанепіднагляду (контроль скидів-викидів, контроль продуктів харчування в СЗЗ і ЗС, води джерел питного водопостачання тощо), лабораторії та метеостанції Росгідромету (моніторинг стану і забруднення атмосфери, поверхневих вод , грунтів), лабораторії басейнових управлінь Міністерства природних ресурсів (моніторинг за станом поверхневих вод, у тому числі і біооб'єкти гідросфери, моніторинг надр), а також територіальні органи Мінекології, Мінсільгосппроду, Держкомзему, Держкомриболовства, Рослесхоза.
У СЕМ СКЦ в основному використовується інформація, одержувана цими службами та організаціями, яка, в принципі, охоплює всі види моніторингу, хоча в окремих випадках СКЦ має ініціювати проведення спеціальних робіт, необхідних для отримання інформації, необхідної СКЦ для вирішення поставлених перед ним завдань.
Вимоги до інформації та технічних засобів СЕМ СКЦ
1. Інформація, якою оперує СЕМ СКЦ, повинна бути достовірною. У даному випадку це означає, що вона повинна бути отримана з офіційних каналів, які використовуються аналітичні матеріали (моделі розрахунків, результати узагальнень та ін) повинні мати посилання на джерело, автора. Дані, одержувані інструментальними вимірами, повинні бути отримані на устаткуванні, що має сертифікат Держстандарту, в іншому випадку їх використання допускається, як виняток із спеціальною відміткою.
2. Технічні засоби СКЦ (програмно-технічні засоби) повинні дозволяти працювати з необхідними масивами даних, формувати базу даних і представляти інформацію з використанням ГІС-технології. Для забезпечення оперативності у складі СКЦ повинен бути оформлений аналітико-диспетчерський пункт з автоматизованими робочими місцями.
3. СЕМ повинна бути повністю інтегрована з інформаційно-довідковою системою і системою радіаційного моніторингу СКЦ. Вона повинна використовувати єдиний банк даних атрибутивної та картографічної інформації. При створенні та підключенні нових розділів банку даних повинні враховуватися існуючі принципи і підходи до організації інформаційного забезпечення СКЦ.
4. Знову розробляється програмне забезпечення повинне максимально використовувати існуючі програмні додатки. СЕМ розробляється на існуючій технічній базі СКЦ і функціонує з використанням існуючого загальносистемного програмного забезпечення.
5. Передача даних екологічного моніторингу з підприємств галузі має здійснюватися за тими ж комунікаційних каналів, що і дані радіаційного моніторингу.

Опис структури бази даних.
У даному розділі наведена інформація щодо структурі логічної моделі бази даних
На підставі завдань екологічного моніторингу була побудована модель бази даних, що дозволяє зберігати дані екологічного моніторингу в різних розрізах.
Дані поділяються на розрізи:
  1. з екологічних величинам
  2. по об'єктах екологічного моніторингу
  3. з організації - джерела даних
На малюнку 1 наведена схема логічної моделі бази даних "Екологічний моніторинг".
Звіт визначення сутностей з описом сутностей і зв'язків між ними наведено в додатку файл Acrobat reader ent_uir.pdf.
Звіт сутності та їх атрибути про атрибути сутностей із зазначенням назви, типу, описи можливих значень та коментарі
файл Acrobat reader atrib_uir.pdf ..
Для їх побудови використані модифіковані звіти середовища побудови звітів Report Builder входить в комплект
Developer 2000
Після побудови логічної моделі за допомогою Aplication Design Transformer була побудована фізична модель бази даних.
У додатку наведено коди генерації бази даних в репозитарій Oracle.


Малюнок 1. Логічна модель бази даних.

Опис клієнтського додатка

Клієнтський додаток написано в середовищі Borlan C + + Builder 5.0
Підключення до бази даних контролюється не засобами програми, а самої СУБД, що спрощує взаємодію системи з інформацією бази даних.
У СУБД задається рівень доступу користувача відповідно до його ролі призначеної йому адміністратором. Реалізовано пошук по базі даних.
дозволяє заповнювати різні довідники
Надалі планується написання АРМ Еколога. Яке буде дозволяти на основі бази даних "Екологічний моніторинг" розраховувати ризики для населення, що проживає на території моніторингу.

Додаток 1. Форма державної статистичної звітності 2-ТП радіоактивність

Конфіденційність статистичної інформації
Неподання або порушення строків подання інформації, а також її спотворення тягне за собою відповідальність, встановлену Законом Російської Федерації "Про відповідальність за порушення порядку подання державної статистичної звітності" від 13.05.92 р. № 2761-1
ВІДОМОСТІ про радіоактивні відходи, НАДХОДЖЕННЯ РАДІОНУКЛІДІВ
У НАВКОЛИШНЄ СЕРЕДОВИЩЕ І ЗАБРУДНЕНИХ ІМІ ТЕРИТОРІЯХ
із а __________ рік

Подають:
Терміни подання
Форма № 2-тп (радіоактивність)
юридичні особи, їх відокремлені підрозділи, що здійснюють діяльність, пов'язану з виробництвом, використанням, переробкою, утилізацією, зберіганням, похованням, транспортуванням радіоактивних речовин та радіоактивних відходів:
- Регіональному або відомчому інформаційно-аналітичному центру обліку
та контролю радіоактивних речовин і радіоактивних відходів відповідного
органу виконавчої влади
регіональні та відомчі інформаційно-аналітичні центри обліку та контролю радіоактивних речовин і радіоактивних відходів:
- Центральному інформаційно-аналітичному центру обліку та контролю
радіоактивних речовин та радіоактивних відходів Мінатому Росії
Минатом Росії
- Держкомстату Росії (по узгодженій програмі)
25 січня
1 березня
30 березня
Затверджена
постановою
Держкомстату Росії
від 10.08.2000 № 73

Річна

Найменування організації ______________________________________________________________________________________________
Поштова адреса _________________________________________________________________________________________________________________________
Код
Код (проставляє звітуючих організація)
форми
по ОКУД
звітує організації
за ЄДРПОУ
виду діяльності за ОКДП
галузі за ЗКГНГ
території за Окатий
міністерства (відомства), органу управ-ня по ОКОГУ
організаційно-правової форми з ОКОПФ
форми власності за ОКФС
1
2
3
4
5
6
7
8
9
0609027

1. Радіоактивні відходи, відпрацьоване ядерне паливо
Дозвіл на розміщення РАВ № __________ від __ ____ _________г. Термін дії дозволу з __ ____ _________г. до __ ____ _________ р.
Найменування державного органу, що видав дозвіл _____________________________________________________________________
Дозвіл на розміщення ВЯП № __________ від __ ____ _________г. Термін дії дозволу з __ ____ _________г. до __ ____ _________ р.
Найменування державного органу, що видав дозвіл _____________________________________________________________________
Код за ОКЕІ: м 3 - 113; т - 168; шт. - 796; Бк - 323
№ будів-ки
Найменування показника, код РАВ, ВЯП 1)
Кількість РАВ, ВЯП 2)
Сумарна активність, Бк
Пункт зберігання, поховання
Основні радіонукліди
м 3
т
шт.
альфа-нуклідів
бета-нуклідів
код 1)
найменування, номер
А
Б
1
2
3
4
5
6
7
8
Освіта, надходження, передача, переробка РАВ, ВЯП за звітний рік
100
Утворилося в організації, усього
Х
Х
Х

101
в тому числі за кодами:
102
103
200
Надійшло від сторонніх організацій, всього
Х
Х
Х

201
в тому числі за кодами:
202
203
300
Передано стороннім організаціям, всього
Х
Х
Х

301
в тому числі за кодами:
Х
Х
302
Х
Х
303
Х
Х

Продовження таблиці 1
А
Б
1
2
3
4
5
6
7
8
400
Перероблено в організації, усього
Х
Х
Х

401
в тому числі за кодами:
Х
Х
402
Х
Х
403
Х
Х
500
Утворилося вдруге після переробки, всього
Х
Х
Х

501
в тому числі за кодами:
502
503
Наявність на кінець звітного року
600
Всього
Х
Х
Х
601
в тому числі за кодами:
602
603
604
605
700
Кількість РАВ, ВЯП, дозволене до розміщення
Х
Х
Х

701
в тому числі за кодами:
702
703
Примітка:
1) Коди РАВ, ВЯП, а також пунктів їх зберігання, поховання наведені в інструкції із заповнення.
2) Кількість рідких радіоактивних відходів вказується в м 3 (гр.1), кількість твердих радіоактивних відходів - у тоннах (гр.2), кількість відпрацьованих закритих радіонуклідних джерел - в штуках (гр.3). Для ВЯП вказується кількість тонн опроміненого урану (гр.2) і кількість ВТВЗ у штуках (гр.3).

2. Надходження радіонуклідів в атмосферне повітря
Дозвіл на допустимі межі викиду радіонуклідів в атмосферу № __________ від __ ____ _________
Найменування державного органу, що видав дозвіл _________________________________________________________
Термін дії дозволу з __ ____ _________ до __ ____ _________
Код за ОКЕІ: Бк - 323
№ рядка
Найменування радіонукліда
Дозволений викид радіонукліда в атмосферу за рік, Бк
Фактично викинуто радіонукліда в атмосферу, Бк
за звітний рік
за попередній рік
А
У
1
2
3
201
202
203
204
205
206
207
208
209
210

3. Скидання стічних вод, що містять радіонукліди
Дозвіл на скидання радіонуклідів у водні об'єкти та на рельєф місцевості № __________ від __ ____ _________
Найменування державного органу, що видав дозвіл _________________________________________________________
Термін дії дозволу з __ ____ _________ до __ ____ _________
Код за ОКЕІ: тис.м 3 -114; Бк - 323
№ рядка
№ (найменування) випуску стічних вод
Найменування приймача стічних вод
Відведено стічних вод, з-тримають радионук-ліди, тис.м 3
Скидання радіонуклідів зі стічними водами за звітний рік, Бк
_________________ 1)
_________________
_________________
_________________
_________________
дозволений-ний
фактічес-ки
дозволений-ний
фактічес-ки
дозволений-ний
фактічес-ки
дозволений-ний
фактічес-ки
дозволений-ний
фактічес-ки
А
Б
У
1
2
3
4
5
6
7
8
9
10
11
300
Х
Х
301
302
303
304
Примітка:
1) Тут і далі вказується найменування радіонукліда.
4. Перевищення значень рівня втручання в підземних водах
Кількість спостережних свердловин, що знаходяться на балансі підприємства: _________ шт.
Код за ОКЕІ: шт -796; км - 008
№ рядка
№ спо-котельної свердловини
Найменування зони контролю 1)
Джерело надходження радіонуклідів в підземні води
Відстань від джерела до наглядової свердловини, км
Середньорічна вміст радіонуклідів у підземних водах у спостережних свердловинах з перевищенням УВ вода, Бк / кг
___________ 2)
_____________
_____________
_____________
_____________
А
Б
У
Г
1
2
3
4
5
6
401
402
403
404
Примітка:
1) У графі В проставляються наступні позначення: "ПП" (проммайданчик); "СЗЗ" (санітарно-захисна зона); "ДТ" (зона спостереження).
2) Тут і далі вказується найменування радіонукліда.

5. Території, забруднені радіонуклідами, та їх реабілітація
Код за ОКЕІ: тис.м 2 -058
№ будів-ки
Найменування показника
Площа забруднених і реабілітованих територій, тис.м 2
Радіонукліди, що визначають забруднення
Всього
з потужністю дози гамма-випромінювання мкГр / годину
з щільністю забруднення, Бк / м 2
альфа-активними нуклідами
стронцій - 90
цезій - 137
до 0,5
від 0,5 до 2
більше 2
до 5 * 10 4
більше 5 * 10 4
до 5 * 10 5
більше 5 * 10 5
А
Б
1
2
3
4
5
6
7
8
9
10

510
ЗА ЗВІТНИЙ РІК
Забруднено, виявлено забруднених територій, всього (511 +512 +513)

511
в тому числі:
на проммайданчику
512
в санітарно-захисній зоні
513
в зоні спостереження

520
ЗА ЗВІТНИЙ РІК
Реабілітовано територій, всього (521 +522 +523 +524)

521
в тому числі:
під сільськогосподарські угіддя
522
під лісові насадження
523
під будівництво
524
для санітарно-гігієнічного використання


530
НАЯВНІСТЬ на кінець звітного року
Забруднених територій, всього (531 +532 +533)

531
в тому числі:
на проммайданчику
532
в санітарно-захисній зоні
533
в зоні спостереження

Продовження таблиці 5
А
Б
1
2
3
4
5
6
7
8
9
10

540
З рядка 530:
Забруднені землі, всього (541 +551 +561)

541
в тому числі:
на проммайданчику

542
з них:
543
544
545
546
551
в санітарно-захисній зоні

552
з них:
553
554
561
в зоні спостереження

562
з них:
563
564
570
Забруднені водойми, всього (571 +581 +591)

571
в тому числі:
на проммайданчику

572
з них:
573
574
575
581
в санітарно-захисній зоні

582
з них:
583
584
591
в зоні спостереження

592
з них:
593
594

6. Виконання заходів щодо зниження радіаційного впливу на навколишнє середовище
Код за ОКЕІ: млн.руб. - 385; м 3 - 113; тис.м 2 - 114; т - 168; Бк - 323
№ рядка
Заходи, виконання яких передбачено у звітному році
Терміни виконання (початок - закінчення)
Використано (освоєно) коштів на проведення заходів (за рахунок усіх джерел фінансування) - млн.руб.
Природоохоронний ефект заходи
Код при-родоох-ранного ефекту 1)
Скорочення кількості РАВ, обсягу скидів (викидів); площа тер-ритора зі зниженням рівня забруднення
Найменування радіонукліда, по якому відбувається зниження впливу на навколишнє середовище
Величина предотвращенного скидання (викиду) радіонукліда, зменшення кількості РАВ (Бк); зниження рівня забруднення територій, (Бк / м 2, мкГр / годину)
Всього за звітний рік
у тому числі коштів з федерального бюджету
одиниця з-рювання 2)
всього за звітний рік
одиниця з-рювання 3)
Фактічес-кая за від-парний рік
розрахункова річна
А
Б
1
2
3
4
5
6
7
8
9
10
601
602
603
604
605
Примітка:
1) У графі 4 проставляються наступні коди:
01 - знешкодження і скорочення радіоактивних відходів;
02 - скорочення викидів радіонуклідів;
03 - скорочення скидання радіонуклідів;
04 - зниження надходження радіонуклідів в підземні води;
05 - зменшення площі забруднених територій;
06 - інші природоохоронні ефекти.
2) Одиниці виміру: м 3; тис.м 2; т; Бк.
3) Одиниці виміру: Бк; Бк / м 2; мкГр / год.
Керівник
організації
(П.І.Б.)
(Підпис)
Посадова особа,
відповідальна за
складання форми
(Посада)
(П.І.Б.)
(Підпис)
"____" _________20__ Рік
(Номер контактного телефону)
(Дата складання
документа)

Додаток 2. Коди генерації бази даних в репозитарій

- C: \ temp \ uir.tab
-
- Generated for Oracle 8 on Tue Dec 25 16:29:20 2001 by Server Generator 6.0.3.3.0

PROMPT Creating Table 'OTCHETNOST'
CREATE TABLE OTCHETNOST
(CODE NUMBER (6) NOT NULL
, ПЕРІОДІЧН_CODE VARCHAR2 (240) NOT NULL
, PARAM_CODE NUMBER (6) NOT NULL
, НОРМАТІВ_CODE NUMBER (6) NOT NULL
, НОРМАТІВ_CODE_ЯВЛЯЕТСЯ NUMBER (6) NOT NULL
, UNI1_UNITMEAS VARCHAR2 (20)
, ОБ'ЕКТ_ЕМ_CODE NUMBER (6) NOT NULL
)
/
COMMENT ON COLUMN OTCHETNOST.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN OTCHETNOST.ПЕРІОДІЧН_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN OTCHETNOST.PARAM_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN OTCHETNOST.НОРМАТІВ_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN OTCHETNOST.НОРМАТІВ_CODE_ЯВЛЯЕТСЯ IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN OTCHETNOST.ОБ'ЕКТ_ЕМ_CODE IS 'Унікальний ідентифікатор'
/
PROMPT Creating Table 'ORGANIZATION'
CREATE TABLE ORGANIZATION
(CODE NUMBER (6,0) NOT NULL
, NAME VARCHAR2 (200) NOT NULL
, SHORTNAME VARCHAR2 (50)
, ORG_TYPE VARCHAR2 (50) NOT NULL
, ADDRESS VARCHAR2 (200)
, SERVICE VARCHAR2 (2000)
, TELEPHONE VARCHAR2 (200)
, REKV VARCHAR2 (200)
, STATUS VARCHAR2 (1) DEFAULT '(''н'')'
, SGYK NUMBER (1,0) DEFAULT 0
, EXPORG NUMBER (1,0) DEFAULT 0
, LAWSTATUS VARCHAR2 (50)
, POWERORG NUMBER (1,0) DEFAULT 0
, INFEXCH VARCHAR2 (3)
, ORG_CODE NUMBER (6,0)
, ПОДОТЧЕТНА_ОРГ NUMBER (6,0)
)
/
PROMPT Creating Table 'FORMA_OTCHETNOSTI'
CREATE TABLE FORMA_OTCHETNOSTI
(CODE NUMBER (6) NOT NULL
, POST VARCHAR2 (240)
, NAME VARCHAR2 (240)
, DATA VARCHAR2 (240)
, DATA2 VARCHAR2 (4)
, DATA3 VARCHAR2 (240)
, ORG_CODE NUMBER (6,0) NOT NULL
, ORG_CODE_УТВЕРЖДЕНА NUMBER (6,0) NOT NULL
, ПЕРІОДІЧН_CODE VARCHAR2 (240) NOT NULL
, ФОРМА_CODE NUMBER (6)
)
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.CODE IS 'Унікльний ідентифікатор'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.POST IS 'Посада особи відповідальної за заповнення форми'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.NAME IS 'ПІБ особи відповідальної за заповнення форми'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.DATA IS 'дата складання документа'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.DATA2 IS 'дата отримання документа'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.DATA3 IS 'дата введення форми отчнтності'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.ПЕРІОДІЧН_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN FORMA_OTCHETNOSTI.ФОРМА_CODE IS 'Унікльний ідентифікатор'
/
PROMPT Creating Table 'SUBSTANCE'
CREATE TABLE SUBSTANCE
(CODE NUMBER (6) NOT NULL
, FULLNAME VARCHAR2 (50) NOT NULL
, SHORTNAME VARCHAR2 (20) NOT NULL
, CEMICALNAME VARCHAR2 (30)
, DESCR VARCHAR2 (1000)
)
/
COMMENT ON COLUMN SUBSTANCE.CODE IS 'Унікальний ідентифікатор'
/
COMMENT ON COLUMN SUBSTANCE.FULLNAME IS 'У відповідно до реєстру'
/
COMMENT ON COLUMN SUBSTANCE.SHORTNAME IS 'У відповідно до реєстру'
/
COMMENT ON COLUMN SUBSTANCE.CEMICALNAME IS 'Хімічна формула (назва)'
/
COMMENT ON COLUMN SUBSTANCE.DESCR IS 'впливає на ...'
/
PROMPT Creating Table 'PERIOD'
CREATE TABLE PERIOD
(CODE VARCHAR2 (240) NOT NULL
, NAME VARCHAR2 (240) NOT NULL
)
/
COMMENT ON COLUMN PERIOD.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN PERIOD.NAME IS 'Найменування періоду звітності "
/
PROMPT Creating Table 'ECOLOGY_NUMBER'
CREATE TABLE ECOLOGY_NUMBER
(CODE NUMBER (6) NOT NULL
, FULLNAME VARCHAR2 (50)
, SHORTNAME VARCHAR2 (20)
, FLAG VARCHAR2 (1) NOT NULL
, DESCR VARCHAR2 (100)
, ГРУППА_ПАР_CODE NUMBER (6) NOT NULL
, UNI1_UNITMEAS VARCHAR2 (20)
, ТІП_ЕВ_CODE NUMBER (6) NOT NULL
)
/
COMMENT ON COLUMN ECOLOGY_NUMBER.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_NUMBER.FULLNAME IS 'Найменування повне'
/
COMMENT ON COLUMN ECOLOGY_NUMBER.SHORTNAME IS 'Найменування короткий'
/
COMMENT ON COLUMN ECOLOGY_NUMBER.FLAG IS 'покажчик на тип значення (числове, текстове)'
/
COMMENT ON COLUMN ECOLOGY_NUMBER.DESCR IS 'Опис'
/
COMMENT ON COLUMN ECOLOGY_NUMBER.ГРУППА_ПАР_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_NUMBER.ТІП_ЕВ_CODE IS 'Унікальний ідентифікатор'
/
PROMPT Creating Table 'GROUP_PARAMETR'
CREATE TABLE GROUP_PARAMETR
(CODE NUMBER (6) NOT NULL
, NAME VARCHAR2 (240) NOT NULL
, ГРУППА_ПАР NUMBER (6)
)
/
COMMENT ON COLUMN GROUP_PARAMETR.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN GROUP_PARAMETR.NAME IS 'Найменування групи параметрів'
/
COMMENT ON COLUMN GROUP_PARAMETR.ГРУППА_ПАР IS 'Унікальний ідентифікатор сутності'
/
PROMPT Creating Table 'TYPE_ECOLOGY_NUMBER'
CREATE TABLE TYPE_ECOLOGY_NUMBER
(CODE NUMBER (6) NOT NULL
, NAME VARCHAR2 (240) NOT NULL
, ТІП_ЕВ NUMBER (6)
)
/
COMMENT ON COLUMN TYPE_ECOLOGY_NUMBER.CODE IS 'Унікальний ідентифікатор'
/
COMMENT ON COLUMN TYPE_ECOLOGY_NUMBER.NAME IS 'Найменування типу параметра'
/
COMMENT ON COLUMN TYPE_ECOLOGY_NUMBER.ТІП_ЕВ IS 'Унікальний ідентифікатор'
/
PROMPT Creating Table 'ZAGRAZN_VV'
CREATE TABLE ZAGRAZN_VV
(CODE NUMBER (6) NOT NULL
, СМЕСІ_CODE NUMBER (6)
, ISO_SHORTNAME VARCHAR2 (10)
, SUBSTANCE_CODE NUMBER (6)
)
/
COMMENT ON COLUMN ZAGRAZN_VV.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ZAGRAZN_VV.СМЕСІ_CODE IS 'Унікальний ідетіфікатор сутності'
/
COMMENT ON COLUMN ZAGRAZN_VV.SUBSTANCE_CODE IS 'Унікальний ідентифікатор'
/
PROMPT Creating Table 'SMES'
CREATE TABLE SMES
(CODE NUMBER (6) NOT NULL
, FULLNAME VARCHAR2 (200) NOT NULL
, SHORTNAME VARCHAR2 (20)
)
/
COMMENT ON COLUMN SMES.CODE IS 'Унікальний ідетіфікатор сутності'
/
COMMENT ON COLUMN SMES.FULLNAME IS 'Повне найменування суміші речовин'
/
COMMENT ON COLUMN SMES.SHORTNAME IS 'Короткий найменування суміші речовин'
/
PROMPT Creating Table 'ECOLOGY_PARAM'
CREATE TABLE ECOLOGY_PARAM
(CODE NUMBER (6) NOT NULL
, DATA_B DATE NOT NULL
, DATA_E DATE
, TYPE_PARAMETR VARCHAR2 (240) NOT NULL
, TYPE_ZNACH VARCHAR2 (240) NOT NULL
, DESCR VARCHAR2 (100)
, UNI1_UNITMEAS VARCHAR2 (20)
, ЕКОЛОГ_CODE NUMBER (6) NOT NULL
, ЗАГР_ВВ_CODE NUMBER (6)
, НОРМАТІВ_CODE NUMBER (6) NOT NULL
, НОРМАТІВ_CODE_ІМЕЕТ NUMBER (6) NOT NULL
, ФОРМА_CODE NUMBER (6)
, ПЕРІОДІЧН_CODE VARCHAR2 (240) NOT NULL
)
/
COMMENT ON COLUMN ECOLOGY_PARAM.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_PARAM.DATA_B IS 'Дата введення в дію параметра'
/
COMMENT ON COLUMN ECOLOGY_PARAM.DATA_E IS 'Дата завершення дії параметра'
/
COMMENT ON COLUMN ECOLOGY_PARAM.TYPE_PARAMETR IS 'Тип параметра (фактичний, узгоджений, норматив)'
/
COMMENT ON COLUMN ECOLOGY_PARAM.TYPE_ZNACH IS 'Тип значення (розрахункове, вихідне)'
/
COMMENT ON COLUMN ECOLOGY_PARAM.DESCR IS 'Коментар'
/
COMMENT ON COLUMN ECOLOGY_PARAM.ЕКОЛОГ_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_PARAM.ЗАГР_ВВ_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_PARAM.НОРМАТІВ_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_PARAM.НОРМАТІВ_CODE_ІМЕЕТ IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN ECOLOGY_PARAM.ФОРМА_CODE IS 'Унікльний ідентифікатор'
/
COMMENT ON COLUMN ECOLOGY_PARAM.ПЕРІОДІЧН_CODE IS 'Унікальний ідентифікатор сутності'
/
PROMPT Creating Table 'NORMATIV_PARAM'
CREATE TABLE NORMATIV_PARAM
(CODE NUMBER (6) NOT NULL
, НОРМАТІВ_TYPE VARCHAR2 (240)
)
/
COMMENT ON COLUMN NORMATIV_PARAM.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN NORMATIV_PARAM.НОРМАТІВ_TYPE IS 'Тип нормативу'
/
PROMPT Creating Table 'TERRITORIES'
CREATE TABLE TERRITORIES
(CODE NUMBER NOT NULL
, KINDT NUMBER (2,0) NOT NULL
, NAME VARCHAR2 (200) NOT NULL
, DESCR VARCHAR2 (4000)
, SQUARE NUMBER
, GRIF NUMBER (2,0) DEFAULT 0 NOT NULL
)
/
PROMPT Creating Table 'OBJECT_EM'
CREATE TABLE OBJECT_EM
(CODE NUMBER (6) NOT NULL
, TYPE_OBJ VARCHAR2 (240)
, CODE_OBJ VARCHAR2 (240)
, CLASS VARCHAR2 (240)
, DET_STRUCT VARCHAR2 (240)
, DET_TER VARCHAR2 (240)
)
/
COMMENT ON COLUMN OBJECT_EM.CODE IS 'Унікальний ідентифікатор'
/
COMMENT ON COLUMN OBJECT_EM.TYPE_OBJ IS 'Тип об'єкта моніторингу'
/
COMMENT ON COLUMN OBJECT_EM.CODE_OBJ IS 'код об'єкта моніторингу'
/
COMMENT ON COLUMN OBJECT_EM.CLASS IS 'клас об'єкта (населення територія об'єкт)'
/
COMMENT ON COLUMN OBJECT_EM.DET_STRUCT IS 'деталізація структури'
/
COMMENT ON COLUMN OBJECT_EM.DET_TER IS 'деталізація за місцезнаходженням'
/
PROMPT Creating Table 'UNITMEASURE'
CREATE TABLE UNITMEASURE
(UNITMEAS VARCHAR2 (20) NOT NULL
, MEASSYST VARCHAR2 (15) NOT NULL
, FACTOR NUMBER
, CODE NUMBER (4,0)
, DISPLAY_FORMAT VARCHAR2 (20)
)
/
COMMENT ON COLUMN UNITMEASURE.FACTOR IS 'Коефіцієнт переводу одиниць виміру (1-для основного)'
/
COMMENT ON COLUMN UNITMEASURE.CODE IS 'Унікальний код'
/
COMMENT ON COLUMN UNITMEASURE.DISPLAY_FORMAT IS 'Форматна маска'
/
PROMPT Creating Table 'VALUE'
CREATE TABLE VALUE
(CODE NUMBER (6) NOT NULL
, DATA_START DATE NOT NULL
, DATA_STOP DATE NOT NULL
, VALUE_NUMBER NUMBER
, VALUE_TEXT VARCHAR2 (240)
, DESCR VARCHAR2 (240)
, PARAM_CODE NUMBER (6) NOT NULL
, ORG_CODE NUMBER (6,0) NOT NULL
, ОТЧЕТНОСТЬ_CODE NUMBER (6) NOT NULL
)
/
COMMENT ON COLUMN VALUE.CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN VALUE.DATA_START IS 'Дата початку усереднення параметра'
/
COMMENT ON COLUMN VALUE.DATA_STOP IS 'Дата закінчення усереднення'
/
COMMENT ON COLUMN VALUE.VALUE_NUMBER IS 'Чисельне значення величини'
/
COMMENT ON COLUMN VALUE.VALUE_TEXT IS 'Текстове значення величини'
/
COMMENT ON COLUMN VALUE.DESCR IS 'Коментарі'
/
COMMENT ON COLUMN VALUE.PARAM_CODE IS 'Унікальний ідентифікатор сутності'
/
COMMENT ON COLUMN VALUE.ОТЧЕТНОСТЬ_CODE IS 'Унікальний ідентифікатор сутності'
/
PROMPT Creating Table 'ISOTOPE'
CREATE TABLE ISOTOPE
(SHORTNAME VARCHAR2 (10) NOT NULL
, FULLNAME VARCHAR2 (50) NOT NULL
)
/
- C: \ temp \ uir.con
-
- Generated for Oracle 8 on Tue Dec 25 16:29:20 2001 by Server Generator 6.0.3.3.0

PROMPT Creating Primary Key on 'OTCHETNOST'
ALTER TABLE OTCHETNOST
ADD CONSTRAINT ОТЧЕТНОСТЬ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'ORGANIZATION'
ALTER TABLE ORGANIZATION
ADD CONSTRAINT ORG_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'FORMA_OTCHETNOSTI'
ALTER TABLE FORMA_OTCHETNOSTI
ADD CONSTRAINT ФОРМА_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'SUBSTANCE'
ALTER TABLE SUBSTANCE
ADD CONSTRAINT SUBSTANCE_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'PERIOD'
ALTER TABLE PERIOD
ADD CONSTRAINT ПЕРІОДІЧН_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'ECOLOGY_NUMBER'
ALTER TABLE ECOLOGY_NUMBER
ADD CONSTRAINT ЕКОЛОГ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'GROUP_PARAMETR'
ALTER TABLE GROUP_PARAMETR
ADD CONSTRAINT ГРУППА_ПАР_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'TYPE_ECOLOGY_NUMBER'
ALTER TABLE TYPE_ECOLOGY_NUMBER
ADD CONSTRAINT ТІП_ЕВ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'ZAGRAZN_VV'
ALTER TABLE ZAGRAZN_VV
ADD CONSTRAINT ЗАГР_ВВ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'SMES'
ALTER TABLE SMES
ADD CONSTRAINT СМЕСІ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'ECOLOGY_PARAM'
ALTER TABLE ECOLOGY_PARAM
ADD CONSTRAINT PARAM_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'NORMATIV_PARAM'
ALTER TABLE NORMATIV_PARAM
ADD CONSTRAINT НОРМАТІВ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'TERRITORIES'
ALTER TABLE TERRITORIES
ADD CONSTRAINT TER3_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'OBJECT_EM'
ALTER TABLE OBJECT_EM
ADD CONSTRAINT ОБ'ЕКТ_ЕМ_PK PRIMARY KEY
(CODE)
/
PROMPT Creating Primary Key on 'UNITMEASURE'
ALTER TABLE UNITMEASURE
ADD CONSTRAINT UNI1_PK PRIMARY KEY
(UNITMEAS)
/
PROMPT Creating Primary Key on 'ISOTOPE'
ALTER TABLE ISOTOPE
ADD CONSTRAINT ISO_PK PRIMARY KEY
(SHORTNAME)
/
PROMPT Creating Unique Keys on 'ORGANIZATION'
ALTER TABLE ORGANIZATION
ADD (CONSTRAINT ORG_SYS_C002890_UK UNIQUE
(NAME))
ADD (CONSTRAINT ORG_SYS_C002891_UK UNIQUE
(SHORTNAME))
/
PROMPT Creating Unique Keys on 'TERRITORIES'
ALTER TABLE TERRITORIES
ADD (CONSTRAINT TER3_SYS_C0027487_UK UNIQUE
(NAME))
/

PROMPT Creating Foreign Keys on 'OTCHETNOST'
ALTER TABLE OTCHETNOST ADD CONSTRAINT
ОТЧЕТНОСТЬ_ПЕРІОДІЧН_FK FOREIGN KEY
(ПЕРІОДІЧН_CODE) REFERENCES PERIOD
(CODE) ADD CONSTRAINT
ОТЧЕТНОСТЬ_PARAM_FK FOREIGN KEY
(PARAM_CODE) REFERENCES ECOLOGY_PARAM
(CODE) ADD CONSTRAINT
ОТЧЕТНОСТЬ_НОРМАТІВ_FK FOREIGN KEY
(НОРМАТІВ_CODE) REFERENCES NORMATIV_PARAM
(CODE) ADD CONSTRAINT
ОТЧЕТНОСТЬ_НОРМАТИВ_ЯВЛЯЕТС_FK FOREIGN KEY
(НОРМАТІВ_CODE_ЯВЛЯЕТСЯ) REFERENCES NORMATIV_PARAM
(CODE) ADD CONSTRAINT
ОТЧЕТНОСТЬ_UNI1_FK FOREIGN KEY
(UNI1_UNITMEAS) REFERENCES UNITMEASURE
(UNITMEAS) ADD CONSTRAINT
ОТЧЕТНОСТЬ_ОБ'ЕКТ_ЕМ_FK FOREIGN KEY
(ОБ'ЕКТ_ЕМ_CODE) REFERENCES OBJECT_EM
(CODE)
/
PROMPT Creating Foreign Keys on 'FORMA_OTCHETNOSTI'
ALTER TABLE FORMA_OTCHETNOSTI ADD CONSTRAINT
ФОРМА_ФОРМА_FK FOREIGN KEY
(ФОРМА_CODE) REFERENCES FORMA_OTCHETNOSTI
(CODE) ADD CONSTRAINT
ФОРМА_ORG_УТВЕРЖДЕНА_FK FOREIGN KEY
(ORG_CODE_УТВЕРЖДЕНА) REFERENCES ORGANIZATION
(CODE) ADD CONSTRAINT
ФОРМА_ПЕРІОДІЧН_FK FOREIGN KEY
(ПЕРІОДІЧН_CODE) REFERENCES PERIOD
(CODE)
/
PROMPT Creating Foreign Keys on 'ECOLOGY_NUMBER'
ALTER TABLE ECOLOGY_NUMBER ADD CONSTRAINT
ЕКОЛОГ_UNI1_FK FOREIGN KEY
(UNI1_UNITMEAS) REFERENCES UNITMEASURE
(UNITMEAS) ADD CONSTRAINT
ЕКОЛОГ_ТІП_ЕВ_FK FOREIGN KEY
(ТІП_ЕВ_CODE) REFERENCES TYPE_ECOLOGY_NUMBER
(CODE) ADD CONSTRAINT
ЕКОЛОГ_ГРУППА_ПАР_FK FOREIGN KEY
(ГРУППА_ПАР_CODE) REFERENCES GROUP_PARAMETR
(CODE)
/
PROMPT Creating Foreign Keys on 'GROUP_PARAMETR'
ALTER TABLE GROUP_PARAMETR ADD CONSTRAINT
ГРУППА_ПАР_ГРУППА_ПАР_FK FOREIGN KEY
(ГРУППА_ПАР) REFERENCES GROUP_PARAMETR
(CODE)
/
PROMPT Creating Foreign Keys on 'TYPE_ECOLOGY_NUMBER'
ALTER TABLE TYPE_ECOLOGY_NUMBER ADD CONSTRAINT
ТІП_ЕВ_FK FOREIGN KEY
(ТІП_ЕВ) REFERENCES TYPE_ECOLOGY_NUMBER
(CODE)
/
PROMPT Creating Foreign Keys on 'ZAGRAZN_VV'
ALTER TABLE ZAGRAZN_VV ADD CONSTRAINT
ЗАГР_ВВ_СМЕСІ_FK FOREIGN KEY
(СМЕСІ_CODE) REFERENCES SMES
(CODE) ADD CONSTRAINT
ЗАГР_ВВ_ISO_FK FOREIGN KEY
(ISO_SHORTNAME) REFERENCES ISOTOPE
(SHORTNAME) ADD CONSTRAINT
ЗАГР_ВВ_SUBSTANCE_FK FOREIGN KEY
(SUBSTANCE_CODE) REFERENCES SUBSTANCE
(CODE)
/
PROMPT Creating Foreign Keys on 'ECOLOGY_PARAM'
ALTER TABLE ECOLOGY_PARAM ADD CONSTRAINT
PARAM_UNI1_FK FOREIGN KEY
(UNI1_UNITMEAS) REFERENCES UNITMEASURE
(UNITMEAS) ADD CONSTRAINT
PARAM_ЕКОЛОГ_FK FOREIGN KEY
(ЕКОЛОГ_CODE) REFERENCES ECOLOGY_NUMBER
(CODE) ADD CONSTRAINT
PARAM_ЗАГР_ВВ_FK FOREIGN KEY
(ЗАГР_ВВ_CODE) REFERENCES ZAGRAZN_VV
(CODE) ADD CONSTRAINT
PARAM_ФОРМА_FK FOREIGN KEY
(ФОРМА_CODE) REFERENCES FORMA_OTCHETNOSTI
(CODE) ADD CONSTRAINT
PARAM_ПЕРІОДІЧН_FK FOREIGN KEY
(ПЕРІОДІЧН_CODE) REFERENCES PERIOD
(CODE)
/
PROMPT Creating Foreign Keys on 'VALUE'
ALTER TABLE VALUE ADD CONSTRAINT
VALUE_ORG_FK FOREIGN KEY
(ORG_CODE) REFERENCES ORGANIZATION
(CODE) ADD CONSTRAINT
VALUE_ОТЧЕТНОСТЬ_FK FOREIGN KEY
(ОТЧЕТНОСТЬ_CODE) REFERENCES OTCHETNOST
(CODE)
/

Додаток 3. Приклад тексту програми.

//------------------------------------------------ ---------------------------
# Include <vcl.h>
# Pragma hdrstop
# Include "main.h"
# Include "basic.h"
# Include "unislct.h"
# Include "filter.h"
# Include "fieldsN.h"
# Include "fieldText.h"
# Include "fieldList.h"
# Include "fieldValue.h"
//------------------------------------------------ ---------------------------
# Pragma package (smart_init)
# Pragma link "tbltmpl"
# Pragma resource "*. dfm"
void __fastcall UploadMetaInfo (TformDescription * t_desc, AnsiString formname)
{
TADOQuery * mrT = new TADOQuery (NULL);
try
{
mrT-> Connection = frmMain-> cnncMetaInfo;
t_desc-> formname = formname;
if (SELECT (mrT, "select * from forms where name = '" + t_desc-> formname + "'"))
{
t_desc-> title = mrT-> FieldByName ("title") -> AsString;
t_desc-> edittitle = mrT-> FieldByName ("edittitle") -> AsString;
t_desc-> accepttitle = mrT-> FieldByName ("accepttitle") -> AsString;
t_desc-> table = mrT-> FieldByName ("table") -> AsString;
t_desc-> keyfield = mrT-> FieldByName ("keyfield") -> AsString;
t_desc-> namefield = mrT-> FieldByName ("namefield") -> AsString;
t_desc-> listfield = mrT-> FieldByName ("listfield") -> AsString;
t_desc-> shortnamefield = mrT-> FieldByName ("shortnamefield") -> AsString;
t_desc-> sortfield = mrT-> FieldByName ("sortfield") -> AsString;
t_desc-> sequencename = mrT-> FieldByName ("sequencename") -> AsString;
t_desc-> readonly = mrT-> FieldByName ("readonly") -> AsBoolean;
t_desc-> takefieldsfrom = mrT-> FieldByName ("takefieldsfrom") -> AsString;
t_desc-> type = mrT-> FieldByName ("type") -> AsString;
t_desc-> hideonaccept = mrT-> FieldByName ("hideonaccept") -> AsBoolean;
t_desc-> parentfield = mrT-> FieldByName ("parentfield") -> AsString;
} Else
{
throw Exception ("Помилка: Форма {" + t_desc-> formname + "} відсутній");
}
} __finally
{
delete mrT;
}
}
//------------------------------------------------ ---------------------------
__fastcall TfrmUniForm:: TfrmUniForm (TComponent * Owner, TMenuItem * itm, AnsiString formname)
: TForm (Owner)
{
this-> itm = itm;
uid = "";
link = false;
desc = new TformDescription ();
slv = NULL; lnk = NULL;
desc-> formname = formname;
form-> dsc = desc;
parentform = NULL;
if (itm) itm-> Enabled = false;
accept = false;
btnlst = new TList ();
fltlst = new TList ();
fldlst = new TList ();
UploadInfo ();
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: UploadInfo ()
{
UploadMetaInfo (desc, desc-> formname);
this-> Caption = desc-> title;
form-> editpanel-> Caption = desc-> edittitle;
form-> dbgBrowse-> Columns-> Items [0] -> FieldName = desc-> listfield;
form-> dbgBrowse-> Columns-> Items [0] -> Title-> Caption = "Назва";
if (desc-> readonly) {form-> tblBrowse-> ReadOnly = true;}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: ReorderFilters ()
{
for (int r = 0; r <fltlst-> Count; r + +)
{
TfrmFilter * fr = ((TfrmFilter *) ((TfltAddInfo *) fltlst-> Items [r]) -> pntr);
fr-> Align = alNone;
fr-> Visible = false;
}
for (int r = 0; r <fltlst-> Count; r + +)
{
TfrmFilter * fr = ((TfrmFilter *) ((TfltAddInfo *) fltlst-> Items [r]) -> pntr);
fr-> Visible = true;
fr-> Align = alTop;
}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: Execute ()
{
if (link)
{
form-> Go ();
/ / Запам'ятаємо мета-інформацію по полях
int cnt = form-> tblBrowse-> Fields-> Count;
TField ** flms = new TField * [cnt];
for (int i = 0; i <cnt; i + +)
{
TFieldType dtype = form-> tblBrowse-> Fields-> Fields [i] -> DataType;
if (dtype == ftInteger) flms [i] = new TIntegerField (this);
if (dtype == ftString) flms [i] = new TStringField (this);
if (dtype == ftFloat) flms [i] = new TFloatField (this);
if (dtype == ftDate) flms [i] = new TDateField (this);
if (dtype == ftDateTime) flms [i] = new TDateTimeField (this);
if (dtype == ftTime) flms [i] = new TTimeField (this);
flms [i] -> Required = form-> tblBrowse-> Fields-> Fields [i] -> Required;
flms [i] -> ReadOnly = form-> tblBrowse-> Fields-> Fields [i] -> ReadOnly;
flms [i] -> FieldName = form-> tblBrowse-> Fields-> Fields [i] -> FieldName;
flms [i] -> Size = form-> tblBrowse-> Fields-> Fields [i] -> Size;
flms [i] -> Tag = (int) dtype;
}
form-> tblBrowse-> Close ();
for (int i = 0; i <cnt; i + +) flms [i] -> DataSet = form-> tblBrowse;
/ / Додамо lookup-поле
TStringField * fld = new TStringField (form-> tblBrowse);
fld-> ReadOnly = true;
fld-> FieldName = desc-> listfield;
fld-> FieldKind = fkLookup;
AnsiString tmp;
tmp = lnk-> linktofield; StrRpl (tmp, ",", ";");
fld-> KeyFields = tmp;
tmp = slv-> keyfield; StrRpl (tmp, ",", ";");
fld-> LookupKeyFields = tmp;
fld-> LookupDataSet = form-> tblAdd;
fld-> LookupResultField = slv-> listfield;
fld-> Lookup = true;
if (form-> tblAdd-> Active)
fld-> Size = form-> tblAdd-> FieldByName (slv-> listfield) -> Size;
fld-> DataSet = form-> tblBrowse;
form-> dbgBrowse-> Columns-> Items [0] -> FieldName = fld-> FieldName;
form-> dbgBrowse-> Columns-> Items [0] -> Title-> Caption = "Назва";
}
AnsiString strw;
if (! accept | |! desc-> hideonaccept)
{
strw = "select * from buttons where parentform = '" + desc-> formname + "'";
if (! desc-> takefieldsfrom.IsEmpty ()) strw + = "or parentform = '" + desc-> takefieldsfrom + "'";
strw + = "order by sortorder desc";
if (SELECT (mqrA, strw))
{
do
{
TToolButton * btn = form-> AddLinkBtn (mqrA-> FieldByName ("title") -> AsString, CommonButtonClick);
TbtnAddInfo * inf = new TbtnAddInfo ();
inf-> childform = mqrA-> FieldByName ("childform") -> AsString;
inf-> childtitle = mqrA-> FieldByName ("childtitle") -> AsString;
inf-> linkform = mqrA-> FieldByName ("linkform") -> AsString;
inf-> linktofield = mqrA-> FieldByName ("linktofield") -> AsString;
inf-> linkfromfield = mqrA-> FieldByName ("linkfromfield") -> AsString;
inf-> type = mqrA-> FieldByName ("type") -> AsString;
inf-> sql = mqrA-> FieldByName ("sql") -> AsString;
btn-> Tag = btnlst-> Add (inf);
mqrA-> Next ();
} While (! MqrA-> Eof);
}
}
strw = "select * from filters where parentform = '" + desc-> formname + "'";
if (! desc-> takefieldsfrom.IsEmpty ()) strw + = "or parentform = '" + desc-> takefieldsfrom + "'";
strw + = "order by sortorder desc";
if (SELECT (mqrA, strw))
{
do
{
TfrmFilter * flt = form-> AddFilter (mqrA-> FieldByName ("title") -> AsString, CommonFilterChange, CommonFilterClear);
TfltAddInfo * inf = new TfltAddInfo ();
inf-> childform = mqrA-> FieldByName ("childform") -> AsString;
inf-> filtersql = mqrA-> FieldByName ("filtersql") -> AsString;
inf-> sql = mqrA-> FieldByName ("sql") -> AsString;
inf-> type = mqrA-> FieldByName ("type") -> AsString;
inf-> name = mqrA-> FieldByName ("name") -> AsString;
inf-> code = mqrA-> FieldByName ("code") -> AsInteger;
inf-> logic = mqrA-> FieldByName ("logic") -> AsInteger;
inf-> pntr = flt;
inf-> retid = "";
if (inf-> logic == 1) form-> FilterBy ("a" + IntToStr (inf-> code), "(1 = 0)");
if (lnk)
if (inf-> childform == lnk-> parentform)
{
inf-> retid = lnk-> linkvalue;
inf-> rettitle = lnk-> linktitle;
flt-> edt-> Text = lnk-> linktitle;
/ / У uid повертається вибраний код
AnsiString str = inf-> filtersql;
if (retid.IsEmpty ()) str = "";
else StrRpl (str, "% 1", lnk-> linkvalue);
form-> FilterBy ("a" + IntToStr (inf-> code), str);
flt-> btn-> Enabled = false;
flt-> btnclr-> Enabled = false;
flt-> Enabled = false;
}
flt-> Tag = fltlst-> Add (inf);
mqrA-> Next ();
} While (! MqrA-> Eof);
}
if (! accept | |! desc-> hideonaccept)
{
/ / Підвантаження полів БД з наявної метаінформації
strw = "select * from fields where parentform = '" + desc-> formname + "'";
if (! desc-> takefieldsfrom.IsEmpty ()) strw + = "or parentform = '" + desc-> takefieldsfrom + "'";
strw + = "order by sortorder";
if (SELECT (mqrA, strw))
{
do
{
/ / Відразу створимо всі форми полів, инициализируем їх, а також залишимо ВРЮ семантику в цих формах
TfieldAddInfo * inf = new TfieldAddInfo ();
inf-> fieldname = mqrA-> FieldByName ("fieldname") -> AsString;
inf-> title = mqrA-> FieldByName ("title") -> AsString;
inf-> type = mqrA-> FieldByName ("type") -> AsString;
inf-> childform = mqrA-> FieldByName ("childform") -> AsString;
inf-> sql = mqrA-> FieldByName ("sql") -> AsString;
inf-> ReadOnly = mqrA-> FieldByName ("readonly") -> AsBoolean;
inf-> isqbe = mqrA-> FieldByName ("isqbe") -> AsBoolean;
inf-> value = mqrA-> FieldByName ("value") -> AsString.Trim ();
inf-> code = mqrA-> FieldByName ("code") -> AsInteger;
if (inf-> type == (AnsiString) "T")
{
TfrmeFT * fr = new TfrmeFT (this, form-> dsrcBrowse, inf);
fr-> Parent = form-> editarea; fr-> Name = ""; fr-> Align = alTop; inf-> form = fr;
}
if ((inf-> type == (AnsiString) "I") | | (inf-> type == (AnsiString) "S"))
{
TfrmeFV * fr = new TfrmeFV (this, form-> dsrcBrowse, inf);
fr-> Parent = form-> editarea; fr-> Name = ""; fr-> Align = alTop; inf-> form = fr;
}
if (inf-> type == (AnsiString) "C")
{
TfrmeFieldsN * fr = new TfrmeFieldsN (this, form-> dsrcBrowse, inf);
fr-> Parent = form-> editarea; fr-> Name = ""; fr-> Align = alTop; inf-> form = fr;
}
if (inf-> type == (AnsiString) "F") / / поле інтерпетіруется на етапі підстановки при New,
{/ / А також для фільтрації (тобто використовується для
/ / Реалізації обмежених наборів)
form-> FilterBy ("flt_" + inf-> fieldname, inf-> sql);
}
if (inf-> type == (AnsiString) "L")
{
TfrmeList * fr = new TfrmeList (this, form-> dsrcBrowse, inf);
if (SELECT (mqrB, "select * from fieldelements where parentfield =" +
mqrA-> FieldByName ("code") -> AsString + "order by sortorder"))
{
do
{
fr-> AddElement (mqrB-> FieldByName ("title") -> AsString, mqrB-> FieldByName ("value") -> AsString);
mqrB-> Next ();
} While (! MqrB-> Eof);
fr-> Go ();
mqrB-> Close ();
}
fr-> Parent = form-> editarea; fr-> Name = ""; fr-> Align = alTop; inf-> form = fr;
}
fldlst-> Add (inf);
mqrA-> Next ();
} While (! MqrA-> Eof);
}
mqrA-> Close ();
}
bool f = ((desc-> type == (AnsiString) "T") & & (! desc-> parentfield.Trim (). IsEmpty ()));
form-> spbTree-> Visible = f;
form-> dbnPlus-> Visible = f;
form-> SetTreeMode (f);
TuneFilters ();
form-> Go ();
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: TuneFromBtn (TbtnAddInfo * lnkinfo, AnsiString linkvalue, AnsiString linktitle, AnsiString parentform)
{
if (! lnk) lnk = new TlnkFromBtn ();
form-> lnkb = lnk;
lnk-> linkform = lnkinfo-> linkform;
lnk-> linktofield = lnkinfo-> linktofield;
lnk-> linkfromfield = lnkinfo-> linkfromfield;
lnk-> linkvalue = linkvalue;
lnk-> linktitle = linktitle;
lnk-> parentform = parentform;
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: TuneForLink ()
{
link = true;
slv = new TformDescription ();
UploadMetaInfo (slv, lnk-> linkform);
form-> slv = slv;
form-> link = link;
desc-> listfield = "add_lnkform_nam";
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: InitTblAdd ()
{
/ / Ініціалізація tblAdd
AnsiString str;
str = "select" + slv-> listfield + "," + slv-> keyfield + "from" + slv-> table;
form-> tblAdd-> SQL-> Clear ();
form-> tblAdd-> SQL-> Add (str);
try
{
form-> tblAdd-> Close ();
form-> tblAdd-> Open ();
} Catch (EOracleError & E)
{
ShowMessage (E. Message + ", запит: '" + str + "'");
return;
}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: TuneFilters ()
{
if (! parentform) return;
TList * patfrm_fltlst = ((TfrmUniForm *) parentform) -> fltlst;
TList * patfrm_fldlst = ((TfrmUniForm *) parentform) -> fldlst;
if (patfrm_fltlst)
{
for (int r = 0; r <fltlst-> Count; r + +)
for (int i = 0; i <patfrm_fltlst-> Count; i + +)
{
TfltAddInfo * tm_r = ((TfltAddInfo *) (fltlst-> Items [r]));
TfltAddInfo * tm_i = ((TfltAddInfo *) (patfrm_fltlst-> Items [i]));
if (tm_r-> name == tm_i-> name)
{
tm_r-> retid = tm_i-> retid;
tm_r-> rettitle = tm_i-> rettitle;
TfrmFilter * src = ((TfrmFilter *) tm_r-> pntr);
src-> edt-> Text = tm_i-> rettitle;
/ / У uid повертається вибраний код
AnsiString str = tm_r-> filtersql;
if (retid.IsEmpty ()) str = "";
else StrRpl (str, "% 1", retid);
form-> FilterBy ("a" + IntToStr (tm_r-> code), str);
}
}
}
if (accept & & patfrm_fldlst)
{
TfrmUniForm * uni = ((TfrmUniForm *) parentform);
if (! uni-> form-> tblBrowse-> IsEmpty ())
{
for (int r = 0; r <patfrm_fldlst-> Count; r + +)
for (int i = 0; i <fltlst-> Count; i + +)
{
TfieldAddInfo * fl = ((TfieldAddInfo *) patfrm_fldlst-> Items [r]);
TfrmeFieldsN * tm_i = ((TfrmeFieldsN *) (fl-> form));
TfltAddInfo * tm_r = ((TfltAddInfo *) (fltlst-> Items [i]));
if ((fl-> type == (AnsiString) "C") & & (fl-> fieldname == tm_r-> name))
if (! uni-> form-> tblBrowse-> FieldByName (fl-> fieldname) -> IsNull)
{
tm_r-> retid = uni-> form-> tblBrowse-> FieldByName (fl-> fieldname) -> AsString;
tm_r-> rettitle = tm_i-> name-> Text;
TfrmFilter * src = ((TfrmFilter *) tm_r-> pntr);
src-> edt-> Text = tm_i-> name-> Text;
/ / У uid повертається вибраний код
AnsiString str = tm_r-> filtersql;
if (retid.IsEmpty ()) str = "";
else StrRpl (str, "% 1", retid);
form-> FilterBy ("a" + IntToStr (tm_r-> code), str);
}
}
}
}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: CommonButtonClick (TObject * Sender)
{
TbtnAddInfo * tm = ((TbtnAddInfo *) btnlst-> Items [((TToolButton *) Sender) -> Tag]);
if (form-> tblBrowse-> IsEmpty ()) return;
/ / Обробка налаштування дочірньої форми після натискання кнопки контекстного переходу
AnsiString _title = tm-> childtitle, _filter = tm-> sql;
UseReplaces (_title, _filter);
bool s = (tm-> type == (AnsiString) "S"), l = (tm-> type == (AnsiString) "L");
if (! s & &! l) return;
try
{
TfrmUniForm * frm = new TfrmUniForm (frmMain, NULL, tm-> childform);
frm-> parentform = this;
if (! _filter.Trim (). IsEmpty ()) frm-> form-> FilterBy ("parent", _filter);
if (! _title.Trim (). IsEmpty ()) frm-> Caption = _title;
if (s | | l) frm-> TuneFromBtn (tm, form-> tblBrowse-> FieldByName (desc-> keyfield) -> AsString, form-> tblBrowse-> FieldByName (desc-> listfield) -> AsString, desc- > formname);
if (l) frm-> TuneForLink ();
if (l) frm-> InitTblAdd ();
frm-> Execute ();
frm-> FormStyle = fsMDIChild;
frm-> Show ();
} Catch (Exception & E)
{
ShowMessage (E. Message);
}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: CommonFilterChange (TObject * Sender)
{
/ / Обробка виклику дочірньої форми після натискання кнопки фільтра
TfrmFilter * src = ((TfrmFilter *) Sender);
TfltAddInfo * tm = ((TfltAddInfo *) fltlst-> Items [src-> Tag]);
int i = CallOtherForm (tm-> childform, "", tm-> sql, true, true);
if (i == mrOk)
{
tm-> retid = retid;
tm-> rettitle = rettitle;
src-> edt-> Text = rettitle;
/ / У uid повертається вибраний код
AnsiString str = tm-> filtersql;
if (retid.IsEmpty ()) {CommonFilterClear (Sender); return;}
else StrRpl (str, "% 1", retid);
form-> FilterBy ("a" + IntToStr (tm-> code), str);
form-> Go ();
}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: CommonFilterClear (TObject * Sender)
{
/ / Обробка виклику дочірньої форми після натискання кнопки фільтра
TfrmFilter * src = ((TfrmFilter *) Sender);
TfltAddInfo * tm = ((TfltAddInfo *) fltlst-> Items [src-> Tag]);
tm-> retid = "";
src-> edt-> Text = "";
AnsiString str = "";
if (tm-> logic == 1) str = "(1 = 0)";
form-> FilterBy ("a" + IntToStr (tm-> code), str);
form-> Go ();
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: CommonFltSlctChange (TObject * Sender)
{
/ / Обробка виклику дочірньої форми за вибором зі списку
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: FormClose (TObject * Sender,
TCloseAction & Action)
{
Action = caFree;
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: formbtbtnCancelClick (TObject * Sender)
{
Close ();
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: formbtbtnOKClick (TObject * Sender)
{
if (! form-> tblBrowse-> IsEmpty ())
{
this-> uid = form-> tblBrowse-> FieldByName (desc-> keyfield) -> AsString;
this-> rettitle = form-> tblBrowse-> FieldByName (desc-> listfield) -> AsString;
this-> ModalResult = mrOk;
}
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: TuneForAccept ()
{
if (form) form-> TuneForAccept ();
accept = true;
if (! desc-> accepttitle.IsEmpty ()) this-> Caption = desc-> accepttitle;
if (desc-> hideonaccept) this-> Width = 500;
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: FormDestroy (TObject * Sender)
{
if (desc) delete desc;
if (slv) delete slv;
if (lnk) delete lnk;
for (int r = 0; r <btnlst-> Count; r + +)
delete ((TbtnAddInfo *) (btnlst-> Items [r]));
delete btnlst;
for (int r = 0; r <fltlst-> Count; r + +)
delete ((TfltAddInfo *) (fltlst-> Items [r]));
delete fltlst;
for (int r = 0; r <fldlst-> Count; r + +)
delete ((TfieldAddInfo *) (fldlst-> Items [r]));
delete fldlst;
if (itm) itm-> Enabled = true;
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: UseReplaces (AnsiString & title, AnsiString & filter)
{
if (! form-> tblBrowse-> IsEmpty () & &! form-> tblBrowse-> FieldByName (desc-> keyfield) -> IsNull)
{
StrRpl (title, "% 1", form-> tblBrowse-> FieldByName (desc-> listfield) -> AsString);
StrRpl (filter, "% 1", form-> tblBrowse-> FieldByName (desc-> keyfield) -> AsString);
}
StrRpl (filter, "<<", "|%%");
StrRpl (filter, ">>", "%%|");
/ / Врахуємо підстановки полів виду <field>, а також їх можливі NULL
filter = TranslateString (filter, FieldValue);
StrRpl (filter, "|%%", "<");
StrRpl (filter, "%%|", ">");
/ / Врахуємо (посилання на інші фільтри) подстанокі виду <<flt_value>>, а також їх можливі NULL
filter = TranslateString (filter, FilterValue);
StrRpl (filter, "'NULL'", "NULL");
}
//------------------------------------------------ ---------------------------
int __fastcall TfrmUniForm:: CallOtherForm (AnsiString _form, AnsiString _title, AnsiString _filter,
bool _modal, bool _accept)
{
UseReplaces (_title, _filter);
int res = 0;
try
{
TfrmUniForm * frm = new TfrmUniForm (((_modal)? (TForm *) Owner: (TForm *) frmMain), NULL, _form);
frm-> parentform = this;
if (! _filter.Trim (). IsEmpty ()) frm-> form-> FilterBy ("parent", _filter);
if (_accept) {frm-> TuneForAccept (); frm-> parentform = this;}
if (! _title.Trim (). IsEmpty ()) frm-> Caption = _title;
frm-> Execute ();
if (_modal)
{
frm-> FormStyle = fsNormal;
res = frm-> ShowModal ();
retid = frm-> uid;
rettitle = frm-> rettitle;

} Else
{
frm-> FormStyle = fsMDIChild;
frm-> Show ();
}
} Catch (Exception & E)
{
ShowMessage (E. Message);
}
return res;
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: formdbgBrowseDblClick (TObject * Sender)
{
if (accept & & form-> btbtnOK-> Visible & & form-> pnlLCOK-> Visible)
formbtbtnOKClick (this);
}
//------------------------------------------------ ---------------------------
AnsiString __fastcall TfrmUniForm:: FieldValue (AnsiString valname)
{
AnsiString tmp;
if (! form-> tblBrowse-> FieldByName (valname.Trim ())-> IsNull)
tmp = form-> tblBrowse-> FieldByName (valname.Trim ())-> AsString;
else
tmp = "NULL";
return tmp;
}
//------------------------------------------------ ---------------------------
AnsiString __fastcall TfrmUniForm:: FilterValue (AnsiString valname)
{
AnsiString tmp;
/ / З'ясуємо поточне значення зазначеного фільтру
for (int r = 0; r <fltlst-> Count; r + +)
{
TfltAddInfo * tm = ((TfltAddInfo *) (fltlst-> Items [r]));
if (tm-> name == valname.Trim ())
{
if (! tm-> retid.IsEmpty ())
tmp = tm-> retid;
else
tmp = "NULL";
}
}
return tmp;
}
//------------------------------------------------ ---------------------------
/ / Ф-ція розбору рядка
AnsiString __fastcall TfrmUniForm:: TranslateString (AnsiString str, TGetValueEvent evt)
{
AnsiString tmp, filter, _filter = str;
tmp = "";
filter = "";
bool b = false;
for (int r = 1; r <= _filter.Length (); r + +)
{
if (_filter [r] == '<' & &! b) {b = true; tmp = "";}
else
if (_filter [r] == '>' & & b & & (! tmp.Trim (). IsEmpty ())) {b = false; filter + = evt (tmp);}
else
if (_filter [r]! = '<' & & b) {tmp + = _filter [r];}
else
if (! b) {filter + = _filter [r];}
}
return filter;
}
//------------------------------------------------ ---------------------------
void __fastcall TfrmUniForm:: FormShow (TObject * Sender)
{
if (accept) ReorderFilters ();
}
//------------------------------------------------ ---------------------------
Додати в блог або на сайт

Цей текст може містити помилки.

Екологія та охорона природи | Курсова
528.5кб. | скачати


Схожі роботи:
Екологічний моніторинг РФ
Екологічний моніторинг
Соціально екологічний моніторинг
Програмне забезпечення ПК Cистемне програмне забезпечення
Екологічний моніторинг і система екологічної інформації
Концепція біопродуктивності екосистем екологічний моніторинг та фінансування екологічних програм
Розробка елективного курсу на тему Екологічний моніторинг водних об`єктів 2
Розробка елективного курсу на тему Екологічний моніторинг водних об`єктів
Розробка елективного курсу на тему Екологічний моніторинг водних об`єктів 2
© Усі права захищені
написати до нас