[노드], [부모 노드] 와 [노드 단계] 에 따라 html 표 시 를 생 성 하 는 트 리 스 크 립 트

9602 단어 oracle org tree
0. 건 표 문 구 를 사심 없 이 올 립 니 다.

-- Create table
create table M_ORG
(
  ORG_ID          VARCHAR2(32) not null,
  SHORT_NAME      VARCHAR2(50),
  NAME            VARCHAR2(100) not null,
  FULL_ID         VARCHAR2(320),
  FULL_NAME       VARCHAR2(500) not null,
  ENAME           VARCHAR2(200),
  ORG_CLASS       CHAR(1) not null,
  BRANCH_LEVEL    INTEGER,
  NODE_URL        VARCHAR2(100) default '#',
  IS_LAST_NODE    CHAR(1),
  PARENT_ORG_ID   VARCHAR2(32),
  BRANCH_INDEX    INTEGER,
  LOGO            VARCHAR2(100),
  DESC_INFO       VARCHAR2(1000),
  COM_ENABLE      CHAR(1) default 1,
  COM_DEL_FLG     CHAR(1) default 0,
  COM_ADD_DATE    DATE,
  COM_UPD_DATE    DATE,
  COM_DEL_DATE    DATE,
  COM_ADD_USER_ID VARCHAR2(32),
  COM_UPD_USER_ID VARCHAR2(32),
  COM_DEL_USER_ID VARCHAR2(32)
)
tablespace CAH_SMS_TBS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table M_ORG
  is '     。

          organization chart(       )。
             。

    ID    :
  1.     001  ;     001001  ;    。
  2.      ID    ,     10   。';
-- Add comments to the columns 
comment on column M_ORG.ORG_ID
  is '    ID(                  ID)';
comment on column M_ORG.SHORT_NAME
  is '  ';
comment on column M_ORG.NAME
  is '        (        )';
comment on column M_ORG.FULL_ID
  is ' ID(#   )';
comment on column M_ORG.FULL_NAME
  is '        ';
comment on column M_ORG.ENAME
  is '        ';
comment on column M_ORG.ORG_CLASS
  is '  (1:  ;2:  ;3:  )【    :ORG_CLASS】';
comment on column M_ORG.BRANCH_LEVEL
  is '  ';
comment on column M_ORG.NODE_URL
  is '    ';
comment on column M_ORG.IS_LAST_NODE
  is '    (Y/N)【    :YES_NO】';
comment on column M_ORG.PARENT_ORG_ID
  is '      ID';
comment on column M_ORG.BRANCH_INDEX
  is '   ';
comment on column M_ORG.LOGO
  is '    ';
comment on column M_ORG.DESC_INFO
  is '  ';
comment on column M_ORG.COM_ENABLE
  is '    (1:  ;0:   )';
comment on column M_ORG.COM_DEL_FLG
  is '    (1:   ;0:   )';
comment on column M_ORG.COM_ADD_DATE
  is '    (yyyy-MM-dd hh:mm:ss)';
comment on column M_ORG.COM_UPD_DATE
  is '    (yyyy-MM-dd hh:mm:ss)';
comment on column M_ORG.COM_DEL_DATE
  is '    (yyyy-MM-dd hh:mm:ss)';
comment on column M_ORG.COM_ADD_USER_ID
  is '     ID';
comment on column M_ORG.COM_UPD_USER_ID
  is '     ID';
comment on column M_ORG.COM_DEL_USER_ID
  is '     ID';
-- Create/Recreate primary, unique and foreign key constraints 
alter table M_ORG
  add constraint XPK      primary key (ORG_ID)
  using index 
  tablespace CAH_SMS_TBS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

1. 조직 기구 트 리 구조 초기 포맷

CREATE OR REPLACE VIEW V_ORG_TREE_SUB AS
SELECT REPLACE(LPAD('|-', (LEVEL - 1) * 2), '|-', '<LI>') || NAME AS NAME,
               ORG_ID,
               PARENT_ORG_ID,
               BRANCH_LEVEL,
               SHORT_NAME,
               FULL_ID,
               FULL_NAME,
               ENAME,
               ORG_CLASS,
               NODE_URL,
               IS_LAST_NODE,
               BRANCH_INDEX,
               LOGO,
               DESC_INFO
          FROM CAHSMS_M_ORG --     :  >  >  
        CONNECT BY PRIOR ORG_ID = PARENT_ORG_ID
         START WITH ORG_ID = '001';

