Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Docking Container

Former Member
0 Likes
1,065

<b>How to dynamically add headings to a docking container?please give me some sample code?</b>

2 REPLIES 2
Read only

Former Member
0 Likes
563

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.

Read only

vikram_maduri2
Explorer
0 Likes
563

&----


*& 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.