‎2006 Dec 14 6:18 AM
Hi everyone,
I don't know what's wrong with my code. It says the error in the subject line and it only applies to selected records.
A conversion error occurred.
-
What happened?
-
The current screen processing was terminated, since a situation
occurred from which it could not continue processing.
This is probably due to an error in the current screen of the ABAP
program.
-
What can you do?
-
Please make a note of the actions and input which caused the error.
Please make a note of the actions and input which caused the error.
To resolve the problem, contact your
SAP system administrator.
Choose "Print" for a hard coopy of the termination message. You can
display and adminster short dump messages using Transaction ST22.
-
Error analysis
-
The program flow was interrupted and could not be resumed.
Program "ZADC_PGSPOSTING" tried to display fields on screen 1000. However, an
error occurred while this data was being converted.
-
How to correct the error
-
A conversion error occurred while the program was trying to
display data on the screen.
The ABAP output field and the screen field may not have the
same format.
Some field types require more characters on the screen than
in the ABAP program. For example, a date field on a screen needs
two characters more than it would in the program. Attemting to display
Screen name.............. "ZADC_PGSPOSTING"
Screen number............ 1000
Screen field............. "JTAB-GSAMT"
Error text............... "FX020: Data lost."
Further data:
" "
" "
" "
I don't know why it prompts this error, when in fact I usually pass the "JTAB-GSAMT" field to a variable. Please help me with my problem. I'm having a hard time deciphering it when in fact my program is easy to understand. I must have overlooked something. Thanks so much in advance.
Regards,
Anna
‎2006 Dec 14 6:19 AM
‎2006 Dec 14 6:23 AM
PROCESS BEFORE OUTPUT.
MODULE STATUS_1000.
MODULE get_name.
MODULE get_psgs.
LOOP AT JTAB WITH CONTROL CTRLPSGS CURSOR CTRLPSGS-TOP_LINE.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT JTAB.
MODULE SET_LINE_COUNT.
ENDLOOP.
MODULE EXIT01 AT EXIT-COMMAND.
MODULE USER_COMMAND_1000.
&----
*& Module GET_NAME OUTPUT
&----
text
----
MODULE GET_NAME OUTPUT.
siptot = 0.
data: kostl like pa0001-kostl, H_EMPNO(8) TYPE C.
IF zemp ne itab-pernr.
move: itab-pernr to zemp.
move: zemp to itab-pernr.
ELSEIF zemp EQ itab-pernr.
move: itab-pernr to zemp.
clear: itab.
refresh: jtab.
move: zemp to itab-pernr.
ENDIF.
clear: kostl.
SELECT SINGLE * FROM pa0002 WHERE pernr = itab-pernr
AND endda = '99991231'.
IF sy-subrc = 0.
CONCATENATE: pa0002-nachn ',' INTO itab-name.
CONCATENATE: itab-name pa0002-vorna INTO itab-name
SEPARATED BY SPACE.
ENDIF.
SELECT kostl into kostl FROM pa0001 WHERE pernr = itab-pernr
AND endda = '99991231'.
ENDSELECT.
SELECT ltext into itab-ltext FROM cskt WHERE kostl = kostl
AND datbi = '99991231' and spras eq 'EN'.
ENDSELECT.
WRITE ITAB-PERNR TO EMPNO.
shift empno left deleting leading '0'.
SELECT SINGLE * FROM zamc_mstr WHERE pernr = itab-pernr.
IF sy-subrc = 0.
SELECT sum( diff_sip ) INTO itab-siptot FROM zamc_deduction
WHERE amc_no = zamc_mstr-amc_no.
siptot = itab-siptot.
ENDIF.
IF zemp <> '00000000'.
APPEND itab.
ENDIF.
CLEAR itab.
ENDMODULE. " GET_NAME OUTPUT
&----
*& Module GET_PSGS OUTPUT
&----
text
----
MODULE GET_PSGS OUTPUT.
pstot = 0.
gstot = 0.
ectot = 0.
diff = 0.
REFRESH jtab.
SELECT * FROM zppsgsec WHERE pernr = zemp.
MOVE-CORRESPONDING zppsgsec TO jtab.
COLLECT jtab.
ENDSELECT.
CLEAR jtab.
SORT jtab BY datum.
LOOP AT jtab.
pstot = pstot + jtab-psamt.
gstot = gstot + jtab-gsamt.
ectot = ectot + jtab-ecamt.
AT LAST.
diff = gstot - siptot.
ENDAT.
ENDLOOP.
By the way, I'm using table viewer to display my results. Thanks.
Regards,
Anna