Dropdown-Liste zur Monatsauswahl mit VRM_SET_VALUES

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Dropdown-Liste zur Monatsauswahl mit VRM_SET_VALUES

Beitrag von Julia.hrtm (ForumUser / 9 / 1 / 4 ) »
Hallo,

ich möchte eine Transaktion machen, mit welcher ich Stundenabrechnungen für den jeweiligen Monat mir anzeigen lassen kann.
Dazu nutze ich im Transaktionsfenster eine Dropdown Liste, aus welcher man den Monat wählen kann. Die Monate berechnen sich aus dem aktuellen Datum, sodass am Ende nur die letzten 12 Monate angezeigt werden.
Im Transaktionsfenster kann man den Monat auswählen, jedoch sobald man die Transaktion ausführen möchte springt SAP zurück ins Menü. Aus der Monatsauswahl möchte ich eigentlich zurück aufs Datum im Zahlenformat für erster und letzter Monat zurückführen um diese Werte dann für die weitere Selektion zu nutzen.

Hier der grundlegende Code:

Code: Alles auswählen.

INCLUDE z_pp_payrolltop.
INCLUDE z_pp_payrollc01.
INCLUDE z_pp_payrollf01.
DATA go_event TYPE REF TO lcl_event.
DATA go_controller TYPE REF TO lcl_controller.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
  zcl_utilities=>initialize( ).
  zcl_utilities=>load_variant( ).
*----------------------------------------------------------------------*
* CREATE DROPDOWN MENU FOR MONTH SELECTION
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  PERFORM fill_dropdown_pmonat.

*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
  zcl_utilities=>set_runtime( 1 ).
  PERFORM process_selected_month.

...

CREATE OBJECT go_event.
CREATE OBJECT go_controller.
go_controller->main( ).

*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
* FORM DROPDOWN MENU
*----------------------------------------------------------------------*
FORM fill_dropdown_pmonat.
  DATA: gt_vrm            TYPE vrm_values,
        gt_vrm_sorted     TYPE TABLE OF vrm_value,
        gs_vrm            TYPE vrm_value,
        gv_month          TYPE d,
        gv_year           TYPE char4,
        gv_text           TYPE char15,
        gv_months         TYPE t5a4a-dlymo,
        gv_sort_key       TYPE char6,
        gv_index          TYPE sytabix.

  CLEAR gt_vrm.
  CLEAR gt_vrm_sorted.
  gv_date = sy-datum.
  gv_months = -1.

  DO 12 TIMES.
    gv_month = gv_date+4(2).
    gv_year = gv_date(4).

    CALL FUNCTION 'Z_GET_MONTH_NAME'
      EXPORTING
        month           = gv_month
      IMPORTING
        month_name_char = gv_text.

    CONCATENATE gv_year gv_month INTO gv_sort_key.

    gs_vrm-key = gv_sort_key.
    gs_vrm-text = gv_text.
    INSERT gs_vrm INTO TABLE gt_vrm.

    CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
      EXPORTING
        date      = gv_date
        days      = 0
        months    = gv_months
        years     = 0
        signum    = '-'
      IMPORTING
        calc_date = gv_date.
  ENDDO.

  SORT gt_vrm BY key ASCENDING.

  LOOP AT gt_vrm INTO gs_vrm.
    gv_index = sy-tabix.
    gs_vrm-key = gs_vrm-key(4).
    MODIFY gt_vrm FROM gs_vrm INDEX gv_index.
  ENDLOOP.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = 'P_MONAT'
      values = gt_vrm.

ENDFORM.                    "fill_dropdown_pmonat

*----------------------------------------------------------------------*
* FORM PROCESS SELECTED MONTH
*----------------------------------------------------------------------*
FORM process_selected_month.
  DATA: gv_year    TYPE char4,
        gv_month_name TYPE char15,
        gv_month   TYPE d,
        gv_start   TYPE sy-datum,
        gv_end     TYPE sy-datum.

  SPLIT p_monat AT space INTO gv_year gv_month_name.

  CALL FUNCTION 'Z_GET_MONTH_NUMBER'
    EXPORTING
      month_name_char = gv_month_name
    IMPORTING
      month           = gv_month.

  CONCATENATE gv_year gv_month '01' INTO gv_start.

  CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
    EXPORTING
      day_in            = gv_start
    IMPORTING
      last_day_of_month = gv_end.

  gv_start_date = gv_start.
  gv_end_date = gv_end.
ENDFORM.                    "process_selected_month
Screenshot 2025-01-16 135639.png

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Dropdown-Liste zur Monatsauswahl mit VRM_SET_VALUES

Beitrag von a-dead-trousers (Top Expert / 4416 / 224 / 1186 ) »
EDIT:
Unter START-OF-SELECTION fehlt eine Verarbeitung die irgendetwas sinnvolles macht.
z.B. WRITE für einen Bildschirmliste oder CALL SCREEN für ein eigenes Dynpro.
In der jetztigen Form wird nur das Start- und Endedatum berechnet, die zwei Instanzen go_event und go_controller instanziert und das wars.

EDIT 2:
Wenn überhaupt würde ich mir die MAIN-Methode mal anschauen. Da scheint eher was nicht zu passen weil das der einzige Code ist der überhaupt ausgeführt wird..
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Dropdown-Liste zur Monatsauswahl mit VRM_SET_VALUES

Beitrag von DeathAndPain (Top Expert / 1962 / 261 / 415 ) »
Ich finde es auch schade, dass Du in ein Programm mit offenbar objektorientiertem Ansatz doch wieder olle Formroutinen reinmischst. Da wäre eine nette lokale Klasse (die es ja anscheinend sogar in Form von lcl_controller gibt) besser. (Auch der Inhalt der Form fill_dropdown_monat ist in altertümlichem ABAP geschrieben und enthält zudem komplett nutzlose CLEAR-Befehle (lokale Variablen starten bei jedem Aufruf stets in initialisierter Form (außer sie werden mit STATICS anstelle von DATA deklariert)).

Seite 1 von 1

Vergleichbare Themen

10
Antw.
5087
Views
Dropdown Liste Debuggen
von erubadhron » 29.03.2017 09:50 • Verfasst in ABAP® Core
4
Antw.
3583
Views
Fehler bei der Dropdown-Liste
von LadyRosely » 24.10.2016 14:21 • Verfasst in Dialogprogrammierung
5
Antw.
5734
Views
Dropdown-Liste & Workprozess durchgestartet
von ChrisB85 » 06.09.2007 08:10 • Verfasst in Dialogprogrammierung
2
Antw.
1373
Views
CL_GUI_ALV_GRID - Dropdown Liste mit Hotspot
von Aba » 29.07.2020 10:16 • Verfasst in ABAP® für Anfänger
3
Antw.
5963
Views
editierbares ALV DropDown Liste Alias => Anzeigeproblem
von ABAPStud » 24.10.2012 20:39 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.