_gary_ написал(а):
у меня грида нет. И тулбар там не в месте где пф-статус располагается а в контейнере.
Вот примерчик:
Code:
report zrich_0001.
TYPE-POOLS: icon.
DATA:
dock_sub_cont1 TYPE REF TO cl_gui_container,
dock_sub_cont2 TYPE REF TO cl_gui_container,
splitter TYPE REF TO cl_gui_splitter_container,
dockingleft TYPE REF TO cl_gui_docking_container,
text_editor TYPE REF TO cl_gui_textedit,
gui_tb TYPE REF TO cl_gui_toolbar,
repid TYPE syrepid.
DATA: itext TYPE TABLE OF tline-tdline,
xtext TYPE tline-tdline.
*---------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_pushbutton_click
FOR EVENT function_selected
OF cl_gui_toolbar IMPORTING fcode.
ENDCLASS. "lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
METHOD handle_pushbutton_click.
CASE fcode.
WHEN 'PRINT'.
CALL METHOD text_editor->get_text_as_r3table
IMPORTING
table = itext
EXCEPTIONS
OTHERS = 1.
LEAVE TO LIST-PROCESSING.
LOOP AT itext INTO xtext.
WRITE:/ xtext.
ENDLOOP.
ENDCASE.
ENDMETHOD. "handle_pushbutton_click
ENDCLASS. "lcl_event_handler IMPLEMENTATION
PARAMETERS: p_check.
AT SELECTION-SCREEN OUTPUT.
repid = sy-repid.
CHECK dockingleft IS INITIAL.
CREATE OBJECT dockingleft
EXPORTING repid = repid
dynnr = sy-dynnr
side = dockingleft->dock_at_left
extension = 1070.
CREATE OBJECT splitter
EXPORTING parent = dockingleft
rows = 2
columns = 1.
CALL METHOD:
splitter->get_container
EXPORTING row = 1
column = 1
RECEIVING container = dock_sub_cont1,
splitter->set_row_height
EXPORTING id = 1
height = '3',
splitter->get_container
EXPORTING row = 2
column = 1
RECEIVING container = dock_sub_cont2.
PERFORM create_toolbar.
CREATE OBJECT text_editor
EXPORTING
parent = dock_sub_cont2.
SET HANDLER:
lcl_event_handler=>handle_pushbutton_click FOR gui_tb.
START-OF-SELECTION.
*---------------------------------------------------------------------*
* FORM create_toolbar *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM create_toolbar.
DATA: event TYPE cntl_simple_event,
events TYPE cntl_simple_events.
* Create the toolbar object
CREATE OBJECT gui_tb
EXPORTING
parent = dock_sub_cont1
EXCEPTIONS
cntl_install_error = 1
cntl_error = 2
cntb_wrong_version = 3
OTHERS = 4.
* Set up events for toolbar
CLEAR event. REFRESH events.
event-appl_event = 'X'.
event-eventid = gui_tb->m_id_function_selected.
APPEND event TO events.
* Register the events
CALL METHOD gui_tb->set_registered_events
EXPORTING
events = events
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
* Add Buttons to toolbar
CALL METHOD gui_tb->add_button
EXPORTING
fcode = 'PRINT'
icon = icon_print
butn_type = '0'
text = ' Print'
EXCEPTIONS
cntl_error = 1
cntb_btype_error = 2
cntb_error_fcode = 3
OTHERS = 4.
ENDFORM. "create_toolbar