2. 가공 완료 트 리 구조 코드

CREATE OR REPLACE VIEW V_ORG_TREE AS
SELECT CASE
         WHEN ORG.ORG_ID = RN_NEXT.PARENT_ORG_ID THEN
          ORG.NAME || '<ul>' --        
         WHEN ORG.BRANCH_LEVEL - 1 > RN_NEXT.BRANCH_LEVEL OR
              RN_NEXT.BRANCH_LEVEL IS NULL THEN
          ORG.NAME || '</li> </ul></li>' ||
          DECODE(ORG.BRANCH_LEVEL - 1 -
                 DECODE(RN_NEXT.BRANCH_LEVEL, NULL, 2, RN_NEXT.BRANCH_LEVEL),
                 1,
                 '    </ul></li>',
                 2,
                 '    </ul></li></ul></li>',
                 3,
                 '    </ul></li></ul></li></ul></li>',
                 4,
                 '    </ul></li></ul></li></ul></li></ul></li>',
                 5,
                 '    </ul></li></ul></li></ul></li></ul></li></ul></li>',
                 6,
                 '    </ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>',
                 7,
                 '    </ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>',
                 8,
                 '    </ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>',
                 9,
                 '    </ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>'
                 , '') --             
         WHEN ORG.PARENT_ORG_ID = RN_NEXT.PARENT_ORG_ID THEN
          ORG.NAME || '</li>' -- 【          】    
         WHEN ORG.PARENT_ORG_ID = RN_PREV.PARENT_ORG_ID AND
              ORG.PARENT_ORG_ID != RN_NEXT.PARENT_ORG_ID THEN
          ORG.NAME || '</li> </ul></li>' -- 【          】   
         ELSE
          ORG.NAME || '</li> </ul></li>'
       END AS NAME,
       ORG.ORG_ID,
       ORG.PARENT_ORG_ID,
       RN_PREV.PARENT_ORG_ID AS PARENT_ORG_ID_PREV, --         ID
       RN_NEXT.PARENT_ORG_ID AS PARENT_ORG_ID_NEXT, --         ID
       ORG.BRANCH_LEVEL AS BRANCH_LEVEL,
       RN_PREV.BRANCH_LEVEL AS BRANCH_LEVEL_PREV, --          
       RN_NEXT.BRANCH_LEVEL AS BRANCH_LEVEL_NEXT, --          
       ORG.SHORT_NAME,
       ORG.FULL_ID,
       ORG.FULL_NAME,
       ORG.ENAME,
       ORG.ORG_CLASS,
       ORG.NODE_URL,
       ORG.IS_LAST_NODE,
       ORG.BRANCH_INDEX,
       ORG.LOGO,
       ORG.DESC_INFO
  FROM (SELECT SUB.*, ROWNUM AS RN FROM V_ORG_TREE_SUB SUB) ORG
  LEFT JOIN (SELECT SUB.*, ROWNUM + 1 AS RN_PREV FROM V_ORG_TREE_SUB SUB) RN_PREV ON ORG.RN =
                                                                                     RN_PREV.RN_PREV
  LEFT JOIN (SELECT SUB.*, ROWNUM - 1 AS RN_NEXT FROM V_ORG_TREE_SUB SUB) RN_NEXT ON ORG.RN =
                                                                                     RN_NEXT.RN_NEXT;



3. 보기 데이터 연결 jsp 중

		<ul id="org" style="display: none">
			<li>
				<!--      SQL       start-->
				<c:forEach items="${orgTrees}" var="org">
					${org}
				</c:forEach>
				<!--      SQL       end-->
			
				<!--          -->
				</ul>

			</li>
		</ul>

감정 이 풍부 한 감사 선
Trees in Oracle SQL
http://philip.greenspun.com/sql/trees.html
jQuery Org Chart demo (주의: jOrgChart 효과 IE8 + 지원)
http://www.capricasoftware.co.uk/jquery/orgchart/orgchart.html
jQuery Org Chart Code
https://github.com/Tquila/jOrgChart
후속 보고
jQuery Org Chart 는 IE7 UBG 를 수정 하 였 습 니 다.
http://th3silverlining.com/2011/12/01/jquery-org-chart-a-plugin-for-visualising-data-in-a-tree-like-structure/
다운로드 이동:
https://github.com/wesnolte/jOrgChart/downloads

좋은 웹페이지 즐겨찾기