RP REPORTLIST
Материал из GedeminWiki
Версия от 13:46, 27 апреля 2007; 193.232.248.176 (обсуждение)
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,
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 ; ^