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 ; ^
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты