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: 
Read only

Variable Rows in Step-loop in Module Pool

Former Member
0 Likes
2,309

Hi,

I have a Radio Frequency application in which the module pool screen should contain step-loop with dynamic number of rows as per the number of records to be displayed.

Can you please help as to how to make the number of rows of step-loop dynamic.?

Regards,

Mansi.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,371

Hi,

we can delcale step loop system varibel in pbo.

data:line type i value '10'.

MODULE transp_itab_out OUTPUT.

idx = sy-stepl + line.

READ TABLE itab INTO wa INDEX idx.

ENDMODULE.

demo pg.

REPORT demo_dynpro_step_loop.

TYPES: BEGIN OF t_itab,

col1 TYPE i,

col2 TYPE i,

END OF t_itab.

DATA: itab TYPE STANDARD TABLE OF t_itab,

wa LIKE LINE OF itab,

fill TYPE i.

DATA: idx TYPE i,

line TYPE i,

lines TYPE i,

limit TYPE i,

c TYPE i,

n1 TYPE i VALUE 5,

n2 TYPE i VALUE 25.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

START-OF-SELECTION.

DO 40 TIMES.

wa-col1 = sy-index.

wa-col2 = sy-index ** 2.

APPEND wa TO itab.

ENDDO.

DESCRIBE TABLE itab LINES fill.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS_100' EXCLUDING 'PREVIOUS'.

ENDMODULE.

MODULE status_0200 OUTPUT.

SET PF-STATUS 'STATUS_200' EXCLUDING 'NEXT'.

ENDMODULE.

MODULE transp_itab_out OUTPUT.

idx = sy-stepl + line.

READ TABLE itab INTO wa INDEX idx.

ENDMODULE.

MODULE transp_itab_in INPUT.

lines = sy-loopc.

idx = sy-stepl + line.

MODIFY itab FROM wa INDEX idx.

ENDMODULE.

MODULE user_command_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'NEXT_LINE'.

line = line + 1.

limit = fill - lines.

IF line > limit.

line = limit.

ENDIF.

WHEN 'PREV_LINE'.

line = line - 1.

IF line < 0.

line = 0.

ENDIF.

WHEN 'NEXT_PAGE'.

line = line + lines.

limit = fill - lines.

IF line > limit.

line = limit.

ENDIF.

WHEN 'PREV_PAGE'.

line = line - lines.

IF line < 0.

line = 0.

ENDIF.

WHEN 'LAST_PAGE'.

line = fill - lines.

WHEN 'FIRST_PAGE'.

line = 0.

WHEN 'NEXT'.

c = line + 1.

LEAVE TO SCREEN 200.

ENDCASE.

ENDMODULE.

MODULE get_first_line INPUT.

line = c - 1.

ENDMODULE.

MODULE user_command_0200 INPUT.

save_ok = ok_code.

CASE save_ok.

WHEN 'PREVIOUS'.

LEAVE TO SCREEN 100.

ENDCASE.

ENDMODULE.

MODULE cancel INPUT.

LEAVE PROGRAM.

ENDMODULE.

regards

muralii

5 REPLIES 5
Read only

nabheetscn
SAP Champion
SAP Champion
0 Likes
1,371

In table control we have table_control-lines you can increase it dynamically. As each page down will trigger PAI you can initilally assign 100 lines and on each PAI keep on increasing them.

Nabheet

Read only

0 Likes
1,371

Hi,

I cannot use table cntrl in RF applications. I have used Step-loop, so i want to know if step-loop can be made dynamic.

Read only

0 Likes
1,371

Please refer the below mentioned link. We have used table controlfor RF devices in past but no probs.

Thanks

Nabheet

Read only

Former Member
0 Likes
1,371

In case of Step-loop, i want to make it dynamic based on number of records in the table, Can you please provide me with an example code.

Read only

Former Member
0 Likes
1,372

Hi,

we can delcale step loop system varibel in pbo.

data:line type i value '10'.

MODULE transp_itab_out OUTPUT.

idx = sy-stepl + line.

READ TABLE itab INTO wa INDEX idx.

ENDMODULE.

demo pg.

REPORT demo_dynpro_step_loop.

TYPES: BEGIN OF t_itab,

col1 TYPE i,

col2 TYPE i,

END OF t_itab.

DATA: itab TYPE STANDARD TABLE OF t_itab,

wa LIKE LINE OF itab,

fill TYPE i.

DATA: idx TYPE i,

line TYPE i,

lines TYPE i,

limit TYPE i,

c TYPE i,

n1 TYPE i VALUE 5,

n2 TYPE i VALUE 25.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

START-OF-SELECTION.

DO 40 TIMES.

wa-col1 = sy-index.

wa-col2 = sy-index ** 2.

APPEND wa TO itab.

ENDDO.

DESCRIBE TABLE itab LINES fill.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS_100' EXCLUDING 'PREVIOUS'.

ENDMODULE.

MODULE status_0200 OUTPUT.

SET PF-STATUS 'STATUS_200' EXCLUDING 'NEXT'.

ENDMODULE.

MODULE transp_itab_out OUTPUT.

idx = sy-stepl + line.

READ TABLE itab INTO wa INDEX idx.

ENDMODULE.

MODULE transp_itab_in INPUT.

lines = sy-loopc.

idx = sy-stepl + line.

MODIFY itab FROM wa INDEX idx.

ENDMODULE.

MODULE user_command_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'NEXT_LINE'.

line = line + 1.

limit = fill - lines.

IF line > limit.

line = limit.

ENDIF.

WHEN 'PREV_LINE'.

line = line - 1.

IF line < 0.

line = 0.

ENDIF.

WHEN 'NEXT_PAGE'.

line = line + lines.

limit = fill - lines.

IF line > limit.

line = limit.

ENDIF.

WHEN 'PREV_PAGE'.

line = line - lines.

IF line < 0.

line = 0.

ENDIF.

WHEN 'LAST_PAGE'.

line = fill - lines.

WHEN 'FIRST_PAGE'.

line = 0.

WHEN 'NEXT'.

c = line + 1.

LEAVE TO SCREEN 200.

ENDCASE.

ENDMODULE.

MODULE get_first_line INPUT.

line = c - 1.

ENDMODULE.

MODULE user_command_0200 INPUT.

save_ok = ok_code.

CASE save_ok.

WHEN 'PREVIOUS'.

LEAVE TO SCREEN 100.

ENDCASE.

ENDMODULE.

MODULE cancel INPUT.

LEAVE PROGRAM.

ENDMODULE.

regards

muralii