zpp126
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0200.
MODULE TC001_INIT.
LOOP AT G_TC001_ITAB
INTO ZPP_STD_STRU
WITH CONTROL TC001
CURSOR TC001-CURRENT_LINE.
MODULE TC001_GET_LINES.
MODULE MODIFY_DSP.
ENDLOOP.
*
PROCESS AFTER INPUT.
Module exit_screen AT EXIT-COMMAND.
* MODULE UPDATE_POSNR.
* MODULE USER_COMMAND_0200.
LOOP AT G_TC001_ITAB.
CHAIN.
FIELD ZPP_STD_STRU-KDATB.
FIELD ZPP_STD_STRU-KSCHL.
FIELD ZPP_STD_STRU-RATE.
MODULE TC001_MODIFY ON CHAIN-REQUEST.
ENDCHAIN.
FIELD ZPP_STD_STRU-FLAG
MODULE TC001_MARK ON REQUEST.
ENDLOOP.
MODULE TC001_USER_COMMAND.
process on value-request.
field zpp_std_stru-kschl module sam_type.
--------------------------------------------------------
MZPP027I01:
MODULE SAM_TYPE INPUT.
perform get_sam_type.
ENDMODULE. " SAM_TYPE INPUT
----------------------------------------------------
MZPP027F01:
FORM GET_SAM_TYPE .
data hv like help_value occurs 0 with header line.
data: begin of type occurs 0,
value like zpp_std_rate-kschl,
end of type.
data: selected like sy-tabix.
refresh: hv, type.
hv-tabname = 'ZPP_STD_RATE'.
hv-fieldname = 'KSCHL'.
append hv.
type-value = 'CUT'.
APPEND TYPE.
TYPE-VALUE = 'SEW'.
APPEND TYPE.
TYPE-VALUE = 'WASH'.
APPEND TYPE.
TYPE-VALUE = 'PACK'.
APPEND TYPE.
clear selected.
perform get_values tables hv type
changing selected.
read table type index selected.
if sy-subrc eq 0.
ZPP_STD_STRU-kschl = type-value.
endif.
ENDFORM. " GET_SAM_TYPE
*&------------------------------------------------
form get_values tables p_hv
p_value
changing p_selected.
call function 'HELP_VALUES_GET_WITH_VALUE'
exporting
given_value = '1'
importing
select_index = p_selected
tables
fields = p_hv
valuetab = p_value.
ENDFORM. " GET_VALUES
定義此字段的domain ,設置其value range, 可控制只輸入某幾個值
---------------------------------------------------------------------------------------------
Example code for for calling an SAP F4 search manually from a ABAP report selection screen.
**************************************************************
*Call search help.
DATA: return_tab type STANDARD TABLE OF DDSHRETVAL.
PARAMETERS p_test(10) type c.
************************************************
*AT SELECTION-SCREEN
AT SELECTION-SCREEN on VALUE-REQUEST FOR p_test.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'T161' "mandatory - dictionary table type
FIELDNAME = 'BSART' "mandatory - dictionary field type
SEARCHHELP = 'H_T161' "shelp
SHLPPARAM = 'BSART' "field value to return from shelp
TABLES
RETURN_TAB = return_tab
EXCEPTIONS
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
NO_VALUES_FOUND = 4
OTHERS = 5.
-----------------------------------------------------------------
zmm001:
MODULE F4_SC_VENDOR INPUT.
DATA: WA_LINE LIKE SY-TABIX.
DATA: DYNPFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
C_REPID LIKE SY-REPID VALUE 'SAPMZMM001'.
DATA: WA_MATNR LIKE MARA-MATNR.
data l_werks like WA_TP_HEADER-WERKS.
clear dynpfields. refresh dynpfields.
get cursor field dynpfields-fieldname line dynpfields-stepl.
move 'WA_TP_HEADER-WERKS' to dynpfields-fieldname.
append dynpfields.
call function 'DYNP_VALUES_READ'
exporting
dyname = c_repid
dynumb = sy-dynnr
tables
dynpfields = dynpfields
exceptions
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
others = 9.
if sy-subrc eq 0.
l_werks = dynpfields-fieldvalue.
ENDIF.
if l_werks = '3011'.
DATA: BEGIN OF htab OCCURS 2.
INCLUDE STRUCTURE dynpread.
DATA: END OF htab.
DATA: BEGIN OF IHELP_FIELDS OCCURS 20.
INCLUDE STRUCTURE HELP_VALUE.
DATA: END OF IHELP_FIELDS.
DATA: BEGIN OF HELPTAB OCCURS 100,
FELD(40),
END OF HELPTAB.
"DATA: DYNPFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE .
data: disp.
data: it_vendor like ZSC_VENDOR occurs 0 with header line.
refresh it_vendor.
select * into table it_vendor
from ZSC_VENDOR.
* "Append billing doc, so doc into search help
refresh helptab.
loop at it_vendor.
shift it_vendor-lifnr left deleting leading '0'.
helptab = it_vendor-lifnr.
append helptab.
helptab = it_vendor-name.
append helptab.
endloop.
* Tabellenstruktur vorgeben
refresh ihelp_fields.
ihelp_fields-tabname = 'ZSC_VENDOR'.
ihelp_fields-fieldname = 'lifnr'.
ihelp_fields-selectflag = 'X'.
append ihelp_fields.
ihelp_fields-tabname = 'ZSC_VENDOR'.
ihelp_fields-fieldname = 'name'.
ihelp_fields-selectflag = ' '.
append ihelp_fields.
describe table helptab lines sy-tfill.
check sy-tfill > 0.
* F4 - Hilfe Anzeigen
call function 'HELP_VALUES_GET_WITH_TABLE'
exporting
display = disp
fieldname = 'lifnr'
tabname = 'ZSC_VENDOR'
importing
select_value = WA_TP_HEADER-BKTXT
tables
fields = ihelp_fields
valuetab = helptab.
shift WA_TP_HEADER-BKTXT left deleting leading space.
endif.
ENDMODULE. " F4_SC_VENDOR INPUT
---------------------------------------------------------------------------------------------
zsd161:
MODULE F4_VENDOR INPUT.
DATA return_tab TYPE TABLE OF DDSHRETVAL with header line. "Picked results from F4
field-symbols <f1> .
clear dynpfields. refresh dynpfields.
get cursor field dynpfields-fieldname line dynpfields-stepl.
assign (dynpfields-fieldname) to <f1>.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'LFA1' "mandatory - dictionary table type
FIELDNAME = 'LIFNR' "mandatory - dictionary field type
* SEARCHHELP = 'H_T161' "shelp
SHLPPARAM = 'LIFNR' "field value to return from shelp
TABLES
RETURN_TAB = return_tab
EXCEPTIONS
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
NO_VALUES_FOUND = 4
OTHERS = 5.
IF SY-SUBRC = 0.
read table return_tab.
<f1> = return_tab-fieldval.
ENDIF.
ENDMODULE. " F4_VENDOR INPUT
*&---------------------------------------------------------------------*
*& Module F4_WASH INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE F4_WASH INPUT.
tables ZTWTYP.
data it_ZTWTYP like ZTWTYP occurs 0 with header line .
data: disp.
data wa_wash(40) type c.
refresh it_ZTWTYP.
select * into table it_ZTWTYP
from ZTWTYP.
loop at it_ZTWTYP.
helptab = it_ZTWTYP-ZZWTYP.
append helptab.
helptab = it_ZTWTYP-DESCRIPTION.
append helptab.
endloop.
refresh ihelp_fields.
ihelp_fields-tabname = 'ZTWTYP'.
ihelp_fields-fieldname = 'ZZWTYP'.
ihelp_fields-selectflag = ''.
append ihelp_fields.
ihelp_fields-tabname = 'ZTWTYP'.
ihelp_fields-fieldname = 'DESCRIPTION'.
ihelp_fields-selectflag = 'X'.
append ihelp_fields.
describe table helptab lines sy-tfill.
check sy-tfill > 0.
* F4 - Hilfe Anzeigen
call function 'HELP_VALUES_GET_WITH_TABLE'
exporting
display = disp
fieldname = 'DESCRIPTION'
tabname = 'ZTWTYP'
importing
select_value = wa_wash
tables
fields = ihelp_fields
valuetab = helptab.
WA_ZSD_GARMENT_PRT2-ZWASH_MTD = wa_wash.
*clear dynpfields. refresh dynpfields.
*get cursor field dynpfields-fieldname line dynpfields-stepl.
*assign (dynpfields-fieldname) to <f1>.
*refresh return_tab.
* CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
* EXPORTING
* TABNAME = 'ZTWTYP' "mandatory - dictionary table type
* FIELDNAME = 'ZZWTYP' "mandatory - dictionary field type
** SEARCHHELP = 'H_T161' "shelp
* SHLPPARAM = 'ZZWTYP' "field value to return from shelp
* TABLES
* RETURN_TAB = return_tab
* EXCEPTIONS
* FIELD_NOT_FOUND = 1
* NO_HELP_FOR_FIELD = 2
* INCONSISTENT_HELP = 3
* NO_VALUES_FOUND = 4
* OTHERS = 5.
* IF SY-SUBRC = 0.
* read table return_tab.
* <f1> = return_tab-fieldval.
* ENDIF.
ENDMODULE. " F4_WASH INPUT
*Internal Table for Link Document of Search help
DATA: BEGIN OF htab OCCURS 2.
INCLUDE STRUCTURE dynpread.
DATA: END OF htab.
DATA: BEGIN OF IHELP_FIELDS OCCURS 20.
INCLUDE STRUCTURE HELP_VALUE.
DATA: END OF IHELP_FIELDS.
DATA: BEGIN OF HELPTAB OCCURS 0,
FELD(30),
END OF HELPTAB.
DATA: DYNPFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE .