搞了很久,后来查的资料原来是有限制
1991229 - F-44: not all fields defined in the line layout are displayed
SAP Knowledge Base Article, Version: 8, Released On: 21.09.2020
Show Changes
DescriptionProductsThis document is referenced byAttributesAvailable LanguagesRate this document
Symptom
You have defined a layout via clearing transaction code like T-code: O7Z4K, but when you choose the layout in T-code: F-44, not all fields are displayed.
Environment
- Financial Accounting (FI)
- SAP R/3
- SAP R/3 Enterprise 4.7
- SAP ERP Central Component
- SAP ERP
- SAP enhancement package for SAP ERP
- SAP enhancement package for SAP ERP, version for SAP HANA
Reproducing the Issue
- Maintain a line layout in T-code: O7Z4K;
- In T-code: F-44, choose the line layout maintained in step 1;
- You will see that not all fields defined in the above layout are displayed.
Cause
Since the clearing program allows only a maximum length of 147 (internally 137), including the fields that have to be shown independent of the layout variant in general(the decimal places should be considered also):
DF05B-PSBET -> length 15
DF05B-PSSKT -> length 15
DF05B-PSSKP -> length 6
the available length to be defined in the layout variant is 137 - 36 = 101, so you have to limit the length of the fields defined in the layout not bigger than 101, the length of the fields can be checked by double clicking the fields in T-code: O7Z4K.
When the switch INCLUDE INVOICE REFERENCE is set in FB00, except for:
DF05B-PSSKP
DF05B-PSSKT
DF05B-PSBET
below fields length need to be considered as well:
DF05B-PSPRT ->length 15
DF05B-STATE ->length 3
In addition, with S4Core 103 AFLE (amount field extension) was delivered. In the clearing transactions, this means that the standard fields have been expanded:
DF05B-PSBET 31
DF05B-PSPRT 31
DF05B-PSSKT 31
DF05B-PSPRT 31
Resolution
In order to solve this issue, you have to control the total length of the fields in variant smaller than 101.
See Also
You can check the system logic in Form routine TC_GESAMTLAENGE in include: DF05XF03 of program:SAPDF05X.
Call stacks:
3 FORM TC_GESAMTLAENGE
2 FORM TC_XXXX_COLUMNS_MODIFY
1 MODULE (PBO) SEITEN_ANZEIGE_TC
Main Program SAPDF05X
Source code of DF05XF03
......
IF sy-scols GE 147.
loc_max = 137. <<< internal Max. length 137
ELSE.
loc_max = sy-scols - 10.
ENDIF.
......
LOOP AT <tctrl>-cols INTO tc_col WHERE invisible = space. << loop all the fields which will be displayed in the corresponding screen
loc_leng = loc_leng + tc_col-vislength.
ENDLOOP.
.....
*------- Feld ausblenden oder Ausgabelänge kürzen --------------------
LOOP AT <tctrl>-cols INTO tc_col
WHERE screen-name = tc_fname.
IF loc_cut GE tc_fltab-lengt.
tc_col-invisible = 'X'. << if the total lengh is larger than 137, this field will be set to invisible
tc_col-screen-output = 0. << if the total lengh is larger than 137, this field will be set to invisible
ELSE.
tc_col-vislength = tc_col-vislength - loc_cut. << or the field is displayed partially
ENDIF.
MODIFY <tctrl>-cols FROM tc_col.
EXIT.
ENDLOOP.
*------- Maximallänge eingehalten ? ------------------------------------
loc_leng = loc_leng - loc_cut.
IF loc_leng LE loc_max.
EXIT.
ENDIF.
ENDLOOP.
ENDFORM. " TC_GESAMTLAENGE