Implement Entry up/down & Page up/down functions in table control

Hi,
I have to implement entry up/down and page up/down functions in my table control. The logic is :-
Suppose the entries in my table control currently are:-
Called "Initial Position" :-
a
b
c
d
e
My "Cursor Position" or say my selection column is at 'c' value currently.
If I press entry down, the result should be:-
a
b
d
c
e
i.e. c shifted one value down. If I press value up from "Initial Position", it should be :-
a
c
b
d
e
If I press page down from "initial position", the result should be
a
b
d
e
c
i.e. c has scrolled to the last entry. Similarly for page up, where the entry goes up to the first place and all entries move one position down.
The problem i am facing is:-
1) How to get index of entry selected?
2) How to change table control contents at runtime?
Thanks.
Edited by: dumbledorearmy on Nov 23, 2010 12:25 PM

Hi,
Please check the function module - 'SCROLLING_IN_TABLE'.
It give you some idea.
Thanks.
Anversha

Similar Messages

  • Page down functionality in table control BDC-CJ02 tcode

    Hi Friends,
    I am doing a BDC with Table control for Tcode CJ02.
    When I reach certain number of records, say 13, the page down functionality doesnt work.I tried different ways like using the BDC_OKCODE as "=P" and "=P+".Also, I tried doing a recording by pressing the down key in the table contral, in SHDB, but none of them worked.
    Refered a post in SDN as well, but it doesnt hold any solution.
    Do throw some light on the same to achieve page down functionality for the bdc tcode CJ02.
    Thanks in advance.
    Shri.

    Hi,
    I already posted an answer to that here Re: BDC scroll down with OK_CODE '=P+':
    P+ (=P+ in the BDC) is not a universal function code, but only one which is defined in ABAP lists . So, 99% of time, it doesn't work for all others situations (like yours).
    Scrolling a table control is not so easy to do. When you record a page down on a table control in SHDB, you'll get probably a /00 which corresponds to Enter. When you play the recording, it won't scroll. The issue is that "page down" is processed in 2 parts, it changes the "top line" of the table control, and executes Enter. But it's not possible to record/play the "top line" information.
    The solution is that the program usually implements a function code:
    either "add new line"
    or "position at line"
    Sometimes, the function code is hidden so you must look at inside the program (or search SAP notes, like here: [SAP note 187946 (No positioning on PRT overview in routing)|https://service.sap.com/sap/support/notes/187946 ])
    And sometimes, there's no function code at all, and then you're stuck ! (or use SAP GUI scripting, but it may only work in dialog).
    For CJ02, I can't tell how to scroll through BDC, but anyway, there is a BAPI (don't remember the name, search the forum, it will be easy to find it), so you should always prefer them over BDC.
    Sandra

  • Page Up and Page down functionality in table control

    Hi,
        I want to add two pushbuttons in the module pool screen which has a table control that fetches data from the transparent table. One pushbutton is for the page up and other is for page down. If my table control <say tab_ctrl1> has 75 records in total with shows 25 at time so with a single page down it should show next 25 rows of the data.
    thanks
    ekta

    Hi,
    Use the function module SCROLLING_IN_TABLE.
    For ok_code pass P- for previous page and P+ for next page.
    Example:
       DATA L_TC_NEW_TOP_LINE     TYPE I.
         CALL FUNCTION 'SCROLLING_IN_TABLE'
              EXPORTING
                   ENTRY_ACT             = Table_Control-TOP_LINE
                   ENTRY_FROM            = 1
                   ENTRY_TO              = Table_Control-LINES
                   LAST_PAGE_FULL        = 'X'
                   LOOPS                 = 25
                   OK_CODE               = 'P+'
                   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.
       Table_Control-TOP_LINE = L_TC_NEW_TOP_LINE.
    Regards,
    Sesh

  • Regarding page down in the table control veritcally

    Hi all,
              I have an issue regarding page down in the Table control in module pool , i.e when i m click the vertical scroll bar and going for page down then , the control is flowing to the next sceen which is not needed , and it shuld just scroll down and up vetically.
    Can anyone help me how to handle the page down event ?
    Thanks & regards,
    satya

    Table Controls: Examples with Scrolling
    The following example processes a table control with LOOP without parallel loop using an internal table. In addition to the scroll bar, the user can also carry out program-controlled scrolling with function codes.
    REPORT demo_dynpro_tabcont_loop.
    CONTROLS flights TYPE TABLEVIEW USING SCREEN 100.
    DATA: ok_code TYPE sy-ucomm,
          save_ok TYPE sy-ucomm.
    DATA: itab TYPE TABLE OF demo_conn,
          fill TYPE i.
          TABLES demo_conn.
    DATA: lines TYPE i,
          limit TYPE i.
    SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE itab.
    CALL SCREEN 100.
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
      DESCRIBE TABLE itab LINES fill.
      flights-lines = fill.
    ENDMODULE.
    MODULE fill_table_control OUTPUT.
      READ TABLE itab INTO demo_conn INDEX flights-current_line.
    ENDMODULE.
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE read_table_control INPUT.
      lines = sy-loopc.
      MODIFY itab FROM demo_conn INDEX flights-current_line.
    ENDMODULE.
    MODULE user_command_0100 INPUT.
      save_ok = ok_code.
      CLEAR ok_code.
      CASE save_ok.
        WHEN 'NEXT_LINE'.
          flights-top_line = flights-top_line + 1.
          limit = fill - lines + 1.
          IF flights-top_line > limit.
            flights-top_line = limit.
          ENDIF.
        WHEN 'PREV_LINE'.
          flights-top_line = flights-top_line - 1.
          IF flights-top_line < 0.
            flights-top_line = 0.
          ENDIF.
        WHEN 'NEXT_PAGE'.
          flights-top_line = flights-top_line + lines.
          limit = fill - lines + 1.
          IF flights-top_line > limit.
            flights-top_line = limit.
          ENDIF.
        WHEN 'PREV_PAGE'.
          flights-top_line = flights-top_line - lines.
          IF flights-top_line < 0.
            flights-top_line = 0.
          ENDIF.
        WHEN 'LAST_PAGE'.
          flights-top_line =  fill - lines + 1.
        WHEN 'FIRST_PAGE'.
          flights-top_line = 0.
      ENDCASE.
    ENDMODULE.
    The layout of screen 100 is:
    A resizable table control called FLIGHTS is defined. The fields of the table control are transferred from the structure DEMO_CONN in the ABAP Dictionary. The first two columns are lead columns. The corresponding fields are output fields. A title bar, column headers, and a selection column are created. The component MARK of type character with length 1 from structure DEMO_CONN is assigned to the selection column. You can select one column and several lines.
    It has the following flow logic:
    PROCESS BEFORE OUTPUT.
      MODULE status_0100.
      LOOP WITH CONTROL flights.
        MODULE fill_table_control.
    ENDLOOP.
    PROCESS AFTER INPUT.
      MODULE cancel AT EXIT-COMMAND.
      LOOP WITH CONTROL flights.
        MODULE read_table_control.
    ENDLOOP.
      MODULE user_command_0100.
    The system executes a loop at PBO and PAI using the table control FLIGHTS. During the PBO loop, a module is called to fill the table control from table ITAB of the ABAP program. During the PAI loop, a module is called to modify table ITAB.
    Before the PBO loop, in the module STATUS_0100 the current number of lines of the internal table ITAB is placed in component LINES of control structure FLIGHTS. This helps the system to correctly install the scroll bar of the table control.
    During the PBO loop, in the module FILL_TABLE_CONTROL the work area DEMO_CONN is filled with values from the internal table, where the row index corresponds to the current row of the table control.
    During the PAI loop, in the module READ_TABLE_CONTROL the current number of the loop SY-LOOPC in the table control is placed an auxiliary variable. The number is dependent on the size of the screen. The rows of the internal table, whose row index corresponds to the current row of the table control, are overwritten with the contents of the work area DEMO_CONN. User input is transferred from the input fields of the control to the internal table. In particular, the internal table also contains a flag in the column MARK to indicate whether the row of the table control is selected or not.
    After the PAI loop, user input is processed in the module USER_COMMAND. The GUI status SCREEN_100 provides the appropriate function codes. You can scroll line by line or page by page, or Goto the first or last page. You can implement scrolling by setting the component TOP_LINE of control structure FLIGHTS. For page-by-page scrolling the auxiliary variable that is filled in the PAI loop by SY-LOOPC is used as the step size.

  • IB51, IB52 : Page up & Page Down option for table control disabled

    Hi experts,
    IB51, IB52 Page up & Page Down option for table control is disabled.
    We want to use these options in the table control while recording .
    Can any one tell us?
    Regards,
    Lakshmi

    Hi,
    You can refer to Note 379208 .
    The same is applicable in CRM too.
    Thanks ,
    Jomy

  • Ok-code to scroll down in a table control on batch input

    Hello,
    I'm trying to create a batch input session for transaction VA02 (Change  sales  order) :
    I need to go scroll down in the table control of the screen (item -> Conditions) 3 times to delete the a line; In the batch input (SHDB), i go scroll down by clicking on the scroll bar of the table control, mark the line of the page and delete it.
    The recording show me the ok-code /00 to scroll down (with BDC_CURSOR in the second line), but in the program it don't work, the ok do nothing the 3 times and mark the incorrect line.
    Can anyone tell an idea of what is the correct ok-code to scroll down?
    Thanks in advance
    Alvaro
    PD:  My SAP system is an ECC 6.0

    Hi Alvaro
    One time i had to do similar work for Creation of General Task List in PM module and this is how i did it
                             'X'      'SAPLCMDI'             '3500',
                             ' '      'BDC_CURSOR'          'RIHSTPX-DISP(01)',
                             ' '      'BDC_OKCODE'          '=P+',
                             ' '      'RIHSTPX-IDNRK(01)'    itab-idnrk,
                             ' '      'RIHSTPX-MENGE(01)'    itab-menge,
                             ' '      'RIHSTPX-MEINS(01)'    itab-meins,
                             ' '      'RIHSTPX-DISP(01)'     itab-disp.
    I had to select line 1 hence you can see the position number ( 01 ) in the field name. As you can see based on this positioning you can select the appropriate line and make modifications as you like and also use okcode of  '=P+' to scroll done. Hope this  helps. Reward if appropriate.
    Best Regards
    Sid Arora

  • Drop down list in Table Control - Value disappeared after pressing ENTER

    Dear Gurus,
    I have a problem in one of my development where I used a table control in which one field is a drop down list.
    I used VRM_SET_VALUES and VRM_GET_VALUES for populating the values from the programand not use any domain level value table for that field.
    My problem is when I select one value from this list , and pressing enter , the value get disappeared. But if I use a domain for this field with value table then everything working properly.
    My doubt is am I doing some miss coding or using the VRM_ function modules improperly ?
    I am sharing some code with you
    in PAI :
    CALL FUNCTION 'VRM_GET_VALUES'
        EXPORTING
          id            = 'ITAB-FIELD3'    "This is drop down list element on screen
        IMPORTING
          values        = values[]    " even it is not the expor parameter...it will work..
       EXCEPTIONS
         id_not_found   = 1
         OTHERS         = 2.
      IF sy-subrc NE 0.
      No sy-subrc check required.
      ENDIF.
    IN PBO
    CALL FUNCTION 'VRM_SET_VALUES'
           EXPORTING
                id     = 'IVBAP-ERNAM'
                values = values[].
    Can you please help me.
    Thanks .

    HI,
    The link contains the list box creation, just check if this might help.
    Re: Getting values back from a listbox.
    Regards and Best wishes.

  • Copy Functionality of Table Control like System's

    Hi all,
      I have a situation in table control...
      The scenario is like this ... I have a table control in which i am able to display the data about the sales persons. Now whenever i select a row from that table control it should copy that row and show that row in another control table in the editable option so that the user can edit the data.. Then on clicking the save button it should be updated into the internal table ...
    Waiting for response..
    Thank You

    Hi friend,
                         I have visited the link u have given . But it is a report program .it is available in ABAPDOCU tcode.
    ABAPDOCU----
    >ABAP User Dialogs -
    >Screens -
    >Complex Screen Elements -
    >Table Control with Scrolling .
    It is a REPORT program. and not a module pool program. plz check this in ur link also.
    REPORT demo_dynpro_tabcont_loop.    &
    *SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE itab.* -
    > this statement is used only in report program and system does not allow us to use in module pool program.
    Second thing here data is retrived from spfli table where as my data will be whatever enduser enters it may be 15 lines , may be 50 lines or may be 200 lines and it shold be displayed on entry screen before clicking SAVE or any other user action.
    My main problem is that I am unable to enter more than 11 entries in my entry screen. I want dynaamic table. Mean whichever enteries are entered they should be displayed on entry screen as well as can be scrolled up & down before saving and get saved after clicking SAVE button. here table control design is not imp because entry data depends on table control layout rows & which has limit. It can not be extended beyond certain level. i think max will be 20 Or 25 rows in layout. How to make it dynamic so that we can get any no. of entries in entry screen hiich canbe scrolled up & down.
    Anyways thanks for ur reply And send some other soln.
    Thanks & regards,
    Ashish

  • To know the functionality of table control in ABAP Objects

    Hi,
    Is there any technique to achieve the functionality of table conrol in ABAP Objects?
    Thanks.

    Hello Raja
    If you are using an editable ALV grid then you have the functionality of a table control and much much more.
    ABAP-OO based ALV grids are much more powerful (and easier) than simple table controls.
    Regards
      Uwe

  • Mimic Excel Fill-Down function in table

    I am creating a table that can have the number of rows vary by what the user selects.  Some of the columns will have the same value as the provious row and they would want all the rows to be filled with the same column value.  Maybe a checkbox above the column.  Any ideas on how this can be done.

    [email protected]> -- test data:
    [email protected]> select * from test_table
      2  /
            ID B
             1 B1
             2
             3
             4 B2
             5
             6
             7 B3
             8
    8 rows selected.
    [email protected]> -- query:
    [email protected]> select id, b
      2  from   (select t1.id, nvl (t1.b, t2.b) as b,
      3                rank () over (partition by t1.id order by t2.id desc) as rk
      4            from   test_table t1, test_table t2
      5            where  t1.id >= t2.id
      6            and    t2.b is not null)
      7  where  rk = 1
      8  /
            ID B
             1 B1
             2 B1
             3 B1
             4 B2
             5 B2
             6 B2
             7 B3
             8 B3
    8 rows selected.
    [email protected]> -- update:
    [email protected]> update test_table t3
      2  set    t3.b =
      3           (select b
      4            from   (select t1.id, nvl (t1.b, t2.b) as b,
      5                     rank () over (partition by t1.id order by t2.id desc) as rk
      6                  from   test_table t1, test_table t2
      7                  where  t1.id >= t2.id
      8                  and    t2.b is not null)
      9             where  rk = 1
    10             and    id = t3.id)
    11  /
    8 rows updated.
    [email protected]> -- results after update:
    [email protected]> select * from test_table
      2  /
            ID B
             1 B1
             2 B1
             3 B1
             4 B2
             5 B2
             6 B2
             7 B3
             8 B3
    8 rows selected.

  • How to use Page down functionality in BDC Table control

    Hi Guys,
    I am facing problem with populating data in the table control at item level. I am able to poulate upto 6 records, i need to populate n number of records.
    Pls help me with using P+ functionality for table control in BDC.
    Thanks in advance
    Satish

    Hi!
    Can you share how you got this solved?
    Thanks!

  • How do I identify OK Code in table control in BDC (scroll up/down)?

    Hi. I have read a lot of very good posts and articles here in the forums about how to work with table controls when writing a BDC program. Unfortunately I haven't found any that address the specific issue that I'm having.
    I'm writing a program to update the line items of a Parked Document using transaction FBV2. I want to be able to insert a row at the end of the previously existing rows regardless of how many there are and I can't seem to figure out the correct OK Codes to scroll up or down, or page up or down within the table control so I can guarantee that I will get to the next available row.
    For example. I have a Parked Document with 13 line items. I would like to insert the new line item as row 14. I know that 10 rows will be displayed at run time on this screen according to my settings in the BDC call and want to scroll down 1 time and then enter the new data on the 4th line on the new set of rows.
    Does anyone have any experience with this, or can someone point me in the right direction where I might find this information?
    Thanks in advance,
    Andy

    Hi
    In my system I can't run that trx, anyway there's any ok-code for the scrolling, you can have only the okcode for the page up/down buttons.
    So you should try to understand how many rows a page can have, so if a page have 10 rows per page and you need to change the row 22, it means you have to simulate to press the page down twice and change the second row of third page.
    If you run your BDC by CALL TRANSACTION u should use the option OPTIONS FROM opt, here you indicate to use the standard size of the dynpro. In this way the size of table control is not screen resolution dependent.
    TABLES CTU_PARAMS.
    CTU_PARAMS-DEFSIZE = 'X'.
    CALL TRANSACTION 'FBV1'  USING ITAB
                                                OPTIONS FROM CTU_PARAMS.
    Max

  • Mouse down event handling of table control in subvi

    Hello Everyone.......
    I have created a vi which has a table control and xy graph... the function of the vi is to plot the data of two particular column of table into xy-graph after user selects the data from table....  In this vi , I have used mouse down event for selecting data set so that the color of selected row get changed for user reference.......  the vi is working fine..... 
    My problem is that this vi is a part of main vi.. and I want to use this vi as a subvi.... So, in my main vi I have a table control which is connected as input to the subvi...  I come to know that I need to register event for triggering a event in a subvi.......
    (1) How to register Mouse down event of table control which is on Main Vi to trigger mouse down event of table in subvi.... Another Important thing is... how to link every property of table control of subvi to the table control of main vi... so it just act as single control adapting every property like when user selects a particular row its color changes in subvi....so it should be reflected even if user selects a row in main vi... I mean table control of main vi and subvi should be a single control...is it possible?
    I hope I am clear......Thanks ..

    See the modified version of the VI. I use the 'Point to Row Column' method to get the cell that was clicked on - your method also worked using 'Selection Start' but I thought I'd show you an alternative.
    I've used a single event structure to update two table controls - the point is that if you have the references to the controls you can update the control from anywhere. You can also 'register for events' to allow you to register for events from a different VI (again, using the references) that doesn't have the control on the front panel.
    Couple of things about your VI:
    You don't need to put a wait node if you have a timeout on your event structure.
    You don't need the for loop for the columns/rows - if you look at the help for the 'Active Cell' property you can use a value of -2 for the row/column to select all cells in the row/column.
    Certified LabVIEW Architect, Certified TestStand Developer
    NI Days (and A&DF): 2010, 2011, 2013, 2014
    NI Week: 2012, 2014
    Knowledgeable in all things Giant Tetris and WebSockets
    Attachments:
    Highlight Selected Row in Table Control_lv2009.vi ‏13 KB

  • How to put drop down in table control ?

    Hi All,
    I m writing one module pool program to edit table.
    I want dropdown to one field so that user can select the appropriate value. And also I want to save that record.
    So how to get the dropdown list and after editing that record how to save that in the database?
    Thanx in advance.
    -Umesh

    Hi Umesh,
    Please check this demo program RSDEMO_TABLE_CONTROL on how to add drop down list in table control. Also check this program DEMO_DYNPRO_TABCONT_LOOP_AT as well.
    To save to database you can code something like this in PAI.
    MODULE USER_COMMAND_0100 INPUT.
      SAVE_OK = OK_CODE.
      CLEAR OK_CODE.
      CASE SAVE_OK.
        WHEN 'SAVE'.
          MODIFY <database table> FROM TABLE <table control>.
          IF SY-SUBRC = 0.
          ELSE.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    Hope this will help.
    Regards,
    Ferry Lianto

  • BDC PROGRAM WITH PAGE DOWN FUNCTIONALITY

    Hi,
      Can anyone provide me BDC program with page down functionality.
    Regards,
    SP

    Hi ,
    There is ok code i.e P+, which is the page down ,
    For example if you have 5 slots in the screen and from the BDC u have to fill more than the 5 slots so we will send the FVAL to BDCDATA like 'P+' it will increse the one more page ssay like 5 more slots.
    Regards,
    Bharani

Maybe you are looking for