Sie sind auf Seite 1von 14

FU REUSE_ALV_FIELDCATALOG_MERGE

____________________________________________________

Short text

Create field catalog from dictionary structure or internal table

Functionality

Supports the creation of the field catalog for the ALV function modules based either on a
structure or table defined in the ABAP Data Dictionary, or a program-internal table.

The program-internal table must either be in a TOP Include or its Include must be
specified explicitly in the interface.

The variant based on a program-internal table should only be used for rapid prototyping
since the following restrictions apply:

• Performance is affected since the code of the table definition must always be read
and interpreted at runtime.

• Dictionary references are only considered if the keywords LIKE or INCLUDE


STRUCTURE (not TYPE) are used.

If the field catalog contains more than 90 fields, the first 90 fields are output in the list by
default whereas the remaining fields are only available in the field selection.

If the field catalog is passed with values, they are merged with the 'automatically' found
information.

Parameter

I_PROGRAM_NAME
I_INTERNAL_TABNAME
I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY
I_INCLNAME
I_BYPASSING_BUFFER
I_BUFFER_ACTIVE
CT_FIELDCAT

Exceptions

INCONSISTENT_INTERFACE
PROGRAM_ERROR
Function group

SALV

Internal table declaration program


Description

Program from which the function module is called and which contains the exit routines.
The program should always be a Report, Function group, Module pool or Form routine
pool (not an Include).

The specification of a structure is preferable to data declaration in an Include for reasons


of performance.

Return ->
Internal table declaration program

Output table name


Description

Name of the internal output table in the CALLBACK_PROGRAM.

An ABAP DDIC structure is preferable to a data object in a CALLBACK program


Include.

Return ->
Output table name

Structure name (structure, table, view)

Description

Link to REUSE_ALV_LIST_DISPLAY I_STRUCTURE_NAME

Return ->
Structure name (structure, table, view)

Internal output table structure name

Description

If the internal output table is defined via an ABAP/4 Dictionary structure (INCLUDE
STRUCTURE struct or LIKE struct), the field catalog can be built-up automatically by
passing the structure name.
The field catalog is internally built up for this structure as follows:

• All fields are in the list (NO_OUT = SPACE) except fields of data type CLNT.

• The key fields of the Dictionary structure are also key fields in the field catalog.

• Dictionary references to unit fields are copied if the reference fields are in the
structure.

• If a field catalog is also passed as parameter, the structure information is


combined with this field catalog.

For further information about the automatic build-up of the field catalog, see the
documentation of the function module REUSE_ALV_FIELDCATALOG_MERGE.

Return ->
Internal output table structure name

Hide client fields

Description

Client field handling in the structure passed.

Value Range

'X', SPACE

SPACE: client fields (type CLNT) in the structure passed are flagged as technical (=> no
screen output) in the field catalog.

Return ->
Hide client fields

Data declaration include name

Description

If the list output structure data declaration is not in the assigned TOP Include, the Include
name can be specified here if no structure is specified.

Return ->
Data declaration include name

Field catalog with field descriptions


Description

link to REUSE_ALV_LIST_DISPLAY IT_FIELDCAT

Return ->
Field catalog with field descriptions

Field catalog with field descriptions


Description

Field catalog containing descriptions of the list output fields (usually a subset of the
internal output table fields).

A field catalog is required for every ALV list output.

The field catalog for the output table is built-up in the caller's coding. The build-up can
be completely or partially automated by calling the
REUSE_ALV_FIELDCATALOG_MERGE module

See also the documentation of the function module


REUSE_ALV_FIELDCATALOG_MERGE.

The minimal field catalog is documented under 'default'. The caller can use the other
optional parameters to assign output attributes to a field which differ from the default.

A field catalog need not be built-up and passed explicitly only under the following
conditions:

• The internal table to be output has the same structure as a Data Dictionary
structure which is referred to in the internal table declaration using LIKE or
INCLUDE STRUCTURE.

• all fields in this structure are to be output

• the structure name is passed to ALV in the parameter I_STRUCTURE_NAME.

See also the documentation of the IMPORTING paramter


I_STRUCTURE_NAME.

Positioning

• row_pos (row position)

