Application Development 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: 

Scrolling in table control with wizard

Former Member
0 Kudos

Hi all,

I am unable to get the scroll functionality in my table

control with wizard while scrolling downward..

Pls help me...

Thnx

16 REPLIES 16

Former Member
0 Kudos

Pls answer

0 Kudos

hi

You have to check the Scroll option while creating the wizard..

Did u find any check box?

The pushbuttons are arranged in the bottom line of the screen area provided for the table control. If the screen area is too small, the functions are not available.

Regards,

Vishwa.

Edited by: vishwa sri hari on Oct 1, 2008 9:27 AM

Former Member
0 Kudos

WRITE IN MODULE OF LOOP ENDLOOP IN PBO FOR TABLE CONTROL: TC = TABLE CONTROL NAME

DESCRIBE TABLE ITAB LINES TC-LINES.

0 Kudos

Hey Mr. Gupta

where do you mean this line should be written exactly?

DESCRIBE TABLE ITAB LINES TC-LINES.

Could you say where should I write it in PBO ?

I'm using "TABLE CONTROL WITHOUT WIZARD".

SO My PBO is like this below; please help me with this.

----


PROCESS BEFORE OUTPUT.

MODULE STATUS_1229.

LOOP AT LT_EKPO INTO LW_EKPO

WITH CONTROL TC_1229 CURSOR

TC_1229-CURRENT_LINE.

ENDLOOP.

----


Code in module of PBO.

----


MODULE STATUS_1229 OUTPUT.

SET PF-STATUS 'TCWW_STAT'.

SET TITLEBAR 'TCWW_TTL'.

ENDMODULE.

----


If anybody else also knows this then I would appreciate their answers.

Note : I'm a beginner so please explain it in a simple manner.

Thank You in advance.

Regards,

Mohd Azeem.

Former Member
0 Kudos

Create the table control again using the wizard. You will have the option to have the Scroll bar. Don't forget to check that.

Regards,

Samson

0 Kudos

Hi,

i have checked the scroll check box..

but still unable to scroll

0 Kudos

You will have four push buttons under the table control, use those to scroll the table control.

Regards,

Vishwa.

0 Kudos

Buttons are there but they are also not working..

scroll is not working for downward..

*----


*--


CALLING TABLE CONTROL--

*----


***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'ZTBCONTINVMAIL9'

*&SPWIZARD: DEFINITION OF DDIC-TABLE

TABLES: ZMAILHIST.

*&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'ZTBCONTINVMAIL9'

TYPES: BEGIN OF T_ZTBCONTINVMAIL9 ,

ETIMES LIKE ZMAILHIST-ETIMES,

VBELN LIKE ZMAILHIST-VBELN,

KUNNR LIKE ZMAILHIST-KUNNR,

ERDAT LIKE ZMAILHIST-ERDAT,

VSURA LIKE ZMAILHIST-VSURA,

VSTAT LIKE ZMAILHIST-VSTAT,

UNAME LIKE ZMAILHIST-UNAME,

NAME1 LIKE ZMAILHIST-NAME1,

END OF T_ZTBCONTINVMAIL9.

*&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'ZTBCONTINVMAIL9'

DATA: G_ZTBCONTINVMAIL9_ITAB TYPE T_ZTBCONTINVMAIL9 OCCURS 0,

G_ZTBCONTINVMAIL9_WA TYPE T_ZTBCONTINVMAIL9. "work area

DATA: G_ZTBCONTINVMAIL9_COPIED. "copy flag

*&SPWIZARD: DECLARATION OF TABLECONTROL 'ZTBCONTINVMAIL9' ITSELF

CONTROLS: ZTBCONTINVMAIL9 TYPE TABLEVIEW USING SCREEN 1001.

*&SPWIZARD: LINES OF TABLECONTROL 'ZTBCONTINVMAIL9'

DATA: G_ZTBCONTINVMAIL9_LINES LIKE SY-LOOPC.

*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTBCONTINVMAIL9'. DO NOT CHANGE THIS L

*&SPWIZARD: COPY DDIC-TABLE TO ITAB

MODULE ZTBCONTINVMAIL9_INIT OUTPUT.

  • IF G_ZTBCONTINVMAIL9_COPIED IS INITIAL. "hbindu

*&SPWIZARD: COPY DDIC-TABLE 'ZMAILHIST'

*&SPWIZARD: INTO INTERNAL TABLE 'g_ZTBCONTINVMAIL9_itab'

SELECT * FROM ZMAILHIST

INTO CORRESPONDING FIELDS

OF TABLE G_ZTBCONTINVMAIL9_ITAB

*"hbindu

WHERE vbeln IN s_vbeln

AND kunnr IN s_kunnr

and erdat IN s_fkdat.

*"hbindu

*code commented for ASR#47480

  • G_ZTBCONTINVMAIL9_COPIED = 'X'.

  • REFRESH CONTROL 'ZTBCONTINVMAIL9' FROM SCREEN '1001'.

*END OF CODE COMMENTED FOR ASR#47480

*BEGIN OF CODE ADDED BY MANASM FOR ASR#47480 ON 09/15/2008.

  • CLEAR G_ZTBCONINVMAIL9_ITAB.

*END OF CODE ADDED BY MANASM FOR ASR#47480 ON 09/15/2008.

  • ENDIF. "hbindu

ENDMODULE. "ZTBCONTINVMAIL9_INIT OUTPUT

*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTBCONTINVMAIL9'. DO NOT CHANGE THIS L

*&SPWIZARD: MOVE ITAB TO DYNPRO

MODULE ZTBCONTINVMAIL9_MOVE OUTPUT.

MOVE-CORRESPONDING G_ZTBCONTINVMAIL9_WA TO ZMAILHIST.

ENDMODULE. "ZTBCONTINVMAIL9_MOVE OUTPUT

*&SPWIZARD: OUTPUT MODULE FOR TC 'ZTBCONTINVMAIL9'. DO NOT CHANGE THIS L

*&SPWIZARD: GET LINES OF TABLECONTROL

MODULE ZTBCONTINVMAIL9_GET_LINES OUTPUT.

G_ZTBCONTINVMAIL9_LINES = SY-LOOPC.

ENDMODULE. "ZTBCONTINVMAIL9_GET_LINES OUTPUT

*&SPWIZARD: INPUT MODULE FOR TC 'ZTBCONTINVMAIL9'. DO NOT CHANGE THIS LI

*&SPWIZARD: PROCESS USER COMMAND

MODULE ZTBCONTINVMAIL9_USER_COMMAND INPUT.

OK_CODE = SY-UCOMM.

PERFORM USER_OK_TC USING 'ZTBCONTINVMAIL9'

'G_ZTBCONTINVMAIL9_ITAB'

'FLAG'

CHANGING OK_CODE.

SY-UCOMM = OK_CODE.

ENDMODULE. "ZTBCONTINVMAIL9_USER_COMMAND INPUT

----


  • INCLUDE TABLECONTROL_FORMS *

----


&----


*& Form USER_OK_TC *

&----


FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM

P_TABLE_NAME

P_MARK_NAME

CHANGING P_OK LIKE SY-UCOMM.

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA: L_OK TYPE SY-UCOMM,

L_OFFSET TYPE I.

&SPWIZARD: END OF LOCAL DATA----


*&SPWIZARD: Table control specific operations *

*&SPWIZARD: evaluate TC name and operations *

SEARCH P_OK FOR P_TC_NAME.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

L_OFFSET = STRLEN( P_TC_NAME ) + 1.

L_OK = P_OK+L_OFFSET.

*&SPWIZARD: execute general and TC specific operations *

CASE L_OK.

WHEN 'INSR'. "insert row

PERFORM FCODE_INSERT_ROW USING P_TC_NAME

P_TABLE_NAME.

CLEAR P_OK.

WHEN 'DELE'. "delete row

PERFORM FCODE_DELETE_ROW USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME.

CLEAR P_OK.

WHEN 'P--' OR "top of list

'P-' OR "previous page

'P+' OR "next page

'P++'. "bottom of list

PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME

L_OK.

CLEAR P_OK.

  • WHEN 'L--'. "total left

  • PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.

*

  • WHEN 'L-'. "column left

  • PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.

*

  • WHEN 'R+'. "column right

  • PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.

*

  • WHEN 'R++'. "total right

  • PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.

*

WHEN 'MARK'. "mark all filled lines

PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME .

CLEAR P_OK.

WHEN 'DMRK'. "demark all filled lines

PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME .

CLEAR P_OK.

  • WHEN 'SASCEND' OR

  • 'SDESCEND'. "sort column

  • PERFORM FCODE_SORT_TC USING P_TC_NAME

  • l_ok.

ENDCASE.

ENDFORM. " USER_OK_TC

&----


*& Form FCODE_INSERT_ROW *

&----


FORM fcode_insert_row

USING P_TC_NAME TYPE DYNFNAM

P_TABLE_NAME .

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_LINES_NAME LIKE FELD-NAME.

DATA L_SELLINE LIKE SY-STEPL.

DATA L_LASTLINE TYPE I.

DATA L_LINE TYPE I.

DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <LINES> TYPE I.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: get looplines of TableControl *

CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.

ASSIGN (L_LINES_NAME) TO <LINES>.

*&SPWIZARD: get current line *

GET CURSOR LINE L_SELLINE.

IF SY-SUBRC <> 0. " append line to table

L_SELLINE = <TC>-LINES + 1.

*&SPWIZARD: set top line *

IF L_SELLINE > <LINES>.

<TC>-TOP_LINE = L_SELLINE - <LINES> + 1 .

ELSE.

<TC>-TOP_LINE = 1.

ENDIF.

ELSE. " insert line into table

L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1.

L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1.

ENDIF.

*&SPWIZARD: set new cursor line *

L_LINE = L_SELLINE - <TC>-TOP_LINE + 1.

*&SPWIZARD: insert initial line *

INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.

<TC>-LINES = <TC>-LINES + 1.

*&SPWIZARD: set cursor *

SET CURSOR LINE L_LINE.

ENDFORM. " FCODE_INSERT_ROW

&----


*& Form FCODE_DELETE_ROW *

&----


FORM fcode_delete_row

USING P_TC_NAME TYPE DYNFNAM

P_TABLE_NAME

P_MARK_NAME .

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <WA>.

FIELD-SYMBOLS <MARK_FIELD>.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: delete marked lines *

DESCRIBE TABLE <TABLE> LINES <TC>-LINES.

LOOP AT <TABLE> ASSIGNING <WA>.

*&SPWIZARD: access to the component 'FLAG' of the table header *

ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

IF <MARK_FIELD> = 'X'.

DELETE <TABLE> INDEX SYST-TABIX.

IF SY-SUBRC = 0.

<TC>-LINES = <TC>-LINES - 1.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " FCODE_DELETE_ROW

&----


*& Form COMPUTE_SCROLLING_IN_TC

&----


  • text

----


  • -->P_TC_NAME name of tablecontrol

  • -->P_OK ok code

----


FORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME

P_OK.

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_TC_NEW_TOP_LINE TYPE I.

DATA L_TC_NAME LIKE FELD-NAME.

DATA L_TC_LINES_NAME LIKE FELD-NAME.

DATA L_TC_FIELD_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <LINES> TYPE I.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get looplines of TableControl *

CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.

ASSIGN (L_TC_LINES_NAME) TO <LINES>.

*&SPWIZARD: is no line filled? *

IF <TC>-LINES = 0.

*&SPWIZARD: yes, ... *

L_TC_NEW_TOP_LINE = 1.

ELSE.

*&SPWIZARD: no, ... *

CALL FUNCTION 'SCROLLING_IN_TABLE'

EXPORTING

ENTRY_ACT = <TC>-TOP_LINE

ENTRY_FROM = 1

ENTRY_TO = <TC>-LINES

LAST_PAGE_FULL = 'X'

LOOPS = <LINES>

OK_CODE = P_OK

OVERLAPPING = 'X'

IMPORTING

ENTRY_NEW = L_TC_NEW_TOP_LINE

EXCEPTIONS

  • NO_ENTRY_OR_PAGE_ACT = 01

  • NO_ENTRY_TO = 02

  • NO_OK_CODE_OR_PAGE_GO = 03

