‎2007 Aug 02 2:26 PM
<b>How to dynamically add headings to a docking container?please give me some sample code?</b>
‎2007 Aug 02 2:31 PM
HI,
to see an example in control select ABAPDOCU tcode and select
ABAP User Dialogs ->Screens ->Complex Screen Elements ->Docking Control and Dialog Box
<b>reward if helpful</b>
rgds,
bharat.
‎2007 Aug 02 2:34 PM
&----
*& Report DEMO_ABAP_OBJECTS_DIALOG_BOX *
&----
report DEMO_ABAP_OBJECTS_DIALOG_BOX.
&----
*& Global Declarations *
&----
Class Definitions
class SCREEN_HANDLER definition create private.
public section.
class-data SCREEN type ref to SCREEN_HANDLER.
class-methods CREATE_SCREEN.
methods CONSTRUCTOR.
private section.
data: CONTAINER_HTML type ref to CL_GUI_CUSTOM_CONTAINER,
CONTAINER_BOX type ref to CL_GUI_DIALOGBOX_CONTAINER,
PICTURE type ref to CL_GUI_PICTURE,
TREE type ref to CL_GUI_SIMPLE_TREE,
HTML_VIEWER type ref to CL_GUI_HTML_VIEWER,
LIST_VIEWER type ref to CL_GUI_ALV_GRID.
methods: FILL_TREE,
FILL_PICTURE,
HANDLE_NODE_DOUBLE_CLICK
for event NODE_DOUBLE_CLICK of CL_GUI_SIMPLE_TREE
importing NODE_KEY,
CLOSE_BOX
for event CLOSE of CL_GUI_DIALOGBOX_CONTAINER,
FILL_HTML importing I_CARRID type SPFLI-CARRID,
FILL_LIST importing I_CARRID type SPFLI-CARRID
I_CONNID type SPFLI-CONNID.
endclass.
Class Implementations
class SCREEN_HANDLER implementation.
method CREATE_SCREEN.
if SCREEN is initial.
create object SCREEN.
endif.
endmethod.
method CONSTRUCTOR.
data: L_EVENT_TAB type CNTL_SIMPLE_EVENTS,
L_EVENT like line of L_EVENT_TAB,
L_DOCKING type ref to CL_GUI_DOCKING_CONTAINER,
L_SPLITTER type ref to CL_GUI_SPLITTER_CONTAINER,
L_CONTAINER_SCREEN type ref to CL_GUI_CUSTOM_CONTAINER,
L_CONTAINER_TOP type ref to CL_GUI_CONTAINER,
L_CONTAINER_BOTTOM type ref to CL_GUI_CONTAINER.
create object CONTAINER_HTML
exporting CONTAINER_NAME = 'CUSTOM_CONTROL'.
create object L_DOCKING
exporting SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_LEFT
EXTENSION = 135.
create object L_SPLITTER
exporting PARENT = L_DOCKING
ROWS = 2
COLUMNS = 1.
call method L_SPLITTER->SET_BORDER
exporting BORDER = CL_GUI_CFW=>FALSE.
call method L_SPLITTER->SET_ROW_MODE
exporting MODE = L_SPLITTER->MODE_ABSOLUTE.
call method L_SPLITTER->SET_ROW_HEIGHT
exporting ID = 1
HEIGHT = 180.
L_CONTAINER_TOP =
L_SPLITTER->GET_CONTAINER( ROW = 1 COLUMN = 1 ).
L_CONTAINER_BOTTOM =
L_SPLITTER->GET_CONTAINER( ROW = 2 COLUMN = 1 ).
create object PICTURE
exporting PARENT = L_CONTAINER_TOP.
create object TREE
exporting PARENT = L_CONTAINER_BOTTOM
NODE_SELECTION_MODE =
CL_GUI_SIMPLE_TREE=>NODE_SEL_MODE_SINGLE.
L_EVENT-EVENTID = CL_GUI_SIMPLE_TREE=>EVENTID_NODE_DOUBLE_CLICK.
L_EVENT-APPL_EVENT = ' '. "system event, does not trigger PAI
append L_EVENT to L_EVENT_TAB.
call method TREE->SET_REGISTERED_EVENTS
exporting EVENTS = L_EVENT_TAB.
set handler ME->HANDLE_NODE_DOUBLE_CLICK for TREE.
call method: ME->FILL_PICTURE,
ME->FILL_TREE.
endmethod.
method FILL_PICTURE.
types T_LINE(256) type X.
data L_PICT_TAB type table of T_LINE.
data L_URL(255) type C.
import PICT_TAB = L_PICT_TAB from database ABTREE(PI) id 'FLIGHTS'
in char-to-hex mode.
call function 'DP_CREATE_URL'
exporting
TYPE = 'IMAGE'
SUBTYPE = 'GIF'
tables
DATA = L_PICT_TAB
changing
URL = L_URL.
call method PICTURE->LOAD_PICTURE_FROM_URL
exporting URL = L_URL.
call method PICTURE->SET_DISPLAY_MODE
exporting DISPLAY_MODE = PICTURE->DISPLAY_MODE_STRETCH.
endmethod.
method FILL_TREE.
data: L_NODE_TABLE type table of ABDEMONODE,
L_NODE type ABDEMONODE,
L_SPFLI type SPFLI,
L_SPFLI_TAB type sorted table of SPFLI
with unique key CARRID CONNID.
select CARRID CONNID
from SPFLI
into corresponding fields of table L_SPFLI_TAB.
L_NODE-HIDDEN = ' '. " All nodes are visible,
L_NODE-DISABLED = ' '. " selectable,
L_NODE-ISFOLDER = 'X'. " a folder,
L_NODE-EXPANDER = ' '. " have no '+' sign for expansion.
loop at L_SPFLI_TAB into L_SPFLI.
at new CARRID.
L_NODE-NODE_KEY = L_SPFLI-CARRID.
clear L_NODE-RELATKEY.
clear L_NODE-RELATSHIP.
L_NODE-TEXT = L_SPFLI-CARRID.
L_NODE-N_IMAGE = ' '.
L_NODE-EXP_IMAGE = ' '.
append L_NODE to L_NODE_TABLE.
endat.
at new CONNID.
concatenate L_SPFLI-CARRID L_SPFLI-CONNID into L_NODE-NODE_KEY.
L_NODE-RELATKEY = L_SPFLI-CARRID.
L_NODE-RELATSHIP = CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD.
L_NODE-TEXT = L_SPFLI-CONNID.
L_NODE-N_IMAGE = '@AV@'. "AV is the internal code
L_NODE-EXP_IMAGE = '@AV@'. "for an airplane icon
endat.
append L_NODE to L_NODE_TABLE.
endloop.
call method TREE->ADD_NODES
exporting TABLE_STRUCTURE_NAME = 'ABDEMONODE'
NODE_TABLE = L_NODE_TABLE.
endmethod.
method HANDLE_NODE_DOUBLE_CLICK.
data: L_CARRID type SPFLI-CARRID,
L_CONNID type SPFLI-CONNID.
L_CARRID = NODE_KEY(2).
L_CONNID = NODE_KEY+2(4).
if L_CONNID is initial.
call method FILL_HTML exporting I_CARRID = L_CARRID.
else.
call method FILL_LIST exporting I_CARRID = L_CARRID
I_CONNID = L_CONNID.
endif.
endmethod.
method FILL_HTML.
data L_URL type SCARR-URL.
if HTML_VIEWER is initial.
create object HTML_VIEWER
exporting PARENT = CONTAINER_HTML.
endif.
select single URL
from SCARR
into L_URL
where CARRID = I_CARRID.
call method HTML_VIEWER->SHOW_URL
exporting URL = L_URL.
endmethod.
method FILL_LIST.
data: L_FLIGHT_TAB type table of DEMOFLI,
begin of L_FLIGHT_TITLE,
CARRNAME type SCARR-CARRNAME,
CITYFROM type SPFLI-CITYFROM,
CITYTO type SPFLI-CITYTO,
end of L_FLIGHT_TITLE,
L_LIST_LAYOUT type LVC_S_LAYO.
if CONTAINER_BOX is initial.
create object CONTAINER_BOX
exporting WIDTH = 250
HEIGHT = 200
TOP = 100
LEFT = 400
CAPTION = 'Flight List'.
set handler CLOSE_BOX for CONTAINER_BOX.
create object LIST_VIEWER
exporting I_PARENT = CONTAINER_BOX.
endif.
select single CCARRNAME PCITYFROM P~CITYTO
into corresponding fields of L_FLIGHT_TITLE
from ( SCARR as C
inner join SPFLI as P on CCARRID = PCARRID )
where P~CARRID = I_CARRID and
P~CONNID = I_CONNID.
select FLDATE SEATSMAX SEATSOCC
into corresponding fields of table L_FLIGHT_TAB
from SFLIGHT
where CARRID = I_CARRID and CONNID = I_CONNID
order by FLDATE.
concatenate L_FLIGHT_TITLE-CARRNAME
I_CONNID
L_FLIGHT_TITLE-CITYFROM
L_FLIGHT_TITLE-CITYTO
into L_LIST_LAYOUT-GRID_TITLE separated by SPACE.
L_LIST_LAYOUT-SMALLTITLE = 'X'. "The list title has small fonts,
L_LIST_LAYOUT-CWIDTH_OPT = 'X'. "the column width is adjusted,
L_LIST_LAYOUT-NO_TOOLBAR = 'X'. "the toolbar is suppressed.
call method LIST_VIEWER->SET_TABLE_FOR_FIRST_DISPLAY
exporting I_STRUCTURE_NAME = 'DEMOFLI'
IS_LAYOUT = L_LIST_LAYOUT
changing IT_OUTTAB = L_FLIGHT_TAB.
endmethod.
method CLOSE_BOX.
call method: LIST_VIEWER->FREE,
CONTAINER_BOX->FREE.
clear: LIST_VIEWER,
CONTAINER_BOX.
endmethod.
endclass.
&----
*& Processing Blocks called by the Runtime Environment *
&----
Event Block LOAD-OF-PROGRAM
load-of-program.
call screen 100.
Dialog Module PBO
module STATUS_0100 output.
set pf-status 'SCREEN_100'.
set titlebar 'TIT_100'.
call method SCREEN_HANDLER=>CREATE_SCREEN.
endmodule.
Dialog Module PAI
module CANCEL input.
leave program.
endmodule.