SAP ABAP FUNCTIONS POPUP GET VALUES USER BUTTONS
From SapWiki
<nowiki>REPORT yrsspo450 MESSAGE-ID s4 LINE-SIZE 132.
- -----------------------------------------------------------------------
- Beispielprogramm für den Einsatz und den Aufruf des Funktionsbausteins
- POPUP_GET_VALUES_USER_BUTTONS
- Für den Customizing-Transport soll über ein Dialogfenster eine
- Korrekturnummer erfragt werden. Aus dem Dialogfenster heraus soll
- es möglich sein, die Korrekturnummer zu suchen und eine neue
- Korrektur anzulegen. An die Korrektur werden bestimmte Anforderungen
- gestellt: es muß eine nicht freigegebene Korrektur sein, die dem
- Anwender selbst gehört und die nicht gesperrt ist. Die F4-Hilfe
- soll nur Korrekturen anbieten, die diesen Bedingungen genügen.
- Der Funktionsbaustein POPUP_GET_VALUES_USER_BUTTONS wird dabei
- verwendet, um die Oberfläche zu realisieren. Die Prüfungen sowie
- die Absprünge zum Suchen und Anlegen der Korrektur sowie die
- einschränkende F4-Hilfe müssen selbst programmiert werden.
- -----------------------------------------------------------------------
DATA: subrc LIKE sy-subrc,
corr_nr LIKE e070-trkorr.
INCLUDE <icon>.
DATA ld_a(1) TYPE c. DATA gs_sval LIKE sval. DATA gt_sval TYPE TABLE OF sval.
- Routine zum Erfragen der Korrekturnummer aufrufen
PERFORM get_monto_pago CHANGING subrc. IF subrc = 0.
- action
ELSE.
- Anwender hat Aktion abgebrochen
WRITE: / 'Cancelado por usuario'.
ENDIF.
- &---------------------------------------------------------------------*
- & Form get_monto_pago
- &---------------------------------------------------------------------*
- text
- ----------------------------------------------------------------------*
- -->SUBRC text
- -->CORR_NUMBER text
- ----------------------------------------------------------------------*
FORM get_monto_pago CHANGING subrc.
- -----------------------------------------------------------------------
- Korrekturnummer erfragen
- Schnittstelle:
- CORR_NUMBER Korrekturnummer
- SUBRC = 0 Korrekturnummer ist richtig gefüllt.
- SUBRC <> 0 Funktion vom Anwender abgebrochen (F12)
- -----------------------------------------------------------------------
- Tabelle mit Feldangaben für das Dialogfenster
DATA: BEGIN OF fields OCCURS 1.
INCLUDE STRUCTURE sval.
DATA: END OF fields,
- Rückgabewert
returncode(1) TYPE c,
- Titel des Dialogfensters
popup_title(30) TYPE c,
- Text der Standardrucktaste
ok_pushbuttontext LIKE svalbutton-buttontext,
icon_ok_push LIKE icon-name,
quickinfo_ok_push LIKE smp_dyntxt-text,
- Text zur ersten zusätzlichen Drucktaste
first_pushbutton LIKE svalbutton-buttontext,
icon_button_1 LIKE icon-name,
quickinfo_button_1 LIKE smp_dyntxt-text,
- Text zur zweiten zusätzlichen Drucktaste
second_pushbutton LIKE svalbutton-buttontext,
icon_button_2 LIKE icon-name,
quickinfo_button_2 LIKE smp_dyntxt-text.
- Überschrift des Dialogfensters festlegen
popup_title = 'Pago en Efectivo(en Pesos)'.
CLEAR gs_sval. gs_sval-tabname = 'VBRK'. gs_sval-fieldname = 'NETWR'. gs_sval-field_attr = '03'. gs_sval-FIELDTEXT = 'Monto Factura'. gs_sval-field_obl = 'X'. gs_sval-value = 100. APPEND gs_sval TO gt_sval.
CLEAR gs_sval. gs_sval-tabname = 'VBRK'. gs_sval-fieldname = 'WAERK'. gs_sval-field_attr = '04'. gs_sval-value = 'CLP'. APPEND gs_sval TO gt_sval.
CLEAR gs_sval. gs_sval-tabname = 'BKPF'. gs_sval-fieldname = 'WAERS'. gs_sval-field_attr = '04'. gs_sval-value = 'CLP'. APPEND gs_sval TO gt_sval.
CLEAR gs_sval. gs_sval-tabname = 'VBRK'. gs_sval-fieldname = 'KUNRG'. gs_sval-field_attr = '03'. gs_sval-value = '1'. APPEND gs_sval TO gt_sval.
CLEAR gs_sval. gs_sval-tabname = 'KNA1'. gs_sval-fieldname = 'NAME1'. gs_sval-field_attr = '03'. gs_sval-value = 'Pepe'. APPEND gs_sval TO gt_sval.
CLEAR gs_sval. gs_sval-tabname = 'BSEG'. gs_sval-fieldname = 'WRBTR'. gs_sval-FIELDTEXT = 'Monto del Pago'. gs_sval-field_obl = 'X'. gs_sval-value = 100. APPEND gs_sval TO gt_sval.
- ok_pushbuttontext = 'Weiter'(025).
icon_ok_push = icon_okay.
- QUICKINFO_OK_PUSH = 'Weiter'(025).
first_pushbutton = 'Ejecutar'. icon_button_1 = icon_execute_object. quickinfo_button_1 = 'Ejecutar'.
CALL FUNCTION 'POPUP_GET_VALUES_USER_BUTTONS'
EXPORTING popup_title = popup_title
programname = 'YRSSPO450'
formname = 'HANDLE_CODE'
- F4_PROGRAMNAME = 'RSSPO450'
- F4_FORMNAME = 'CORRNR_VALUE_HELP'
ok_pushbuttontext = ok_pushbuttontext
icon_ok_push = icon_ok_push
quickinfo_ok_push = quickinfo_ok_push
first_pushbutton = first_pushbutton
icon_button_1 = icon_button_1
quickinfo_button_1 = quickinfo_button_1
second_pushbutton = second_pushbutton
icon_button_2 = icon_button_2
quickinfo_button_2 = quickinfo_button_2
IMPORTING returncode = returncode
TABLES fields = gt_sval.
IF returncode EQ 'A'.
- Anwender hat die Aktion abgebrochen
subrc = '4'.
- CLEAR corr_number.
ELSE.
- Anwender hat eine gültige Korrekturnummer angegeben
subrc = '0'. READ TABLE gt_sval into gs_sval INDEX 6.
ENDIF.
ENDFORM. "get_monto_pago
- &---------------------------------------------------------------------*
- & Form HANDLE_CODE
- &---------------------------------------------------------------------*
- text
- ----------------------------------------------------------------------*
- -->FIELDS text
- -->CODE text
- -->ERROR text
- -->SHOW_POPUP text
- ----------------------------------------------------------------------*
FORM handle_code TABLES fields STRUCTURE sval
USING code
CHANGING error STRUCTURE svale show_popup.
DATA ld_m1 LIKE vbrk-netwr.
DATA ld_m2 LIKE vbrk-netwr.
- Routine zur Behandlung der OkCodes des Dialogfensters
CASE code.
WHEN 'FURT'.
CLEAR error.
show_popup = 'X'.
READ TABLE fields INDEX 1.
MOVE fields-value TO ld_m1.
READ TABLE fields INDEX 6.
MOVE fields-value TO ld_m2.
IF ld_m2 = 0.
CLEAR error.
error-errortab = 'BSEG'.
error-errorfield = 'WRBTR'.
error-msgty = 'E'.
error-msgid = 'V1'.
error-msgno = '899'.
error-msgv1 = 'Monto Pago debe ser mayor que cero'.
return.
ENDIF.
IF ld_m2 > ld_m1.
CLEAR error.
error-errortab = 'BSEG'.
error-errorfield = 'WRBTR'.
error-msgty = 'E'.
error-msgid = 'V1'.
error-msgno = '899'.
error-msgv1 = 'Monto Pago mayor Monto Factura'.
return.
ENDIF.
WHEN 'COD1'.
READ TABLE fields INDEX 1.
MOVE fields-value TO ld_m1.
READ TABLE fields INDEX 6.
MOVE fields-value TO ld_m2.
clear show_popup.
IF ld_m2 = 0.
CLEAR error.
error-errortab = 'BSEG'.
error-errorfield = 'WRBTR'.
error-msgty = 'E'.
error-msgid = 'V1'.
error-msgno = '899'.
error-msgv1 = 'Monto Pago debe ser mayor que cero'.
show_popup = 'X'.
return.
ENDIF.
IF ld_m2 > ld_m1.
CLEAR error.
error-errortab = 'BSEG'.
error-errorfield = 'WRBTR'.
error-msgty = 'E'.
error-msgid = 'V1'.
error-msgno = '899'.
error-msgv1 = 'Monto Pago mayor Monto Factura'.
show_popup = 'X'.
else.
show_popup = ' '.
ENDIF.
ENDCASE.
ENDFORM. "HANDLE_CODE
- Text elements
- ----------------------------------------------------------
- 037 Crear orden
- 040 Crear corrección
- 045 Txt.corrección
- 005 Nº corrección
- 010 Usuario ha cancelado diálogo
- 015 Indicar Nº corrección
- 020 Nº corrección
- 025 Cont.
- 030 Buscar
- 035 Crear
- 036 Buscar por órdenes
- Selection texts
- ----------------------------------------------------------
- EXAMPLE1 Ejemplo 1
- EXAMPLE2 Ejemplo 2
- EXAMPLE3 Ejemplo 3
- EXAMPLE4 Ejemplo 4