RP REPORTTEMPLATE
Материал из GedeminWiki
CREATE TABLE rp_reporttemplate ( id dintkey, name dname, description dtext180, templatedata dreporttemplate, templatetype dtemplatetype, afull dsecurity, achag dsecurity, aview dsecurity, editiondate deditiondate, /* Дата последнего редактирования */ editorkey dintkey, /* Ссылка на пользователя, который редактировал запись*/ reserved dinteger ); ALTER TABLE rp_reporttemplate ADD CONSTRAINT rp_pk_reporttemplate PRIMARY KEY (id); COMMIT; CREATE EXCEPTION rp_e_invalidreporttemplate 'Unknown template type'; CREATE UNIQUE INDEX rp_x_reporttemplate_name ON rp_reporttemplate /*COMPUTED BY (UPPER(name));*/ (name); ALTER TABLE rp_reporttemplate ADD CONSTRAINT rp_fk_reporttemplate_editorkey FOREIGN KEY(editorkey) REFERENCES gd_people(contactkey) ON UPDATE CASCADE; SET TERM ^ ; CREATE TRIGGER rp_bi_reporttemplate FOR rp_reporttemplate 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); NEW.templatetype = UPPER(NEW.templatetype); IF ((NEW.templatetype <> 'RTF') AND (NEW.templatetype <> 'FR') AND (NEW.templatetype <> 'XFR') AND (NEW.templatetype <> 'GRD')) THEN EXCEPTION rp_e_invalidreporttemplate; END ^ CREATE TRIGGER rp_bi_reporttemplate5 FOR rp_reporttemplate 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_reporttemplate5 FOR rp_reporttemplate 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 ; ^