Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Change Date format

Former Member
0 Likes
1,712

Hi,

In my code..i want to change invoice date format from 20080415 to 15.04.2008...

plz check my code......

*******************

REPORT ZSD06_TEST1

NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZBDC.

TABLES : T100,

BKPF,

LIKP,

NASE.

DATA: L_MSTRING(480).

RANGES SELTAB FOR VBRK-VBELN.

RANGES SEL_RG_KSCHL FOR NASE-KSCHL.

RANGES RG_VBELN FOR VBRK-VBELN.

RANGES RG_KSCHL FOR NASE-KSCHL.

DATA: PM_VERMO LIKE NASE-VERMO.

DATA: BEGIN OF BDCDATA OCCURS 0.

INCLUDE STRUCTURE BDCDATA.

DATA: END OF BDCDATA.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE LIKP-VBELN,

BOLNR LIKE LIKP-BOLNR,

BELNR LIKE RF05L-BELNR,

GJAHR LIKE RF05L-GJAHR,

ZFBDT(10) TYPE C,

END OF ITAB.

***********************************************************

DATA: INVOICE_DATE TYPE VBRK-FKDAT.

DATA : L_DATE(8) TYPE D VALUE '20080415',

L_DATE2(10) TYPE C.

***********************************************************

DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA LD_ANSWER.

CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

EXPORTING

DEFAULTOPTION = 'N'

TEXTLINE1 = 'BDC to enter LR.NO & DATE in delivery,accounting doc.'

TEXTLINE2 = 'Do you want to continue ?'

TITEL = SY-TITLE

  • START_COLUMN = 25

  • START_ROW = 6

CANCEL_DISPLAY = ' '

IMPORTING

ANSWER = LD_ANSWER

EXCEPTIONS

OTHERS = 0.

IF LD_ANSWER NE 'J'.

MESSAGE S001.

LEAVE PROGRAM.

ENDIF.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\LRDETAIL.txt'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT ITAB.

CONCATENATE '00' ITAB-VBELN INTO ITAB-VBELN.

SELECT SINGLE * FROM LIKP WHERE VBELN = ITAB-VBELN.

IF SY-SUBRC <> 0.

MESSTAB-TCODE = 'VL02N'.MESSTAB-DYNAME = 'SAPMV50A'.MESSTAB-DYNUMB = '4004'.

MESSTAB-MSGTYP = 'E'. MESSTAB-MSGSPRA = 'E'.MESSTAB-MSGID = 'VL'.

MESSTAB-MSGNR = '302'. MESSTAB-MSGV1 = ITAB-VBELN. MESSTAB-MSGV2 = ''.

MESSTAB-MSGV3 = ''. MESSTAB-ENV = 'CTU'. MESSTAB-FLDNAME = 'LIKP-VBELN'.

APPEND MESSTAB.

ELSE.

PERFORM BDC_DYNPRO USING 'SAPMV50A' '4004'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LIKP-VBELN'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'LIKP-VBELN' ITAB-VBELN.

PERFORM BDC_DYNPRO USING 'SAPMV50A' '1000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=HTRA_T'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LIPS-MATNR(02)'.

PERFORM BDC_DYNPRO USING 'SAPMV50A' '2000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SICH_T'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LIKP-BOLNR'.

PERFORM BDC_FIELD USING 'LIKP-BOLNR' ITAB-BOLNR.

CALL TRANSACTION 'VL02N' USING BDCDATA MODE 'A' MESSAGES INTO MESSTAB.

REFRESH BDCDATA.

ENDIF.

***

IF ITAB-BELNR <> ' '.

**********************************************************************************************************

SELECT SINGLE FKDAT FROM VBRK INTO INVOICE_DATE WHERE VBELN = ITAB-BELNR.

IF ITAB-ZFBDT LT INVOICE_DATE.

MESSAGE 'invalid data' TYPE 'S'.

ENDIF.

CONCATENATE L_DATE6(2) L_DATE4(2) L_DATE+0(4) INTO L_DATE2 SEPARATED BY '.' .

  • WRITE: L_DATE2.

**********************************************************************************************************

SELECT SINGLE * FROM BKPF WHERE BELNR = ITAB-BELNR

AND GJAHR = ITAB-GJAHR.

IF SY-SUBRC = 0.

MESSTAB-TCODE = 'FB02'.MESSTAB-DYNAME = 'SAPMF05L'.MESSTAB-DYNUMB = '0100'.

MESSTAB-MSGTYP = 'E'. MESSTAB-MSGSPRA = 'E'.MESSTAB-MSGID = 'F5'.

MESSTAB-MSGNR = '238'. MESSTAB-MSGV1 = ITAB-BELNR. MESSTAB-MSGV2 = '1000'.

MESSTAB-MSGV3 = ITAB-GJAHR. MESSTAB-ENV = 'CTU'. MESSTAB-FLDNAME = 'RF05L-BELNR'.

APPEND MESSTAB.

ELSE.

PERFORM BDC_DYNPRO USING 'SAPMF05L' '0100'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF05L-BELNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'RF05L-BELNR' ITAB-BELNR.

PERFORM BDC_FIELD USING 'RF05L-BUKRS' '1000'.

PERFORM BDC_FIELD USING 'RF05L-GJAHR' ITAB-GJAHR.