OTHERS = 0.

ENDIF.

*&SPWIZARD: get actual tc and column *

GET CURSOR FIELD L_TC_FIELD_NAME

AREA L_TC_NAME.

IF SYST-SUBRC = 0.

IF L_TC_NAME = P_TC_NAME.

*&SPWIZARD: et actual column *

SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.

ENDIF.

ENDIF.

*&SPWIZARD: set the new top line *

<TC>-TOP_LINE = L_TC_NEW_TOP_LINE.

ENDFORM. " COMPUTE_SCROLLING_IN_TC

&----


*& Form FCODE_TC_MARK_LINES

&----


  • marks all TableControl lines

----


  • -->P_TC_NAME name of tablecontrol

----


FORM FCODE_TC_MARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME.

&SPWIZARD: EGIN OF LOCAL DATA----


DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <WA>.

FIELD-SYMBOLS <MARK_FIELD>.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: mark all filled lines *

LOOP AT <TABLE> ASSIGNING <WA>.

*&SPWIZARD: access to the component 'FLAG' of the table header *

ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

<MARK_FIELD> = 'X'.

ENDLOOP.

ENDFORM. "fcode_tc_mark_lines

&----


*& Form FCODE_TC_DEMARK_LINES

&----


  • demarks all TableControl lines

----


  • -->P_TC_NAME name of tablecontrol

----


FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME .

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <WA>.

FIELD-SYMBOLS <MARK_FIELD>.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: demark all filled lines *

LOOP AT <TABLE> ASSIGNING <WA>.

*&SPWIZARD: access to the component 'FLAG' of the table header *

ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

<MARK_FIELD> = SPACE.

ENDLOOP.

ENDFORM. "fcode_tc_mark_lines

&----


*& Module STATUS_1001 OUTPUT

&----


  • text

----


MODULE STATUS_1001 OUTPUT.

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

ENDMODULE.

" STATUS_1001 OUTPUT

&----


*& Module USER_COMMAND_1001 INPUT

&----


  • text

----


MODULE USER_COMMAND_1001 INPUT.

CASE SSCRFIELDS-UCOMM.

WHEN 'CCAN'.

CLEAR OK_CODE.

SET SCREEN 0.LEAVE SCREEN.

WHEN 'CRET'.

SET SCREEN 0.LEAVE SCREEN.

ENDCASE.

ENDMODULE. " USER_COMMAND_1001 INPUT

where to do the changes

Former Member
0 Kudos

hi use this

it should be in pbo

sy-dbcnt-lines = <name of the table control>

it will work for sure.

0 Kudos

sy-dbcnt = ZTBCONTINVMAIL9.

error-The type in "SY-DBCNT" cannot be converted to the type in

"ZTBCONTINVMAIL9".

0 Kudos

scroll bar is not functioning while scrolling downward.

code is above...

0 Kudos

From a quick look at the code, I think you may be using the following in your PBO to refresh the screen.

REFRESH CONTROL 'ZTBCONTINVMAIL9' FROM SCREEN '1001'.

This will reset the screen and so make it appear as if your scrolling is not working.

Incidentally, doing something like this is an excellent way of stopping the vertical scrollbar from working if you don't want it, as I discovered yesterday.

0 Kudos

Hi,

Your 5 yr old answer solved my issue.

Thanks a ton.

Regards,

Jayaprakash.

Former Member
0 Kudos

Hi Sahoo,

Have you tried like this after your last record is been entered in the table just press enter that will automatically activate your scrolling function of the table.

Cheers!!

Former Member
0 Kudos

hi,

use this statement.

in pai

ZTBCONTINVMAIL9-V_SCROLL = 'X'.

V_SCROLL IS A FIELD IN CXTAB_CONTROL STRUCTURE.

CHECK FOR CXTAB TYPEGROUP IN SE11.

RGDS.,

SUBASH

0 Kudos

I have the answer - the "Wizard" allows you to miss a key point.

In the PBO of the screen,

say your table control is TC

TC-lines must be set to the total number of lines going into the screen table.