10-01-2008 7:45 AM
Hi all,
I am unable to get the scroll functionality in my table
control with wizard while scrolling downward..
Pls help me...
Thnx
10-01-2008 8:19 AM
10-01-2008 8:20 AM
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
10-01-2008 8:27 AM
WRITE IN MODULE OF LOOP ENDLOOP IN PBO FOR TABLE CONTROL: TC = TABLE CONTROL NAME
DESCRIBE TABLE ITAB LINES TC-LINES.
06-06-2011 6:15 PM
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.
10-01-2008 8:35 AM
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
10-01-2008 8:41 AM
Hi,
i have checked the scroll check box..
but still unable to scroll
10-01-2008 8:44 AM
You will have four push buttons under the table control, use those to scroll the table control.
Regards,
Vishwa.
10-01-2008 8:58 AM
Buttons are there but they are also not working..
scroll is not working for downward..
*----
*--
*----
***&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
10-01-2008 9:01 AM
hi use this
it should be in pbo
sy-dbcnt-lines = <name of the table control>
it will work for sure.
10-01-2008 9:32 AM
sy-dbcnt = ZTBCONTINVMAIL9.
error-The type in "SY-DBCNT" cannot be converted to the type in
"ZTBCONTINVMAIL9".
10-01-2008 10:18 AM
scroll bar is not functioning while scrolling downward.
code is above...
10-01-2008 10:34 AM
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.
10-25-2013 3:42 PM
Hi,
Your 5 yr old answer solved my issue.
Thanks a ton.
Regards,
Jayaprakash.
10-01-2008 9:02 AM
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!!
10-01-2008 10:30 AM
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
11-17-2008 9:45 PM
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.