2008 Jul 19 12:35 PM
hI,
I wanted to edit the ztable.... I am using table controls... so that we can do any overwriting any informations....
just please guide me what error is there in this code
I am getting there is an error occurred during processing of an internal table in conjuncton with fields or variable " ".
<removed_by_moderator>
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT it_zasset WITH CONTROL TC_CONTROL CURSOR TC_CONTROL-TOP_LINE.
MODULE PUT_DATA.
endloop.
PROCESS AFTER INPUT.
LOOP AT it_zasset.
MODULE GET_DATA.
ENDLOOP.
MODULE USER_COMMAND_0100.
MODULE EXIT AT EXIT-COMMAND.
PROGRAM
PROGRAM ZASETEDIT .
TABLES : ZASSET, ANLA.
data: begin of it_zasset occurs 0, " WITH EHADER LINE,
EQUNR LIKE ZASSET-EQUNR,
anln1 like ZASSET-anln1,
anln2
equnr
scannedby
scanneddate
scanningtime
updatedate
updatetime
SEL(1),
end of it_zasset.
DATA: FILL TYPE I.
DATA: OK_CODE LIKE SY-UCOMM.
CONTROLS: TC TYPE TABLEVIEW USING SCREEN '0100'.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ASSET100'.
SET TITLEBAR 'xxx'.
DESCRIBE TABLE it_zasset LINES FILL.
IF SY-TFILL IS INITIAL.
IF IT_ZASSET IS INITIAL.
SELECT EQUNR
anln1
anln2
equnr
scannedby
scanneddate
scanningtime
updatedate
updatetime
FROM ZASSET
INTO TABLE IT_zasset.
SORT IT_ZASSET.
endselect.
*ENDIF.
*IF SY-SUBRC = 0.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module PUT_DATA OUTPUT
&----
text
----
MODULE PUT_DATA OUTPUT.
MOVE IT_ZASSET-ANLN1 TO ZASSET-ANLN1.
W_SEL = IT_ZASSET-SEL.
FOR LINE SELECTION VERTICAL SCROLL BARS
DESCRIBE TABLE IT_ZASSET LINES TC-LINES.
ENDMODULE. " PUT_DATA OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CASE OK_CODE.
WHEN 'INSERT'.
LOOP AT IT_ZASSET WHERE SEL EQ 'X'.
INSERT INITIAL LINE INTO IT_ZASSET INDEX SY-TABIX.
TC_CONTROL-LINES = TC_CONTROL-LINES + 1.
ENDLOOP.
WHEN 'APPEND'.
APPEND INITIAL LINE TO IT_ZASSET.
CLEAR SY-UCOMM.
TC-LINES = TC-LINES + 1.
TC-TOP_LINE = TC-LINES.
WHEN 'SAVE'.
LOOP AT IT_ZASSET.
MOVE-CORRESPONDING IT_ZASSET TO ZASSET.
MODIFY ZASSET.
ENDLOOP.
WHEN 'DESEL'.
LOOP AT IT_ZASSET WHERE SEL EQ 'X'.
IT_ZASSET-SEL = ' '.
MODIFY ZASSET.
ENDLOOP.
WHEN 'SALL'.
LOOP AT IT_ZASSET.
IT_ZASSET-SEL = 'X'.
MODIFY IT_ZASSET.
ENDLOOP.
*modify
when 'MOD'.
REFRESH IT_zasset.
CLEAR IT_zasset.
loop at it_zasset where sel = 'X'.
it_mod-anln1 = it_zasset-anln1.
it_mod-bukrs = it_data-bukrs.
append it_mod.
clear it_mod.
endloop.
To select records for modification.
if not it_mod[] is initial.
v_pcode = sy-ucomm.
clear sy-ucomm.
leave to screen 200.
else.
message i999 with text-001. " Select records to be modified
*.
leave to screen 100.
endif.
endcase.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module GET_DATA INPUT
&----
text
----
MODULE GET_DATA INPUT.
MOVE ZASSET-ANLN1 TO IT_ZASSET-ANLN1.
*IT_ZASSET-SEL = W_SEL.
MODIFY IT_ZASSET INDEX TC-CURRENT_LINE.
ENDMODULE. " GET_DATA INPUT
&----
*& Module EXIT INPUT
&----
text
----
MODULE EXIT INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT
Edited by: Julius Bussche on Jul 19, 2008 1:26 PM
2008 Jul 19 2:20 PM
Hello there.
I think I've found a problem.
You have declared your table control, as TC, right?
CONTROLS: TC TYPE TABLEVIEW USING SCREEN '0100'.
And then you use ti in:
MODULE GET_DATA INPUT.
MOVE ZASSET-ANLN1 TO IT_ZASSET-ANLN1.
MODIFY IT_ZASSET INDEX TC-CURRENT_LINE.
ENDMODULE. " GET_DATA INPUT
So I don't understand why you have used this statement:
LOOP AT it_zasset WITH CONTROL TC_CONTROL CURSOR TC_CONTROL-TOP_LINE.
MODULE PUT_DATA.
endloop.
What is TC_CONTROL?
Regards.
Valter Oliveira.
2008 Jul 19 2:20 PM
Hello there.
I think I've found a problem.
You have declared your table control, as TC, right?
CONTROLS: TC TYPE TABLEVIEW USING SCREEN '0100'.
And then you use ti in:
MODULE GET_DATA INPUT.
MOVE ZASSET-ANLN1 TO IT_ZASSET-ANLN1.
MODIFY IT_ZASSET INDEX TC-CURRENT_LINE.
ENDMODULE. " GET_DATA INPUT
So I don't understand why you have used this statement:
LOOP AT it_zasset WITH CONTROL TC_CONTROL CURSOR TC_CONTROL-TOP_LINE.
MODULE PUT_DATA.
endloop.
What is TC_CONTROL?
Regards.
Valter Oliveira.
2008 Sep 05 10:41 AM
in my programming why is that my records are repeatedly being displayed in the table controls when i execute it. this is in module pool programming. can anyone please help me?? thank you.
Edited by: abhishek sunkari on Sep 5, 2008 11:41 AM
2024 Apr 11 1:04 PM
Use 'REFRESH IT_DATA' before select query for IT_DATA.
Where IT_DATA is your Internal Table for Output.