value set: 0, 1 - 3
Only relevant if the list output is to be multi-line (two or three lines) by default.
A multi-line list can also be defined by the user interactively if the default list is
one-line.
The parameter specifies the relative output line of the column in a multi-line list.

• col_pos (column position)

value set: 0, 1 - 60
only relevant when the default relative column positions differ from the field
catalog field sequence.
The parameter specifies the relative column position of the field in the list output.
The column order can be changed interactively by the user. If this parameter is
initial for all field catalog entries, columns appear in the field catalog field
sequence.

Identification

• fieldname (field name)

value set: internal output table field name (required parameter)


Name of the internal output table field which is described by this field catalog
entry

• tabname (internal output table)

value set: SPACE, internal output table name


This parameter is used in 'manual' field catalog build-up only for hierarchical-
sequential lists.
Name of the internal output table which contains the field FIELDCAT-
FIELDNAME.

Data Dictionary reference

• ref_fieldname (reference field name)

value set: SPACE, Data Dictionary field name


Name of the Data Dictionary field referred to.
This parameter is only used when the internal output table field described by the
current field catalog entry has a reference to the Data Dictionary (not a program
field), and the field name in the internal output table is different from the name of
the field in the Data Dictionary. If the field names are identical, naming the Data
Dictionary structure or table in the FIELDCAT-REF_TABNAME parameter is
sufficient.

• ref_tabname (reference table/structure field name)

value set: SPACE, name of a Data Dictionary structure or table


Structure or table name of the referred Data Dictionary field.
This parameter is only used when the internal output table field described by the
current field catalog entry has a Data Dictionary reference (not a program field).

Reference to fields with currency/measurement unit

Each internal output table sum or quantity field whose decimal places are to be
formatted appropriately for the unit in the list must follow the convention:

o the field is of data type QUAN or CURR (internal type P)


(the field must really have this physical data type. Overwriting the
physical data type with the parameter FIELDCAT-DATATYPE has no
effect)

o There is a field in the internal output table which contains the associated
unit.

o There is also an entry in the field catalog for the unit field.
(If the unit is not to appear as a column in the list, and cannot be
interactively displayed as a column, e.g. because it is always unambiguous
and is therefore explicitly output by the caller in the list header, the field
catalog units field entry can take the parameter FIELDCAT-TECH = 'X'.

The association of a value field to a unit affects the output as follows:

o appropriate decimal places display for the unit

o an initialized field with a link to a non-initial unit is output as '0' for the
unit (if FIELDCAT-NO_ZERO is initial). When this field is summed, this
unit affects whether the units are homogeneous.

o an initialized field with a link to an initial unit is output as SPACE. When


this field is summed, the unit SPACE does not affect the homogeneity of
the units.

o When non-initial fields with an initial unit are summed, the unit SPACE is
considered to be a unit.

Link to currency unit

• cfieldname (currency unit field name)

value set: SPACE, output table field name


Only relevant for amount columns with associated unit.
Name of the internal output table field containing the currency unit associated
with the amount field FIELDCAT-FIELDNAME.
The field in FIELDCAT-CFIELDNAME must have its own field catalog entry.

• ctabname (internal currency unit field output table)

value set: SPACE, output table field name


only relevant for hierarchical-sequential lists
Name of the internal output table containing the FIELDCAT-CFIELDNAME
field.

Link to measurement unit

• qfieldname (measurement unit field name)

value set: SPACE, output table field name


only relevant for quantity columns with unit link.
Name of the internal output table field containing the measurement unit
associated with the quantity field FIELDCAT-FIELDNAME.
The field in FIELDCAT-QFIELDNAME must have its own field catalog entry.

• qtabname (internal measurement unit field output table)

value set: SPACE, output table field name


only relevant for hierarchical-sequential lists
Name of the internal output table containing the FIELDCAT-QFIELDNAME
field.

Column output options

• outputlen (column width)

value set: 0 (initial), n


For fields with a Data Dictionary link this parameter can be left initial.
For fields without a Data Dictionary link (program field) the parameter must be
given the value of the desired field list output length (column width).
initial = column width is the output length of the referred Data Dictionary field
(domain).
n = column width is n characters

• key (key column)

value set: SPACE, 'X'


'X' = kex field (key field output in color)
Key fields can not be interactively hidden.
Parameter FIELDCAT-NO_OUT must be left initial.
For exceptions see the documentation of the FIELDCAT-KEY_SEL parameter.
• key_sel (hideable key column)

value set: SPACE, 'X'


only relevant when FIELDCAT-KEY = 'X'
Key field which can be hidden interactively.
The key column sequence cannot be changed interactively by the user.
The output is controlled by the FIELDCAT-NO_OUT parameter analogously to
non-key fields.

• no_out (field in field list)

value set: SPACE, 'X'


'X' = field is not displayed in the current list.
The user can interactively choose the field for output from the field list.
The user can display the contents of these fields at line level using the 'Detail'
function.
See also the 'Detail screen' documentation of the parameter IS_LAYOUT.

• tech (technical field)

value set: SPACE, 'X'


'X' = technical field
Field cannot be output in the list and cannot be displayed interactively.
Field can only be used in the field catalog (not in IT_SORT, ...).

• emphasize (highlight columns in color)

value set: SPACE, 'X' or 'Cxyz' (x:'1'-'9'; y,z: '0'=off '1'=on)


'X' = column is colored with the default column highlight color.
'Cxyz' = column is colored with a coded color:

o C: Color (coding must begin with C)

o x: color number

o y: bold

o z: inverse

• hotspot (column as hotspot)

value set: SPACE, 'X'


'X' = column cells are output as hotspots

• fix_column (fix column)


value set: SPACE, 'X'
Not relevant for block lists (output of several lists consecutively)
'X' = column fixed (does not scroll horizontally)
All columns to be fixed must have this flag, starting from the left. If a column
without this flag is output, only the columns to the left of this column are fixed.
The user can change the column fixing interactively.
See also the documentation of the Layout parameter
IS_LAYOUT-NO_KEYFIX of the IMPORTING paramter IS_LAYOUT.

• do_sum (sum over column)

value set: SPACE, 'X'


'X' = a sum is to be calculated over this internal output table field.
This function can also be called by the user interactively.

• no_sum (sums forbidden)

value set: SPACE, 'X'


'X' = no sum can be calculated over this field, although the data type of the field
would allow summing.

• input (column ready for input)

Function not available

Format column contents

• icon

value set: SPACE, 'X'


'X' = column contents to be output as an icon.
).
The caller must consider the printability of icons.

