Skip to Content
0
Former Member
Apr 09, 2010 at 03:25 AM

No Value at SELECT-OPTION: Selection Screen Called inside a FM

295 Views

Overview: Add select-option for Delivery Date(VBAK-VDATU) to tran VA05.Note: I cannot

-add Enhancements since we are using ECC 5.0

-implement VA05 BADI since there are no field exits available

Main Concern: Cannot get the value of SELECT-OPTION S_VDATU called inside a Function Module

FG TOP Include

FUNCTION-POOL zsdu001_fg.                   "MESSAGE-ID ..
TABLES: vbak.
DATA  : g_last_date TYPE sy-datum.
SELECTION-SCREEN BEGIN OF SCREEN 2000 AS WINDOW.
  SELECT-OPTIONS: s_vdatu FOR vbak-vdatu.
SELECTION-SCREEN END OF SCREEN 2000.

Function Module

FUNCTION ZSDU001.
CALL SELECTION-SCREEN 2000
     STARTING AT 10  20  "x1 y1
     ENDING   AT 95 13. "x2 y2

BREAK JUNE.
ENDFUNCTION.

No value at S_VDATU, so I edited the PBO of Selection Screen 2000.

PROCESS BEFORE OUTPUT.
MODULE default_val.
MODULE %_INIT_PBO.
MODULE default_val.
MODULE %_PBO_REPORT.
MODULE default_val.
MODULE %_PF_STATUS.
MODULE default_val.
MODULE %_S_VDATU.
MODULE default_val.
MODULE %_END_OF_PBO.
MODULE default_val.

MODULE default_val OUTPUT.
  CALL FUNCTION 'LAST_DAY_OF_MONTHS'
    EXPORTING
      day_in            = sy-datum
    IMPORTING
      last_day_of_month = g_last_date.
  PERFORM populate_default_svdatu.
ENDMODULE.                 " DEFAULT_VAL  OUTPUT

FORM populate_default_svdatu .
  TYPES: BEGIN OF lt_selopt,
          sign(1)    TYPE c,
          option(2)  TYPE c,
          low        LIKE sy-datum,
          high       LIKE sy-datum,
         END   OF lt_selopt.

  DATA: lv_selopt TYPE lt_selopt.

  MOVE: 'I'         TO lv_selopt-sign,
        'BT'        TO lv_selopt-option,
        sy-datum    TO lv_selopt-low,
        g_last_date TO lv_selopt-high.
  BREAK JUNE.
  APPEND lv_selopt TO s_vdatu.
ENDFORM.                    " POPULATE_DEFAULT_SVDATU

At the end, there's no value for S_VDATU. So calling a selection screen is not feasible?

So this will lead me Screen Painter?

Thanks.