- CREATE OR ALTER PROCEDURE S$VP_OBJ(
- ROOT INTEGER,
- LAYER SMALLINT,
- CON VARCHAR(255),
- ID INTEGER)
- RETURNS (
- R_KEY INTEGER,
- R_PARENT INTEGER,
- R_NAME VARCHAR(60),
- P_NAME VARCHAR(60),
- CAPTION VARCHAR(60),
- CAPTION_EX VARCHAR(60),
- R_GROUP INTEGER,
- R_TYPE VARCHAR(20),
- REF_OBJ INTEGER,
- R_SUBTYPE VARCHAR(20),
- HIDED SMALLINT,
- ISREF SMALLINT,
- HINTS VARCHAR(120),
- CUT_SRC VARCHAR(60),
- PASTE_SRC VARCHAR(60),
- V_ORDER INTEGER,
- IMGIDX INTEGER)
- AS
- DECLARE VARIABLE C INTEGER;
- DECLARE VARIABLE S VARCHAR(20);
- BEGIN
- FOR SELECT R_KEY, R_NAME, CAPTION, R_GROUP, R_TYPE, R_PARENT , R_SUBTYPE,
- REF_OBJ, HIDED, CAPTION_EX, V_ORDER, P_NAME, LAYER, HINTS
- FROM S_OBJ WHERE (:ID IS NOT NULL AND R_KEY = :ID) OR
- (:ID IS NULL) AND ((R_GROUP=:ROOT) AND (R_GROUP<>R_KEY) AND
- ((LAYER = :LAYER AND :CON IS NULL) OR
- (:CON IS NOT NULL AND REF_OBJ IS NULL AND N_STRIN(R_TYPE,:CON)>0)))
- ORDER BY LAYER,V_ORDER,CAPTION
- INTO :R_KEY, :R_NAME,:CAPTION,:R_GROUP, :R_TYPE, :R_PARENT, :R_SUBTYPE,
- :REF_OBJ, :HIDED, :CAPTION_EX, :V_ORDER, :P_NAME, :C , :HINTS
- DO BEGIN
- IF (ID IS NULL) THEN EXECUTE PROCEDURE S$SP_SYNCOBJ(:R_KEY,:R_TYPE); /* */
- /* GET IMAGEINDEX */
- IF (REF_OBJ IS NOT NULL) THEN BEGIN
- ISREF = 1; IMGIDX=12;
- IF (R_TYPE IN ('FIELDGRP','FIELD.ORIGRP')) THEN IMGIDX = 13;
- END ELSE BEGIN
- ISREF = 0;
- IF (R_TYPE = 'HOMEPAGE') THEN IMGIDX = 7;
- ELSE IF (R_TYPE = 'BUTTONPAGE') THEN IMGIDX = 8;
- ELSE IF (R_TYPE = 'DATA') THEN IMGIDX = 4;
- ELSE IF (R_TYPE IN ('TOOLBAR','DATA.PAGE')) THEN IMGIDX = 9;
- ELSE IF (R_TYPE IN ('FIELD','VFIELD','IFEILD','TRIGGER','UDF','STOREPROC','VIEWPROC')) THEN IMGIDX=0;
- ELSE IF (R_TYPE IN ('FILTER','TABLE','VPFIELD','EXCEPTION','BUTTON')) THEN IMGIDX=0;
- ELSE IF (R_TYPE IN ('FIELD.ORIGRP','FIELDGRP')) THEN IMGIDX = 5;
- ELSE IF (R_TYPE IN ('UDF.VROOT','EX.VROOT')) THEN IMGIDX=1;
- ELSE IF (R_TYPE IN ('FIELDS','VFIELDS','FIELDGRPS','FILTER.OBJGRP','TRIGGERS','DATAS')) THEN IMGIDX=3;
- ELSE IF (R_TYPE LIKE '%ROOT') THEN IMGIDX=3;
- ELSE IMGIDX = 1;
- END
- /* CUT&PASTESROURCE */
- SELECT N_STRADD(NEWOBJ,NEWGRP,','),PASTE_SRC FROM S_OP WHERE R_TYPE = :R_TYPE INTO :CUT_SRC,:PASTE_SRC;
- SUSPEND;
- IF (ID IS NULL) THEN
- FOR SELECT R_KEY, R_NAME, CAPTION, R_GROUP, R_TYPE, R_PARENT, IMGIDX ,R_SUBTYPE,
- REF_OBJ, HIDED, CAPTION_EX, V_ORDER, P_NAME, ISREF, CUT_SRC, PASTE_SRC, HINTS
- FROM S$VP_OBJ(:R_KEY,:LAYER,:CON,NULL)
- INTO :R_KEY, :R_NAME, :CAPTION, :R_GROUP, :R_TYPE, :R_PARENT, :IMGIDX, :R_SUBTYPE,
- :REF_OBJ, :HIDED, :CAPTION_EX, :V_ORDER, :P_NAME, :ISREF, :CUT_SRC, :PASTE_SRC, :HINTS
- DO SUSPEND;
- END
- END
S$VP_OBJ
最新推荐文章于 2022-04-07 14:34:54 发布