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();

}

//---------------------------------------------------------------------------


Информация о работе «Программное обеспечение базы данный "Экологический мониторинг"»
Раздел: Экология
Количество знаков с пробелами: 81686
Количество таблиц: 17
Количество изображений: 1

Похожие работы

Скачать
51399
0
3

... , и операторы на судне фиксируют техническое состояние трубопровода (места провисания, нарушения гидроизоляции, состояние протекторов электрохимической защиты, состояние обрастания и т.д.). Подсистема спутникового мониторинга нефтяных загрязнений в первую очередь должна опираться на радиолокационные спутники. Она может обеспечить: - обнаружение нефтяных пятен и источников их происхождения на ...

Скачать
36516
1
0

... , кроме Федерального закона «Об охране окружающей среды», имеются во всех природоресурсных и иных нормативных правовых актах. 2. Законодательство Республики Башкортостан в области экологического мониторинга Работы по созданию системы экологического мониторинга Республики Башкортостан были начаты в 1993 году, после выхода постановления Совета Министров – Правительства РФ от 24.11.1993 г. ...

Скачать
19004
0
0

... зрения, при выборе ГИС для региональной экоинформационной системы следует отдать предпочтение комплексному подходу. Центральный сервер региональной экоинформационной системы неизбежно должен иметь высокопроизводительное оборудование и соответствующее программное обеспечение. Оптимальным решением в условиях современной России можно считать экоинформационный комплекс НИЦЭБ РАН (директор проекта - ...

Скачать
38836
0
0

... под угрозой исчезновения, либо уже исчезнувших, более 200 видов растений и лишайников. Издана книга «Земля, на которой мы живем. Природа и природопользование Омского Прииртышья». Глава 2. Экологические проблемы Омской области   §1. Основные экологические проблемы Омской области Наши предки поступили очень мудро, дальновидно, основав город на двух голубых артериях. Но две реки - а это 2 ...

0 комментариев


Наверх