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: 

TABLE CONTROLS IN MODULE POOL - modifying and editing

Former Member
0 Kudos
4,695

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

1 ACCEPTED SOLUTION

valter_oliveira
Active Contributor
0 Kudos
2,583

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.

3 REPLIES 3

valter_oliveira
Active Contributor
0 Kudos
2,584

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.

Former Member
0 Kudos
2,583

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

0 Kudos
2,345

Use 'REFRESH IT_DATA' before select query for IT_DATA.
Where IT_DATA is your Internal Table for Output.

Ratan Kumar