PERFORM BDC_DYNPRO USING 'SAPMF05L' '0700'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF05L-ANZDT(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=PK'.

PERFORM BDC_DYNPRO USING 'SAPMF05L' '0301'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'BSEG-ZFBDT'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=AE'.

PERFORM BDC_FIELD USING 'BSEG-ZFBDT' ITAB-ZFBDT.

CALL TRANSACTION 'FB02' USING BDCDATA MODE 'A' MESSAGES INTO MESSTAB.

***

REFRESH BDCDATA.

ENDIF.

ENDIF.

*ENDIF.

ENDLOOP.

DATA: SPOOLID TYPE TSP01-RQIDENT. " Spool ID no.

NEW-PAGE PRINT ON

DESTINATION 'LOCL'

IMMEDIATELY ''

NO DIALOG.

LOOP AT MESSTAB WHERE MSGTYP EQ 'E'.

SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA

AND ARBGB = MESSTAB-MSGID

AND MSGNR = MESSTAB-MSGNR.

IF SY-SUBRC = 0.

L_MSTRING = T100-TEXT.

IF L_MSTRING CS '&1'.

REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.

REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.

REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.

REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.

ELSE.

REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.

ENDIF.

CONDENSE L_MSTRING.

WRITE: / MESSTAB-MSGTYP, L_MSTRING(250).

ELSE.

WRITE: / MESSTAB.

ENDIF.

IF MESSTAB-TCODE EQ 'FB02'.

DELETE ITAB WHERE BELNR = MESSTAB-MSGV1.

ENDIF.

ENDLOOP.

LOOP AT ITAB WHERE BELNR <> ' '.

SELTAB-SIGN = 'I'.

SELTAB-OPTION = 'EQ'.

SELTAB-LOW = ITAB-BELNR.

APPEND SELTAB.

ENDLOOP.

DESCRIBE TABLE SELTAB LINES SY-TABIX.

IF SY-TABIX IS INITIAL.

WRITE 'NO DATA EXIST for output(VF31)'.

ELSE.

SEL_RG_KSCHL-LOW = 'ZD00'.

APPEND SEL_RG_KSCHL.

SUBMIT SD70AV3A

WITH RG_VBELN IN SELTAB

WITH RG_KSCHL IN SEL_RG_KSCHL

WITH PM_VERMO EQ '2'

AND RETURN.

ENDIF.

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDFORM. "BDC_FIELD

******************************************************************

Plz tell me...

Thanks..

14 REPLIES 14
Read only

former_member156446
Active Contributor
0 Likes
1,632

ZDD = ZTEMP+3(2).

ZMMM = ZTEMP+0(3).

ZYYYY = ZTEMP+5(4).

concatenate zdd zmmm zyyyy into date_fiels seperated by '.'

Read only

asik_shameem
Active Contributor
0 Likes
1,632

Hi,

use the following code.

And '.' is not necessary since it automatically converts that date with '.'

* Change date format
  old_date(2)   = new_date+6(2).
  old_date+2(2) = new_date+4(2).
  old_date+4(4) = new_date(4).

Read only

Former Member
0 Likes
1,632

Hi,

data:v_date like sy-datum,

v_date1(10) type c.

Concatenate v_date6(2) v_date4(2) date+0(4) into vdate1.

RESULT = V_DATE1

Regards,

Raj.

Read only

anversha_s
Active Contributor
0 Likes
1,632

hi,

do this.

data: lc_date(8) type c,
         lc_op(10) type c.

move sy-datum to lc_date.

concatenate lcdate(2) lcdate+2(3) lcdate+5(4) into lc_op seperated by '.'.

write: lc_op.

Regards,

Anversha

Read only

Former Member
0 Likes
1,632

simply go to user settings ..SU01 tcode...select format tab...and choose whatever date format you want..

Reward if useful.

Dara.

Read only

Former Member
0 Likes
1,632

Hi Kumar,

Use below lines of code.

WRITE l_date to l_date2 DD/MM/YYYY.

Regards,Pranav

Read only

0 Likes
1,632

Hi Pranav, Do this way.

data:l_date type char10.

write '20080415' to l_date.
write l_date.
Regards, Venkat.O

Read only

Former Member
0 Likes
1,632

Hi All,

Plz let me know, where i change in my code and what...

Plz mention, from all reply i cann't pick the right one...

Thanks...

Read only

Former Member
0 Likes
1,632

Hi Prince,

You may use the function module "CONVERSION_EXIT_PDATE_INPUT".

Pass the the variable in which date is stored in format yyyymmdd.

In the importing parameter take input in any variable with type "BLADT"

CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'

EXPORTING

input = sy-datum

IMPORTING

output = l_v_date.

Please reward points if helpful.

Read only

0 Likes
1,632

Hi,

What is BLADT in ur statement...

Read only

Former Member
0 Likes
1,632

MY apologies... the FM name is "CONVERSION_EXIT_PDATE_OUTPUT" for your requirement.

Read only

Former Member
0 Likes
1,632

BLDAT is a standard data type. You may use other data type as well.

Read only

0 Likes
1,632

Hi,

But is not working.... when i execute it..it shows "invalid date" as an error...

Read only

Former Member
0 Likes
1,632

Hi,

Just move the value into a variable of character data type and of size 10.Say for example.

data :var(10),

date like sy-datum.

date = '20080415'

concatenate date6(2) '.' date4(2) '.' date+0(4) into var.

write : /1 var.

Output will be,

15.04.2008.

Note :

Friend, Please do not reveal the entire program for any reasons and seasons. It can be misused.

Regards,

Sankar.