• symbol

value set: SPACE, 'X'


'X' = column contents are to be output as a symbol.
The internal output table column must be a valid symbol character.
The caller must consider the printability of symbols.
Symbols can usually be printed, but may not always be output correctly,
depending on the printer configuration.

• just (justification)

value set: SPACE, 'R', 'L', 'C'


Only relevant for fields of data type CHAR or NUMC
' ' = default justification for this data type
'R' = right-justified output
'L' = left-justified output
'C' = centered output
The justification of the column header always follows the justification of the
columns. Independent justification of the column neader is not possible.

• lzero (leading zeros)

value set: SPACE, 'X'


Only relevant for fields of data type NUMC
ALV outputs NUMC fields right-justified without leading zeros by default.
'X' = output with leading zeros
Note: If a NUMC field is output left-justified or centered by FIELDCAT-JUST,
leading zeros are output.
If the output of leading zeros is suppressed by a Data Dictionary reference
ALPHA conversion exit, the output is always left-justified.

• no_sign (no +/- sign)

value set: SPACE, 'X'


Only relevant for value fields
'X' = value output without +/ sign

• no_zero (suppress zeros)

value set: SPACE, 'X'


Only relevant for value fields
'X' = suppress zeros

• edit_mask (field formatting)

value set: SPACE, template


template = see documentation of WRITE formatting option
USING EDIT MASK template
The output conversion conv can be made by template = '== conv'.

Texts

The following text parameters should be specified for program fields without a
Data Dictionary reference.
The texts are taken from the Data Dictionary for fields with a Data Dictionary
reference. If this is not desired, the text parameters can also be specified. The Data
Dictionary texts are then ignored.
If the user changes the column width interactively, the column header text with
the appropriate length is always used.
The interactive function 'Optimize column width' takes account of both the field
contents and the column headers:
if all field contents are shorter than the shortest column header, the column width
depends on the column header.
The 'long field label' is also used in display variant definition, sort, etc. popups.

