‎2009 Aug 26 8:43 AM
Hi guriji,
I want to insert three new date in place of previous date. these date are BLDAT BUDAT CPUDT when we trigred ' UPD' button.
In our program, i write this condition for this plz tell me whether this write or wrong.
REPORT Z_MKPF_MODIFIED.
DATA: OKCODE LIKE SY-UCOMM.
TABLES : MKPF, BKPF.
TYPES : BEGIN OF T_ITAB,
BLDAT TYPE BLDAT,
BUDAT TYPE BUDAT,
CPUDT TYPE CPUDT,
END OF T_ITAB.
TYPES : BEGIN OF T_KTAB,
BLDAT TYPE BLDAT,
BUDAT TYPE BUDAT,
MONAT TYPE MONAT,
CPUDT TYPE CPUDT,
END OF T_KTAB.
DATA : ITAB TYPE STANDARD TABLE OF T_ITAB WITH HEADER LINE,
KTAB TYPE STANDARD TABLE OF T_KTAB WITH HEADER LINE..
MODULE USER_COMMAND_0101 INPUT.
OKCODE = SY-UCOMM.
CLEAR SY-UCOMM.
CASE OKCODE.
WHEN 'DISP'.
DATA : TEST LIKE MKPF-MBLNR.
TEST = MKPF-MBLNR.
SELECT SINGLE BLDAT BUDAT CPUDT FROM MKPF INTO ITAB WHERE MBLNR = MKPF-MBLNR.
WHEN 'UPD'.
IF TEST = MKPF-MBLNR AND MKPF-BLDAT = '20090325'.
IF SY-SUBRC = 0.
UPDATE MKPF .
ENDIF.ENDIF.
WHEN 'BACK'.
CALL SCREEN 100.
ENDCASE.
ENDMODULE.
----
MODULE USER_COMMAND_0102 INPUT.
OKCODE = SY-UCOMM.
CLEAR SY-UCOMM.
CASE OKCODE.
WHEN 'DISP'.
SELECT SINGLE BLDAT BUDAT MONAT CPUDT FROM BKPF INTO KTAB WHERE BELNR = BKPF-BELNR AND BLDAT = BKPF-BLDAT.
WHEN 'BACK'.
CALL SCREEN 100.
ENDCASE.
ENDMODULE.
thanks.
‎2009 Aug 26 8:52 AM
Try
WHEN 'UPD'.
...
UPDATE MKPF SET BLDAT = ITAB-BLDAT
BUDAT = ITAB-BUDAT
CPUNDT = ITAB-CPUDT
WHERE MBLNR = MPKPF-MBLNR
AND MJAHR = MPKPF-MJARH.
I assumed that MPKPF-MBLNR and MPKPF-MJARH these are fields on screen which you fill in. Then based on them you can update your dates so entry specified in DB.
Regards
Marcin
‎2009 Aug 26 8:52 AM
Try
WHEN 'UPD'.
...
UPDATE MKPF SET BLDAT = ITAB-BLDAT
BUDAT = ITAB-BUDAT
CPUNDT = ITAB-CPUDT
WHERE MBLNR = MPKPF-MBLNR
AND MJAHR = MPKPF-MJARH.
I assumed that MPKPF-MBLNR and MPKPF-MJARH these are fields on screen which you fill in. Then based on them you can update your dates so entry specified in DB.
Regards
Marcin