RP REPORTLIST
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
|||
| (не показана 1 промежуточная версия 1 участника) | |||
| Строка 1: | Строка 1: | ||
| − | |||
CREATE TABLE rp_reportlist | CREATE TABLE rp_reportlist | ||
( | ( | ||
| Строка 18: | Строка 17: | ||
islocalexecute dboolean DEFAULT 0, | islocalexecute dboolean DEFAULT 0, | ||
preview dboolean DEFAULT 1, | preview dboolean DEFAULT 1, | ||
| + | modalpreview dboolean_notnull DEFAULT 0, | ||
globalreportkey dinteger, /* Глобальный идентификатор отчета */ | globalreportkey dinteger, /* Глобальный идентификатор отчета */ | ||
/* Должен задаваться программистом */ | /* Должен задаваться программистом */ | ||
Текущая версия на 16:21, 13 января 2012
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 ; ^