• seltext_l (long field label)

• seltext_m (medium field label)

• seltext_s (short field label)

• reptext_ddic (header)

analogous to the Data element maintenance 'Header'


The specified text is not necessarily output in the list, an optimum among all texts
is sought.

• ddictxt (specify text)

value set: SPACE, 'L', 'M', 'S'


You can specify with values 'L', 'M', and 'S', the keyword that should always be
used as column header. If the column width changes, no attempt is made in this
case to find an appropriate header for the new output width.

Parameters for program fields without Data Dictionary reference

see also 'Text' parameters

• datatype (data type)

value set: SPACE, Data Dictionary data type (CHAR, NUMC,...)


Only relevant for fields without Data Dictionary reference
Program field data type

• ddic_outputlen (external output length)

value set: 0 (initial), n


Only relevant for fields without Data Dictionary reference whose output is
nevertheless to be modified by a conversion exit.
Prerequisites:

o FIELDCAT-EDIT_MASK = '==conv'
see also the documentation of the parameter FIELDCAT-EDIT_MASK
o FIELDCAT-INTLEN = n
see also the documentation of the parameter FIELDCAT-INTLEN

n = external format field output length


The column width FIELDCAT-OUTPUTLEN need not be the same as the
external format output length (FIELDCAT-DDIC_OUTPUTLEN).

• intlen (internal output length)

value set: 0 (initial), n


Only relevant for fields without Data Dictionary reference whose output is
nevertheless to be modified by a conversion exit.
Prerequisites:

o FIELDCAT-EDIT_MASK = '==conv'
see also the documentation of the parameter FIELDCAT-EDIT_MASK

o FIELDCAT-DDIC_OUTPUTLEN = n
see also the documentation of the parameter FIELDCAT-
DDIC_OUTPUTLEN

n = internal format field output length

• rollname (data element)

value set: SPACE, Data Dictionary data element name


F1 help can be provided for a program field without a Data Dictionary reference,
or F1 help which differs from the Data Dictionary help can be provided for a field
with a Data Dictionary reference, using this parameter.
When F1 help is called for this field, the documentation of the specified data
element is displayed.
If the FIELDCAT-ROLLNAME is initial for fields with a Data Dictionary
reference, the documentation of the data element of the referred Data Dictionary
field is output.

Others

• sp_group (field group key)

value set: SPACE, CHAR(1)


Field group key.
Keys are assigned to group names in the IT_SPECIAL_GROUPS parameter (see
also the documentation of the parameter IT_SPECIAL_GROUPS).
When such an assignment is made in the field catalog and in
IT_SPECIAL_GROUPS, the fields are grouped correspondingly in the display
variant popup.
• reprep (Report/Report interface selection criterion)

value set: SPACE, 'X'


Prerequisites:

o The system contains the Report/Report interface


(function group RSTI, table TRSTI)

o Parameter LAYOUT-REPREP = 'X'


(see also the documentation of the parameter
LAYOUT-REPREP of the IMPORTING parameter
IS_LAYOUT )

'X' = When the Report/Report interface is called, the value of this field is passed
in the selected interface start record as a selection criterion.

Default

• The following entries are usually sufficient for internal table fields with a
reference to a field defined in the Data Dictionary :

o fieldname

o ref_tabname

Notes:

ALV gets the remaining information from the Data Dictionary.

If no relative column position (COL_POS) is specified, the fields are output in the list in
the order in which they were added to the field catalog.

REF_FIELDNAME need only be specifid when the name of the internal table field
differs from the name of the referred Data Dictionary field.

Information which is explicitly entered in the field catalog is not overwritten by


information from the Data Dictionary.

Priority rule:
Entries in the field catalog have priority over differing entries in the Data Dictionary.

• The following entries are usually sufficient for internal table fields without a
reference to the Data Dictionary (program fields):

o fieldname
o outputlen

o datatype

o seltext_s

o seltext_m

o seltext_l

Notes:

F1 help can be provided for program fields by assigning a data element to the parameter
ROLLNAME.

If the parameters SELTEXT_S, SELTEXT_M, SELTEXT_L, and REPTEXT_DDIC


contain appropriate field labels, the program field column headers are also adjusted
appropriately when the column width changes.

Return ->
Field catalog with field descriptions