‎2006 Jul 10 8:29 AM
hi allllll
I've some problem in user selection parameter, I want DD.YYYY format in paratermter .
for example.
( go to MC(A Transaction code in that screen we can see Period to analyze table, under this tab v see month format).i want that format. anybody help me pls
‎2006 Jul 10 8:31 AM
‎2006 Jul 10 8:34 AM
like krishnan said u have to defind type C, length 7 parameter.....and in the validation part check if its in the DD.YYYY format.
-Aarthi.
‎2006 Jul 10 8:33 AM
use the same parameter type.
parameters: p_data type S001-SPBUP.
you should be getting MM.YYYY format.
‎2006 Jul 10 8:34 AM
If its period it should MMYYYY, you can use the data element SPMON for the parameter to refer to and it will have the Period / Year format that you are looking for.
Regards,
Ravi
Note : Please mark all the helpful answers and close the thread if the issue is resolved.
‎2006 Jul 10 8:35 AM
hi Muthu,
Do tbis way...
data : v_date type d,
v_res type d,
v_res1 type d.
v_date = sy-datum.
v_res1 = v_date+0(4).
v_res = v_date+4(2).
concatenate v_res v_res1 in to v_res separated by '.'.
write : v_res.Regards,
Santosh
‎2006 Jul 10 8:37 AM
hi krishna negi and sharthkumar
u should go MC(A u see the format after u tell, i want range format
‎2006 Jul 10 8:42 AM
check it out.
REPORT ZZSL_SPBUP .
tables: S001.
select-options: SL_SPBUP for S001-SPBUP.
initialization.
SL_SPBUP-LOW = '200401'.
SL_SPBUP-HIGH = '200402'.
append SL_SPBUP.
‎2006 Jul 11 11:24 AM
Hi Muthu,
Try this code this will work out....put the perform accordingly....
PARAMETERS: S_SPBUP LIKE S062-SPBUP.
DATA : V_DAYS TYPE P VALUE 01, " No.of Days
V_DATFM LIKE USR01-DATFM, " Date format
V_DS TYPE C.
***********************************************************************
PERFORM GET_DATE USING V_DAYS CHANGING V_FROMDATE .
*--- Perform to get no.of days of the month
PERFORM GET_NO_OF_DAYS.
*--- Perform to get posting to-date
PERFORM GET_DATE USING V_DAYS CHANGING V_TODATE.
*--- Perform to get posting period date
PERFORM GET_POSTING_PERIOD_DATE.
&----
*& Form GET_POSTING_DATE
&----
To get no.of days of the month
----
FORM GET_NO_OF_DAYS.
DATA: LV_DATE TYPE D.
MOVE V_FROMDATE TO LV_DATE.
CALL FUNCTION 'HR_E_NUM_OF_DAYS_OF_MONTH'
EXPORTING
P_FECHA = LV_DATE
IMPORTING
NUMBER_OF_DAYS = V_DAYS.
ENDFORM.
&----
*& Form GET_DATE
&----
To get posting from-date
----
FORM GET_DATE USING F_DAYS CHANGING F_DATE.
DATA: LV_DAYS(2) TYPE N.
MOVE F_DAYS TO LV_DAYS.
CONCATENATE S_SPBUP0(4) S_SPBUP4(2) LV_DAYS INTO F_DATE.
ENDFORM.
&----
*& Form GET_POSTING_PERIOD_DATE
&----
To get posting period date
----
FORM GET_POSTING_PERIOD_DATE.
CASE V_DATFM.
WHEN '1'.
V_DS = '.'.
ENDCASE.
IF V_DATFM = '1'.
CONCATENATE V_FROMDATE+6(2) V_DS
V_FROMDATE+4(2) V_DS
V_FROMDATE+0(4)
INTO V_PDATE_LOW.
PERFORM DATE_TO_INTERNAL_FORMAT CHANGING V_PDATE_LOW.
CONCATENATE V_TODATE+6(2) V_DS
V_TODATE+4(2) V_DS
V_TODATE+0(4)
INTO V_PDATE_HIGH.
PERFORM DATE_TO_INTERNAL_FORMAT CHANGING V_PDATE_HIGH.
ENDIF.
ENDFORM.
&----
*& Form DATE_TO_INTERNAL_FORMAT
&----
To convert the date into internal format
----
FORM DATE_TO_INTERNAL_FORMAT CHANGING F_DATE.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
DATE_EXTERNAL = F_DATE
ACCEPT_INITIAL_DATE =
IMPORTING
DATE_INTERNAL = F_DATE
EXCEPTIONS
DATE_EXTERNAL_IS_INVALID = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
ENDIF.
ENDFORM.
Please reward points if you find this as a right solution
Regards,
Harini
‎2006 Jul 11 11:49 AM
Hi Muthu,
Could u please cut n paste this code in new abap editor and check the result.
tables : s031.
select-options: sl_spmon for s031-spmon modif id per.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SL_SPMON-LOW.
PERFORM MONAT_F4.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SL_SPMON-HIGH.
PERFORM MONAT_F4.
FORM MONAT_F4.
DATA: BEGIN OF MF_DYNPFIELDS OCCURS 1.
INCLUDE STRUCTURE DYNPREAD.
DATA: END OF MF_DYNPFIELDS.
DATA: MF_RETURNCODE LIKE SY-SUBRC,
MF_MONAT LIKE ISELLIST-MONTH,
MF_HLP_REPID LIKE SY-REPID.
FIELD-SYMBOLS: <MF_FELD>.
Wert von Dynpro lesen
GET CURSOR FIELD MF_DYNPFIELDS-FIELDNAME.
APPEND MF_DYNPFIELDS.
MF_HLP_REPID = SY-REPID.
DO 2 TIMES.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = MF_HLP_REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MF_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 01
INVALID_DYNPROFIELD = 02
INVALID_DYNPRONAME = 03
INVALID_DYNPRONUMMER = 04
INVALID_REQUEST = 05
NO_FIELDDESCRIPTION = 06
UNDEFIND_ERROR = 07.
IF SY-SUBRC = 3.
Aktuelles Dynpro ist Wertemengenbild
MF_HLP_REPID = 'SAPLALDB'.
ELSE.
READ TABLE MF_DYNPFIELDS INDEX 1.
Unterstriche durch Blanks ersetzen
TRANSLATE MF_DYNPFIELDS-FIELDVALUE USING '_ '.
EXIT.
ENDIF.
ENDDO.
IF SY-SUBRC = 0.
Konvertierung ins interne Format
CALL FUNCTION 'CONVERSION_EXIT_PERI_INPUT'
EXPORTING
INPUT = MF_DYNPFIELDS-FIELDVALUE
IMPORTING
OUTPUT = MF_MONAT
EXCEPTIONS
ERROR_MESSAGE = 1.
IF MF_MONAT IS INITIAL.
Monat ist initial => Vorschlagswert aus akt. Datum ableiten
MF_MONAT = SY-DATLO(6).
ENDIF.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
ACTUAL_MONTH = MF_MONAT
IMPORTING
SELECTED_MONTH = MF_MONAT
RETURN_CODE = MF_RETURNCODE
EXCEPTIONS
FACTORY_CALENDAR_NOT_FOUND = 01
HOLIDAY_CALENDAR_NOT_FOUND = 02
MONTH_NOT_FOUND = 03.
IF SY-SUBRC = 0 AND MF_RETURNCODE = 0.
ASSIGN (MF_DYNPFIELDS-FIELDNAME) TO <MF_FELD>. " ==>> note 148804
<MF_FELD> = MF_MONAT.
CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT'
EXPORTING
INPUT = MF_MONAT
IMPORTING
OUTPUT = MF_DYNPFIELDS-FIELDVALUE.
COLLECT MF_DYNPFIELDS.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = MF_HLP_REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = MF_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 01
INVALID_DYNPROFIELD = 02
INVALID_DYNPRONAME = 03
INVALID_DYNPRONUMMER = 04
INVALID_REQUEST = 05
NO_FIELDDESCRIPTION = 06
UNDEFIND_ERROR = 07. "<<== note 148804
ENDIF.
ENDIF.
ENDFORM. "MONAT_F4
Please reward helpful answers.