RP REPORTLIST
Материал из GedeminWiki
CREATE TABLE rp_reportlist ( id dintkey, /* идентификатор */ name dname, /* наименование отчета */ description dtext180, /* комментарий */ frqrefresh dinteger DEFAULT 1, /* частота обновления в днях */ reportgroupkey dintkey, paramformulakey dforeignkey, mainformulakey dintkey, eventformulakey dforeignkey, templatekey dforeignkey, IsRebuild dboolean, afull dsecurity, achag dsecurity, aview dsecurity, serverkey dforeignkey, islocalexecute dboolean DEFAULT 0, preview dboolean DEFAULT 1, modalpreview dboolean_notnull DEFAULT 0, globalreportkey dinteger, /* Глобальный идентификатор отчета */ /* Должен задаваться программистом */ editiondate deditiondate, /* Дата последнего редактирования */ editorkey dintkey, /* Ссылка на пользователя, который редактировал запись*/ displayinmenu dboolean DEFAULT 1, /* Отображать в меню формы */ reserved dinteger, folderkey dforeignkey ); ALTER TABLE rp_reportlist ADD CONSTRAINT rp_pk_reportlist PRIMARY KEY (id); ALTER TABLE rp_reportlist ADD CONSTRAINT rp_fk_reportlist_groupkey FOREIGN KEY (reportgroupkey) REFERENCES rp_reportgroup(id) ON UPDATE CASCADE; CREATE UNIQUE INDEX rp_x_reportlist_namerpgroup ON rp_reportlist(name, reportgroupkey); /* Для ниже перечисленных констрейнов НЕЛЬЗЯ СТАВИТЬ DELETE CASCADE */ ALTER TABLE rp_reportlist ADD CONSTRAINT rp_fk_reportlist_paramfkey FOREIGN KEY (paramformulakey) REFERENCES gd_function(id) ON UPDATE CASCADE; /* Для ниже перечисленных констрейнов НЕЛЬЗЯ СТАВИТЬ DELETE CASCADE */ ALTER TABLE rp_reportlist ADD CONSTRAINT rp_fk_reportlist_mainfkey FOREIGN KEY (mainformulakey) REFERENCES gd_function(id) ON UPDATE CASCADE; /* Для ниже перечисленных констрейнов НЕЛЬЗЯ СТАВИТЬ DELETE CASCADE */ ALTER TABLE rp_reportlist ADD CONSTRAINT rp_fk_reportlist_eventfkey FOREIGN KEY (eventformulakey) REFERENCES gd_function(id) ON UPDATE CASCADE; /* Для ниже перечисленных констрейнов НЕЛЬЗЯ СТАВИТЬ DELETE CASCADE */ ALTER TABLE rp_reportlist ADD CONSTRAINT rp_fk_reportlist_templatefkey FOREIGN KEY (templatekey) REFERENCES rp_reporttemplate(id) ON UPDATE CASCADE; ALTER TABLE rp_reportlist ADD CONSTRAINT rp_fk_reportlist_editorkey FOREIGN KEY(editorkey) REFERENCES gd_people(contactkey) ON UPDATE CASCADE; ALTER TABLE RP_REPORTLIST ADD CONSTRAINT FK_RP_REPORTLIST_FOLDERKEY FOREIGN KEY (FOLDERKEY) REFERENCES GD_COMMAND (ID) ON DELETE SET NULL ON UPDATE CASCADE; COMMIT; SET TERM ^ ; CREATE TRIGGER rp_before_insert_reportlist FOR rp_reportlist BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.id IS NULL) THEN NEW.id = GEN_ID(gd_g_unique, 1) + GEN_ID(gd_g_offset, 0); IF (NEW.islocalexecute IS NULL) THEN NEW.islocalexecute = 0; END ^ CREATE TRIGGER rp_bi_reportlist5 FOR rp_reportlist BEFORE INSERT POSITION 5 AS BEGIN IF (NEW.editorkey IS NULL) THEN NEW.editorkey = 650002; IF (NEW.editiondate IS NULL) THEN NEW.editiondate = CURRENT_TIMESTAMP; END ^ CREATE TRIGGER rp_bu_reportlist5 FOR rp_reportlist BEFORE UPDATE POSITION 5 AS BEGIN IF (NEW.editorkey IS NULL) THEN NEW.editorkey = 650002; IF (NEW.editiondate IS NULL) THEN NEW.editiondate = CURRENT_TIMESTAMP; END ^ SET TERM ; ^