S$VP_OBJ

  1. CREATE OR ALTER PROCEDURE S$VP_OBJ(
  2.     ROOT INTEGER,
  3.     LAYER SMALLINT,
  4.     CON VARCHAR(255),
  5.     ID INTEGER)
  6. RETURNS (
  7.     R_KEY INTEGER,
  8.     R_PARENT INTEGER,
  9.     R_NAME VARCHAR(60),
  10.     P_NAME VARCHAR(60),
  11.     CAPTION VARCHAR(60),
  12.     CAPTION_EX VARCHAR(60),
  13.     R_GROUP INTEGER,
  14.     R_TYPE VARCHAR(20),
  15.     REF_OBJ INTEGER,
  16.     R_SUBTYPE VARCHAR(20),
  17.     HIDED SMALLINT,
  18.     ISREF SMALLINT,
  19.     HINTS VARCHAR(120),
  20.     CUT_SRC VARCHAR(60),
  21.     PASTE_SRC VARCHAR(60),
  22.     V_ORDER INTEGER,
  23.     IMGIDX INTEGER)
  24. AS
  25. DECLARE VARIABLE C INTEGER;
  26.   DECLARE VARIABLE S VARCHAR(20);
  27. BEGIN
  28.   FOR SELECT R_KEY, R_NAME, CAPTION, R_GROUP, R_TYPE, R_PARENT , R_SUBTYPE,
  29.       REF_OBJ, HIDED, CAPTION_EX, V_ORDER, P_NAME, LAYER, HINTS
  30.     FROM S_OBJ  WHERE (:ID IS NOT NULL AND R_KEY = :ID) OR
  31.       (:ID IS NULL) AND ((R_GROUP=:ROOT) AND (R_GROUP<>R_KEY) AND
  32.       ((LAYER = :LAYER AND :CON IS NULL) OR
  33.       (:CON IS NOT NULL AND REF_OBJ IS NULL AND N_STRIN(R_TYPE,:CON)>0)))
  34.     ORDER BY LAYER,V_ORDER,CAPTION
  35.     INTO :R_KEY, :R_NAME,:CAPTION,:R_GROUP, :R_TYPE, :R_PARENT, :R_SUBTYPE,
  36.       :REF_OBJ, :HIDED, :CAPTION_EX, :V_ORDER, :P_NAME, :C , :HINTS
  37.   DO BEGIN
  38.     IF (ID IS NULL) THEN EXECUTE PROCEDURE S$SP_SYNCOBJ(:R_KEY,:R_TYPE); /* */
  39.     /* GET IMAGEINDEX */
  40.     IF (REF_OBJ IS NOT NULL) THEN BEGIN
  41.       ISREF = 1; IMGIDX=12;
  42.       IF (R_TYPE IN ('FIELDGRP','FIELD.ORIGRP')) THEN IMGIDX = 13;
  43.     END ELSE BEGIN
  44.       ISREF = 0;
  45.       IF (R_TYPE = 'HOMEPAGE') THEN IMGIDX = 7;
  46.         ELSE IF (R_TYPE = 'BUTTONPAGE') THEN IMGIDX = 8;
  47.         ELSE IF (R_TYPE = 'DATA') THEN IMGIDX = 4;
  48.         ELSE IF (R_TYPE IN ('TOOLBAR','DATA.PAGE')) THEN IMGIDX = 9;
  49.         ELSE IF (R_TYPE IN ('FIELD','VFIELD','IFEILD','TRIGGER','UDF','STOREPROC','VIEWPROC')) THEN IMGIDX=0;
  50.         ELSE IF (R_TYPE IN ('FILTER','TABLE','VPFIELD','EXCEPTION','BUTTON')) THEN IMGIDX=0;
  51.         ELSE IF (R_TYPE IN ('FIELD.ORIGRP','FIELDGRP')) THEN IMGIDX = 5;
  52.         ELSE IF (R_TYPE IN ('UDF.VROOT','EX.VROOT')) THEN IMGIDX=1;
  53.         ELSE IF (R_TYPE IN ('FIELDS','VFIELDS','FIELDGRPS','FILTER.OBJGRP','TRIGGERS','DATAS')) THEN IMGIDX=3;
  54.         ELSE IF (R_TYPE LIKE '%ROOT') THEN IMGIDX=3;
  55.         ELSE IMGIDX = 1;
  56.     END
  57.     /* CUT&PASTESROURCE */
  58.     SELECT N_STRADD(NEWOBJ,NEWGRP,','),PASTE_SRC FROM S_OP WHERE R_TYPE = :R_TYPE INTO :CUT_SRC,:PASTE_SRC;
  59.     SUSPEND;
  60.     IF (ID IS NULL) THEN
  61.       FOR SELECT R_KEY, R_NAME, CAPTION, R_GROUP, R_TYPE, R_PARENT, IMGIDX ,R_SUBTYPE,
  62.           REF_OBJ, HIDED, CAPTION_EX, V_ORDER, P_NAME, ISREF, CUT_SRC, PASTE_SRC, HINTS
  63.         FROM S$VP_OBJ(:R_KEY,:LAYER,:CON,NULL)
  64.         INTO :R_KEY, :R_NAME, :CAPTION, :R_GROUP, :R_TYPE, :R_PARENT, :IMGIDX, :R_SUBTYPE,
  65.             :REF_OBJ, :HIDED, :CAPTION_EX, :V_ORDER, :P_NAME, :ISREF, :CUT_SRC, :PASTE_SRC, :HINTS
  66.       DO SUSPEND;
  67.   END
  68. END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值