*orgselection.htm
Type Definitions
----------------
types: tt_hrp1001 type standard table of hrp1001 initial size 0.
TYPES: BEGIN OF t_orgdisplay,
level(40) TYPE c,
id type i,
parent type i,
objid TYPE hrp1001-objid,
orgtx type string,
begda TYPE hrp1001-begda,
endda TYPE hrp1001-endda,
display type string,
checked type string,
END OF t_orgdisplay.
TYPES: tt_orgdisplay TYPE STANDARD TABLE OF t_orgdisplay.
Page Attributes
---------------
gd_count TYPE SY-INDEX
gd_id TYPE STRING
gd_str TYPE STRING
gd_update TYPE I
it_hrp1001 TYPE TT_HRP1001
it_orgdisplay TYPE TT_ORGDISPLAY
it_selection TYPE Z_SOGRANT
p_windowsid TYPE STRING
tv_iterator TYPE REF TO IF_HTMLB_TABLEVIEW_ITERATOR
vIndex TYPE I
vSize TYPE STRING
wa_orgdisplay TYPE T_ORGDISPLAY
On Create
---------------
* this handler is called once the page is first created (stateful mode)
* it performs a once-off data initialization or object creation
DATA: a_name TYPE string VALUE 'NONE',
a_name_space TYPE string VALUE 'NONE',
u_name TYPE string VALUE 'NONE',
session_id TYPE string VALUE 'NONE'.
cl_bsp_server_side_cookie=>get_server_cookie(
EXPORTING
name = p_windowsid
application_name = 'ORG_LIST'
application_namespace = runtime->application_namespace
username = sy-uname
session_id = 'SESSION_ID'
data_name = 'COOKIE_ID_50CASE1'
CHANGING
data_value = it_orgdisplay ).
IF it_orgdisplay IS INITIAL.
SUBMIT zorg_retrieve AND RETURN.
IMPORT it_orgdisplay TO it_orgdisplay FROM MEMORY ID 'ZORGSTRUCT'.
cl_bsp_server_side_cookie=>set_server_cookie(
EXPORTING
name = p_windowsid
application_name = 'ORG_LIST'
application_namespace = runtime->application_namespace
username = sy-uname
session_id = 'SESSION_ID'
data_value = it_orgdisplay
data_name = 'COOKIE_ID_50CASE1'
expiry_time_rel = 3600
).
ENDIF.
On Initialization
---------
* event handler for data retrieval
DATA: a_name TYPE string VALUE 'NONE',
a_name_space TYPE string VALUE 'NONE',
u_name TYPE string VALUE 'NONE',
session_id TYPE string VALUE 'NONE'.
cl_bsp_server_side_cookie=>get_server_cookie(
EXPORTING
name = p_windowsid
application_name = 'ORG_LIST'
application_namespace = runtime->application_namespace
username = sy-uname
session_id = 'SESSION_ID'
data_name = 'COOKIE_ID_50CASE1'
* IMPORTING
* EXPIRY_DATE =
* EXPIRY_TIME =
CHANGING
data_value = it_orgdisplay ).
On InputProcessing
---------
* event handler for checking and processing user input and
* for defining navigation
DATA: a_name TYPE string VALUE 'NONE',
a_name_space TYPE string VALUE 'NONE',
u_name TYPE string VALUE 'NONE',
session_id TYPE string VALUE 'NONE'.
CLASS cl_htmlb_manager DEFINITION LOAD.
DATA: event TYPE REF TO cl_htmlb_event.
event ?= cl_htmlb_manager=>get_event( runtime->server->request ).
data: wa_next type string,
wa_string type string,
wa_selection like line of it_selection.
constants: con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB.
IF event->id = 'orgButton' AND event->event_type = 'click'.
DATA: data TYPE REF TO CL_HTMLB_INPUTFIELD.
data ?= CL_HTMLB_MANAGER=>GET_DATA(
request = runtime->server->request
name = 'inputField'
id = 'id1'
).
IF data IS NOT INITIAL.
gd_id = data->value.
wa_string = gd_id.
DO.
IF wa_string is initial.
EXIT.
ELSE.
SPLIT wa_string AT ',' INTO wa_next
wa_string.
read table it_orgdisplay into wa_orgdisplay
with key id = wa_next.
if wa_orgdisplay-checked = 'CHECKED'.
wa_orgdisplay-checked = 'UNCHECKED'.
else.
wa_orgdisplay-checked = 'CHECKED'.
endif.
modify it_orgdisplay from wa_orgdisplay index sy-tabix.
ENDIF.
ENDDO.
if sy-subrc eq 0.
cl_bsp_server_side_cookie=>set_server_cookie(
EXPORTING
name = p_windowsid
application_name = 'ORG_LIST'
application_namespace = runtime->application_namespace
username = sy-uname
session_id = 'SESSION_ID'
data_value = it_orgdisplay
data_name = 'COOKIE_ID_50CASE1'
expiry_time_rel = 3600
).
loop at it_orgdisplay into wa_orgdisplay where
checked = 'CHECKED'.
wa_selection-selname = 'S_DEPT'.
wa_selection-sign = 'I'.
wa_selection-option = 'EQ'.
wa_selection-low = wa_orgdisplay-objid.
wa_selection-high = wa_orgdisplay-objid.
append wa_selection to it_selection.
endloop.
cl_bsp_server_side_cookie=>set_server_cookie(
EXPORTING
name = p_windowsid
application_name = 'SEL_SCREEN'
application_namespace = runtime->application_namespace
username = sy-uname
session_id = 'SESSION_ID'
data_value = it_selection
data_name = 'COOKIE_ID_50CASE1'
expiry_time_rel = 3600
).
navigation->goto_page('closewindow.htm').
endif.
ENDIF.
ENDIF.
Layout
------
<%@page language="abap"%>
<%@extension name="htmlb" prefix="htmlb"%>
<htmlb:content design="classic">
<htmlb:page title = " ">
<htmlb:form>
<html>
<head>
<SCRIPT TYPE="text/javascript">
<!--
window.focus();
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
function close_window(mylink, windowname)
{
javascript:window.close();
//Implementation
//<A HREF="orgtest.htm" onClick="return close_window(this, 'OrgUnit')"></A>
}
</script>
<title>Organisational Structure</title>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<htmlb:inputField id = "id1"
invalid = "true"
value = "<%=gd_id%>"
required = "true"
visible = " "/>
<htmlb:button id = "orgButton"
text = "Done"
onClick = "orgButton"/>
<div class="dtree">
<p><a href="javascript: d.openAll();">open all</a> |
<a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript">
<!--
var count = 1;
var count2 = 0;
var str = ' ';
d = new dTree('d');
d.add(0,-1,'The University of Leeds');
<% loop at it_orgdisplay into wa_orgdisplay.%>
d.add(<%=wa_orgdisplay-id %>,<%=wa_orgdisplay-parent %>,
'<%=wa_orgdisplay-objid %> | <%=wa_orgdisplay-orgtx %>',
'orgupdate.htm?gd_id=<%=wa_orgdisplay-id %>&gd_update=2','','MAIN',
'','','','','<%=wa_orgdisplay-checked %>');
count++;
<% endloop. %>
//d.add(400,0,'My Pictures','javascript:void(0);','','MAIN','test','','',
'img/folderopen.gif',true,true,'',true);
//d.add(401,400,'My Pictures','example01.html','','MAIN',
'Pictures I\ve taken over the years','','','img/folderopen.gif');
// d.oAll(false); // closes all branches
document.write(d);
// d.openTo(20, true);
// d.openTo(5, true);
//-->
</script>
</div>
<p>©V!p3r</p>
<htmlb:button id = "orgButton"
text = "Done"
onClick = "orgButton"/>
<IFRAME marginwidth="0" marginheight="0" src="top/top.htm" name="MAIN"
width="1" height="1" border="0" frameborder="0"
style="border:none;" scrolling="no"></iframe>
</body>
</html>
</htmlb:form>
</htmlb:page>
</htmlb:content>
|