SAP ABAP FUNCTIONS POPUP GET VALUES USER BUTTONS

From SapWiki
Revision as of 21:16, 24 June 2026 by WikiSysop (talk | contribs) (Created page with " <nowiki>REPORT yrsspo450 MESSAGE-ID s4 LINE-SIZE 132. *----------------------------------------------------------------------- * Beispielprogramm für den Einsatz und den Auf...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
<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