2007 Nov 02 1:54 AM
my req is 2 fields in z table & have to validate.
i have done in 01 and 05 events.but after error msg when entry is incorrect it is not directly showing table control instead of that first its showin error msg and if i enter then its showing table control and also i'm loosing the values what i enter..and some time code is not working if i enter wrong values..basically when i create entry without saving if i change it , the values are not refelecting inside code... any ideas.i have pasted my code
FORM new_entry.
DATA lw_datbi TYPE datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = zprctr-zoldprctr
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'OLD PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
MESSAGE 'OLD PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 8.
EXIT.
ENDIF.
CLEAR lw_datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = zprctr-znewprctr
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'NEW PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
To make table control editable.
LOOP AT SCREEN.
screen-input = 1.
MODIFY SCREEN.
ENDLOOP.
MESSAGE 'NEW PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 8.
EXIT.
ENDIF.
ENDFORM. "NEW_ENTRY
&----
*& Form BEFORE_SAVE
&----
text
----
FORM before_save.
LOOP AT extract.
IF extract+23(1) = 'U'.
DATA lw_datbi TYPE datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = zprctr-zoldprctr
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'OLD PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
MESSAGE 'OLD PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 8.
EXIT.
ENDIF.
CLEAR lw_datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = extract+13(10)
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'NEW PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
To make table control editable.
LOOP AT SCREEN.
screen-input = 1.
MODIFY SCREEN.
ENDLOOP.
MESSAGE 'NEW PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 4.
EXIT.
ENDIF.
total3(10) = extract3(10).
total13(10) = extract13(10).
MODIFY total FROM total INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDFORM. "BEFORE_SAVE
my req is 2 fields in z table & have to validate.
i have done in 01 and 05 events.but after error msg when entry is incorrect it is not directly showing table control instead of that first its showin error msg and if i enter then its showing table control and also i'm loosing the values what i enter..and some time code is not working if i enter wrong values..basically when i create entry without saving if i change it , the values are not refelecting inside code... any ideas.i have pasted my code
FORM new_entry.
DATA lw_datbi TYPE datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = zprctr-zoldprctr
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'OLD PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
MESSAGE 'OLD PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 8.
EXIT.
ENDIF.
CLEAR lw_datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = zprctr-znewprctr
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'NEW PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
To make table control editable.
LOOP AT SCREEN.
screen-input = 1.
MODIFY SCREEN.
ENDLOOP.
MESSAGE 'NEW PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 8.
EXIT.
ENDIF.
ENDFORM. "NEW_ENTRY
&----
*& Form BEFORE_SAVE
&----
text
----
FORM before_save.
LOOP AT extract.
IF extract+23(1) = 'U'.
DATA lw_datbi TYPE datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = zprctr-zoldprctr
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'OLD PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
MESSAGE 'OLD PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 8.
EXIT.
ENDIF.
CLEAR lw_datbi.
SELECT SINGLE datbi
FROM cepc
INTO lw_datbi
WHERE prctr = extract+13(10)
AND kokrs = RTKA.
IF sy-subrc = 0.
IF lw_datbi < sy-datum.
MESSAGE 'NEW PROFIT CENTER IS OBSOLETE' TYPE 'E'.
ENDIF.
ELSE.
To make table control editable.
LOOP AT SCREEN.
screen-input = 1.
MODIFY SCREEN.
ENDLOOP.
MESSAGE 'NEW PROFIT CENTER NOT VALID' TYPE 'E'.
sy-subrc = 4.
EXIT.
ENDIF.
total3(10) = extract3(10).
total13(10) = extract13(10).
MODIFY total FROM total INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDFORM. "BEFORE_SAVE
2007 Nov 02 9:19 AM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |