Entering content frameProcedure documentation Create Tabs for Maintenance Dialogs  Locate the document in its SAP Library structure

Use

You can use tabs with local pages to structure and organize large maintenance dialogs.

You can only use tabs in maintenance dialogs which are not affected by customizing. Tabs cannot be used for customizing maintenance dialogs.

Note

Do not use local tabs if

In these cases, use an oversized screen, in which you can group related fields in boxes.

Prerequisites

Create Subscreens

  1. Delete the name OK_CODE in the element list for the OK code field, to convert the screen into a subscreen.
  2. Create a screen for each tab in the ScreenPainter (SE51), e.g. by copying the Detail screen. Enter the screen type Subscreen in the screen attributes.

Modify the Main Detail Screen

The main detail screen is the detail screen which contains the TabStrip. This main detail screen must have the screen number which is specified in SE54 for the detail screen. The key fields, and explanatory text fields for the key fields, remain in the main detail screen.

  1. Delete all fields which do not remain in the main detail screen, in the Layout Editor.
  2. Specify the function code. The function code should begin with a number, to avoid overlaps with new standard view maintenance function codes.
  3. Specify Function Type P, to enable local scrolling.
  4. Assign subscreen areas to the tabs.

Flow logic

PBO

Insert an individual module after DETAIL_INIT, which does the following

No screen fields in the detail screen are ready for input in display and transport mode. You must make them ready for input again explicitly for tabs, in an individual module.

PAI

Modify Subscreens

  1. Delete all fields which are not required in this tab, in the Layout Editor.
  2. Assign the remaining fields, and define boxes.

Flow logic

PBO

Replace the module call of DETAIL_INIT by VIM_MODIF_DETAIL.

PAI

For views with read only fields to referred tables: The call of the module COMPLETE_<viewname> in this chain is only necessary in the tabs which contain read only fields to referred tables.

The complete SET_TXT_UPDATE_FLAG module chain command, including module call, can be deleted, if the subscreen contains no text table fields ready for input.

Delete the complete DETAIL_PAI module CHAIN command, including module call, because the tabs contain no key fields.

Declare data in the generated function group

Put a tab controls statement in the Top Include of the generated function group L<fu gr>TOP:

CONTROLS: xxxx TYPE TAPSTRIP.

where xxxx is the name of the tab as specified in the Screen Painter.

Flow logic examples

Enter appropriate values in the fields in angle brackets <...>.

Example main detail screen flow logic

process before output.

module detail_init.

module <set_tabstrip>. "individual module see 5.2

call subscreen <subscr1> including 'SAPL<fugr>' '<dnr1>'. "Tab page 1

call subscreen <subscr1> including 'SAPL<fugr>' '<dnr1>'. "Tab page 2

*

process after input.

module detail_exit_command at exit-command.

module detail_set_pfstatus.

call subscreen <subscr1>. "Tab page 1

call subscreen <subscr2>. "Tab page 2

chain.

* only show the fields which can be changed in this screen

field <tab/view>-<field1>.

field <tab/view>-<field2>.

...

module set_update_flag on chain-request.

endchain.

* only relevant in table+text table dialog

* only show the text table fields which can be changed in this screen

chain.

field <tab/view>-<field1>.

module set_txt_update_flag on chain-request.

endchain.

chain.

field <tab/view>-<key1>.

field <tab/view>-<key2>.

...

module detail_pai.

endchain.

Example implementation for the module SET_TABSTRIP

module set_tabstrip output.

* set appropriate tab page

if <my_tabstrip>-activetab is initial.

<my_tabstrip>-activetab = '<Fcode>'.

endif.

 

* No fields are ready for input in view maintenance

* display mode.

* --> make tabs ready for input

loop at screen.

if screen-name = '<tab1>' or screen-name = '<tab2>' or ... .

screen-active = 1.

screen-input = 1.

modify screen.

endif.

endloop.

endmodule. " SET_TABSTRIP OUTPUT

Example subscreen flow logic

process before output.

module vim_modif_detail. "TabStrip

*

process after input.

chain.

* only show the fields which can be changed in this screen

field <tab/view>-<field1>.

field <tab/view>-<field2>.

...

module set_update_flag on chain-request.

* only for view with read only fields in referred tabes

* if there are any in this screen

module complete_<viewname> on chain-request.

endchain.

* only relevant in table+text table dialog

* only show the text table fields which can be changed in this screen

chain.

field <tab/view>-<field1>.

module set_txt_update_flag on chain-request.

endchain.

Examples

The following examples of the use of tabs with local pages in the view maintenance detail screen are available in the system:

Function group: TVCL

Main detail screen: 0021

Tab detail screens: 0022, 0023

Function group: TVCL

Main detail screen: 0041

Tab detail screens: 0042, 0043

Leaving content frame