[노드], [부모 노드] 와 [노드 단계] 에 따라 html 표 시 를 생 성 하 는 트 리 스 크 립 트
9602 단어 oracle org tree
-- 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