Table control with wizard in module pool

Hi Gurus!!
First I have an ztable for header and ztable for item of the purchase order. We have the requirement of first uploading the data into ztable and then perform bapi or bdc on it. So, before the data goes into the ztable we have to create screens to show the data,and if any error it should be corrected and then send it to the ztable.
So,in the screen I created a table control using the wizard where I gave the internal table and work area I declared for the item ztable.
Now, I need to give a condition to the table control such that only the details of a single vendor should be displayed in the table control but not all.
Note: The vendor field in the item ztable is the value key and its check table is the header ztable.
I am not able to give a condition in the PAI of the screen where the loop gets created for the table control.
Could someone please help me with this issue.
Thanks and Regards,
Vishwa.

Instead of putting a condition to the table control level u can do 1 thing ..create another internal table for ztable (lineitem). And based on ur condition populate this table from the main table and then display this table to the table control.
Regards,
Joy.

Similar Messages

  • BDC: How to enter data in Table control (With wizard) using scrolling?

    Using BDC, I am trying to enter the data in the table control (with wizard).
    I want to know what is the specific command to scroll down in table control (With Wizard).
    While recording I am getting these steps:
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MATNR
                   BDC_OKCODE     /00
    When I use above command and run BDC, it does not scroll.
    Kindly let me know where am I going wrong.
    Thanks in advance for your kind help.
    Ashish

    The transaction is CK94
    and the BDC recording is :
              T     CK94
    SAPLCKBASCR1     0200     X
                   BDC_CURSOR     CKI94A-BDATJ
                   BDC_OKCODE     =ENTR
                   CKI94A-MATNR     10000789
                   CKI94A-WERKS     VA79
                   CKI94A-BDATJ     2005
                   CKI94A-MGTYP     ZDU01
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MISCH_VERH(02)
                   BDC_OKCODE     /00
                   CKI94B-MIXCOST_PC(01)
                   CKI94B-MIXCOST_PC(02)     X
                   CKI94B-MISCH_VERH(01)
                   CKI94B-MISCH_VERH(02)                    40
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MATNR
                   BDC_OKCODE     /00
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MATNR
                   BDC_OKCODE     /00
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MISCH_VERH(07)
                   BDC_OKCODE     /00
                   CKI94B-MIXCOST_PC(07)
                   CKI94B-MISCH_VERH(07)                    60
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MATNR
                   BDC_OKCODE     /00
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MATNR
                   BDC_OKCODE     /00
    SAPLCKBASCR1     0202     X
                   BDC_CURSOR     CKI94B-MATNR
                   BDC_OKCODE     =STOR
    BDC_OKCODE  '/00' is recorded when I scroll down in the table control.
    Thanks for your kind  concern.
    Ashish

  • How to call table control in subscreen in module pool program

    Hi all,
    I have req,need call table control in subscreen,but have done but when scroll bar value getting changed ,
    please guide how to do it.if its possable send the code.
    regards
    santosh

    Hi,
    The navigation happens like this.
    Consider you have a main screen and 2 subscreens.
    When you click or do some event in the Subscreen 2 (lets say this is the one that has the table control), this will first trigger PAI of the Main Screen. In the flow logic of the Main screen, you would have written call subscreen <subscreen area1> and call subscreen <subscreen area2>.
    Now the subscreens get triggered based on the order in which you have written in the flow logic.
    So, here the modules before the first call subscreen statement in the Main Screen PAI is all executed. Now, it goes to the subscreen on which you have triggered an event and executes the modules in the subscreen.
    This is how the execution goes when you have subscreens.
    So there is no problem with the navigation. You only have to worry about the screen where you have the table control. Just debug and find where data is getting changed or duplicated.

  • Table Control Scrolling issue in Module Pool

    Hi,
    I've done table control. From Selection screen i've 3 buttons, if we'll press on one button one table control is visible. There if i do scrolling up to 10 records and i come back to selection and press another button again in table control scrolling is at previous place only. May be its nt refreshing.
    Kinldy help on this issue.
    With Regards,
    jack.

    hi,
    i've done like below. But no result.

  • Problem while creating Table control with wizard

    Hi All,
    I am using the table control wizard.
    Following is the declared data :
    TYPES: BEGIN OF test_str,
            name TYPE string,
            city TYPE string,
          END OF test_str.
    DATA: lt_str TYPE STANDARD TABLE OF test_str,
          ls_str TYPE test_str.
    I activated the program after declaring this..
    then I created a screen.
    while generating the table control , i give the internal table name as lt_str and work area as  ls_str(both of these are also coming in F4 help) , i am getting the following error :
    the table work area  ls_str does not exist or is not a structure.
    Please help.
    Regards
    Panneer

    HI Selvam
    In the wizard please choose the radio button internal program table. I hope you might have choosen the dictonary table.
    And activate the program before generating the wizard.
    Please try this and let me know if any issues.
    Thanks
    Praveen
    Edited by: Praveen Kumar on Feb 4, 2010 4:34 AM

  • Vertical scroll bar in table control with wizrads

    Hi,
      Im working on a table control with a customised table. I created a table control with wizards. But vertical scroll bar is not working. How can i invoke vertical scroll bar and can any one provide the code for the all the operations on a table control like save,find,find next,change....Thanks in advance.
    Avinash

    Hi Avinash
    move the records number of your internal table into field LINES of tablecontrol. So you should change the code generated by wizard in PBO, for example create a new module:
    PROCESS PBO
    MODULE SET_DATA_TO_T_CTRL.
    LOOP..
    ENDLOOP.
    MODULE SET_DATA_TO_T_CTRL.
       DESCRIBE TABLE ITAB LINE SY-TABIX.
       <TABLECONTROL>-LINES = SY-TABIX.
    ENDMODULE.
    Max

  • How to delete the row in table control with respect to one field in module pool programming?

    Hi,
    Can I know the way to delete the row in table control with respect to one field in module pool programming
    Regards
    Darshan MS

    HI,
    I want to delete the row after the display of table control. I have created push button as delete row. If I click on this push button, the selected row should get deleted.
    I have written this code,
    module USER_COMMAND_9000 input.
    DATA OK_CODE TYPE SY-UCOMM.
    OK_CODE = SY-UCOMM.
    CASE OK_CODE.
         WHEN 'DELETE'.
            LOOP AT lt_source INTO ls_source WHERE mark = 'X'.
                APPEND LS_SOURCE TO LT_RESTORE.
                DELETE TABLE LT_SOURCE FROM LS_SOURCE.
                SOURCE-LINES = SOURCE-LINES - 1.
            ENDLOOP.
    But I'm unable to delete the selected rows, It is getting deleted the last rows eventhough I select the other row.
    So I thought of doing with respect to the field.

  • Scroll bar in table control without wizard

    Dear All,
    I have made a module pool program for gate pass. In which i have taken a TABLE CONTROL WITHOUT WIZARD. Now my problem is , the table control does not have the SCROLL BAR  functionality. It is not showing the scroll bar also. So can any one of you can help with the code that i can use to bring that scroll bar.
    Table control is without wizard.
    Thanks & Regards
    Vijju

    Hi,
    In PBO module write the code as,
        data:  fill TYPE i.
        DESCRIBE TABLE itab LINES fill.
      flights-lines = fill.
       Flights is the table control name in screen and itab is the internal table name.
    Regards
    Haritha
    Edited by: Haritha Teegala on Jan 6, 2012 7:53 AM

  • How to create table control without wizard....???

    Hello experts !!
    Plz tell me how to create table control without wizard.
    for sflight table.
    Scenario 1
    I have one screen like 1000.
    There i have taken carrid, connid, fldate as criteria.
    Now i want to display Planetype, Price, Seatsmax in the table control.
    Scenario 2
    i have two screens 1001, 1002.
    in the screen 1001 i have taken carrid, connid, fldate as criteria and there is a Button.
    when i will click the button it will show the price, planetype and seatsmax in the table control in the next screen, i.e 1002
    plz help me out...
    and how to save new record in the dictionary table from that table control....

    Hi
    see the sample programs and design accordingly
    syntax:
    CONTROLS .
    if you only want to determine the row of the table control. SY´-SUBRC allows you to check if the cursor is placed in a row of a table control.
    u need to comment the performs of table control fields and write ur own perform statements. And u have to declare the table control fields as separate internal tables.
    Go through this urls.
    www.****************
    www.sap-img.com
    Check the below links.
    just refer to the link below
    http://www.sapmaterial.com/tablecontrol_sap.html
    step by step procedure with screen shots
    http://www.planetsap.com/howdo_a.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac5135c111d1829f0000e829fbfe/content.htm
    http://sap.niraj.tripod.com/id25.html
    Also you can see the below examples...
    Go to se38 and give demodynpro and press F4.
    YOu will get a list of demo module pool programs.
    One more T-Code is ABAPDOCU.
    YOu can find more examples there.
    See the prgrams:
    DEMO_DYNPRO_TABLE_CONTROL_1 Table Control with LOOP Statement
    DEMO_DYNPRO_TABLE_CONTROL_2 Table Control with LOOP AT ITAB
    http://www.geocities.com/ZSAPcHAT
    http://www.allsaplinks.com/files/using_table_in_screen.pdf
    Regards
    Anji

  • How to Populate a Dropdown field for a table control with different keys

    Hi All,
    I have Table control with abt eight columns (fields). Out of these eight field one field is with dropdown list. In table control Project ID is Primary key column. Depending upon this Project ID value, i have different values which is to be populated in dropdown boxes. In table control if there is only one project ID value say 'P000715' i can populate it but when i have more than one project ID (P000715, p000716, P000717.....) in display in rows of table control i want to have different values in my dropdown field corresponding to that row of project id. Experts please tell me how to achieve this functionality.
    Thankx in Advance
    Rizwan Ahmad Siddiqui

    The only way you may be able to do this is using
    MODULE PROCESS ON VALUE-REQUEST. User-programmer F4 help
    in your PAI routine.
    In this routine you would build the list and get the returned value to update the field.
    Something like this.
      DATA: BEGIN OF value_tab OCCURS 0,
        field1 TYPE zlmltype,
        field2 TYPE zltypex,
      END OF value_tab.
    * Drop down values
      REFRESH it_return_tab. CLEAR it_return_tab.
      REFRESH value_tab. CLEAR value_tab.
      SELECT ltype ltypex
        INTO TABLE value_tab
        FROM zlmltyp
        WHERE auth NE '9'.    "System Only
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
                retfield   = 'FIELD1'
                value_org  = 'S'
           TABLES
                value_tab  = value_tab[]
                return_tab = it_return_tab.
      READ TABLE it_return_tab INDEX 1 INTO wa_return_tab.
      CHECK sy-subrc EQ 0.
      p_pleadtyp = wa_return_tab-fieldval.

  • Table Control with default values for a Column

    Hi,
      I have a table Control with  fields  kschl    kbetr    konwa    mark     
    i have created a range for KSCHL
    now i need to pass this to the table column
    Kindly suggest how can i handle this?
    BEGIN OF y_condition,
      kschl       TYPE kscha,
      kbetr       TYPE kbetr_kond,
      konwa       TYPE konwa,
      mark        TYPE char1,
    END OF y_condition,
    t_cost TYPE STANDARD TABLE OF y_condition,
    MODULE mo_tc_cost_init OUTPUT.
      IF  w_tc_cost_c IS INITIAL.
        REFRESH CONTROL c_tc_cost FROM SCREEN c_scr2000.
        REFRESH t_cost.
        MOVE c_select TO w_tc_cost_c.
        FREE r_kschl.
        MOVE: c_i    TO r_kschl-sign,
              c_eq   TO r_kschl-option,
              c_zhb1 TO r_kschl-low.
        APPEND r_kschl.
        MOVE: c_i    TO r_kschl-sign,
              c_eq   TO r_kschl-option,
              c_zhb2 TO r_kschl-low.
        APPEND r_kschl.
        MOVE: c_i    TO r_kschl-sign,
              c_eq   TO r_kschl-option,
              c_zhb3 TO r_kschl-low.
        APPEND r_kschl.
      ENDIF.

    Can you clarify please?... you say have a table control containing the following columns:
    kschl TYPE kscha,
    kbetr TYPE kbetr_kond,
    konwa TYPE konwa,
    mark TYPE char1
    so where do you expect the range table "r_kschl" to appear? ... did you want a second table control on the screen?
    Jonathan

  • Work flow and tables related with ESS Travel Module

    Hi Experts,
    I am new for work flow. Presently I am working for SAP ESS / MSS Travel module. Can you please let me know the names of work flows and tables related with ESS Travel module.
    Regards,
    Gary

    Hi Gary,
    Check if this [thread1|Let us learn SAP ESS Travel] [thread2|Travel Management Tables] helps you.
    Regards,
    Saumya

  • Multiple row selection in table contrl with wizard

    Hi all,
    i developed a table control using wizard . i have the plus and sub buttons that came when i udes wizard to delete or adda row.
    My question is : It allows me to delete one row ata time is there way where i can delete mutliple rows in a single attemp  i.e i wiuld select multiple rows at one and click the delete row and it need to delete all selected rows , now it allows me to select only one row at atime
    Thanks all in advance
    Suchitra

    HI,
      Set the Mulbiple row selet propery at the table control level to get this working.
    Thanks
    mahesh

  • How to handle Table controls with XD01 in BDC

    How to handle Table controls with XD01 in BDC - If there are more than 5/6 records in Table control. - Can any one explain it with a piece of code plz..
    Thanks & Regards,
    Krishna Chaitanya

    Hi
    check this code...viz for xko1....
    DATA: BEGIN OF it_xk01 OCCURS 0,
            f1(1),
            f2(5),
            f3(5),
            f4(9),
            f5(9),
          END OF it_xk01.
    DATA: v_count(2) VALUE '00',
          v_koinh(14),
          v_banks(14),
          v_bankn(14),
          v_bankl(14),
          it_bdcdata TYPE STANDARD TABLE OF bdcdata WITH HEADER LINE,
          wa_ctuparams type ctu_params.
    PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      PERFORM get_f4.
    START-OF-SELECTION.
      PERFORM upload_data.
    END-OF-SELECTION.
      LOOP AT it_xk01.
        IF it_xk01-f1 = 'H'.
          PERFORM bdc_dynpro      USING 'SAPMF02K' '0100'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF02K-KTOKK'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'RF02K-KTOKK'
                                        it_xk01-f2.
        ENDIF.
        IF it_xk01-f1 = 'N'.
          PERFORM bdc_dynpro      USING 'SAPMF02K' '0110'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'LFA1-PSTLZ'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=VW'.
          PERFORM bdc_field       USING 'LFA1-ANRED'
                                        'Mr'.
          PERFORM bdc_field       USING 'LFA1-NAME1'
                                        it_xk01-f2.
          PERFORM bdc_field       USING 'LFA1-SORTL'
                                        it_xk01-f3.
          PERFORM bdc_field       USING 'LFA1-PSTLZ'
                                        it_xk01-f4.
          PERFORM bdc_field       USING 'LFA1-LAND1'
                                        it_xk01-f5.
          PERFORM bdc_dynpro      USING 'SAPMF02K' '0120'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'LFA1-KUNNR'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=VW'.
        ENDIF.
        IF it_xk01-f1 = 'I'.
          v_count = v_count + 1.
          IF v_count le 5.
          CONCATENATE 'LFBK-KOINH(' v_count ')' INTO v_koinh.
          CONCATENATE 'LFBK-BANKS(' v_count ')' INTO v_banks.
          CONCATENATE 'LFBK-BANKN(' v_count ')' INTO v_bankn.
          CONCATENATE 'LFBK-BANKL(' v_count ')' INTO v_bankl.
          CONDENSE v_koinh NO-GAPS.
          CONDENSE v_banks NO-GAPS.
          CONDENSE v_bankl NO-GAPS.
          CONDENSE v_bankn NO-GAPS.
          PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                         v_koinh.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING  v_banks
                                        it_xk01-f2.
          PERFORM bdc_field       USING  v_bankl
                                        it_xk01-f3.
          PERFORM bdc_field       USING  v_bankn
                                        it_xk01-f4.
          PERFORM bdc_field       USING  v_koinh
                                        it_xk01-f5.
          else.
          PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                         v_koinh.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=P+'.
          v_count = 1.
          PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                         v_koinh.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          CONCATENATE 'LFBK-KOINH(' v_count ')' INTO v_koinh.
          CONCATENATE 'LFBK-BANKS(' v_count ')' INTO v_banks.
          CONCATENATE 'LFBK-BANKN(' v_count ')' INTO v_bankn.
          CONCATENATE 'LFBK-BANKL(' v_count ')' INTO v_bankl.
          CONDENSE v_koinh NO-GAPS.
          CONDENSE v_banks NO-GAPS.
          CONDENSE v_bankl NO-GAPS.
          CONDENSE v_bankn NO-GAPS.
          PERFORM bdc_field       USING  v_banks
                                        it_xk01-f2.
          PERFORM bdc_field       USING  v_bankl
                                        it_xk01-f3.
          PERFORM bdc_field       USING  v_bankn
                                        it_xk01-f4.
          PERFORM bdc_field       USING  v_koinh
                                        it_xk01-f5.
          ENDIF.
        ENDIF.
        CLEAR it_xk01.
      ENDLOOP.
      PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                         v_koinh.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
      perform bdc_dynpro      using 'SAPLSPO1' '0300'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=YES'.
      wa_ctuparams-DISMODE = 'A'.
      wa_ctuparams-UPDMODE = 'S'.
      wa_ctuparams-DEFSIZE = 'X'.
      CALL TRANSACTION 'XK01' USING it_bdcdata  MODE 'A'
                                                 UPDATE 'S'.
    options from wa_ctuparams.
    MODE 'A'
                                                UPDATE 'S'.
    *&      Form  upload_data
          text
    FORM upload_data .
      DATA: lv_infile TYPE string.
      lv_infile = p_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename            = lv_infile
          filetype            = 'ASC'
          has_field_separator = 'X'
        TABLES
          data_tab            = it_xk01.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " upload_data
    *&      Form  get_f4
          text
    FORM get_f4 .
      CALL FUNCTION 'F4_FILENAME'
       EXPORTING
         program_name        = syst-cprog
         dynpro_number       = syst-dynnr
        FIELD_NAME          = ' '
       IMPORTING
         file_name           = p_file.
    ENDFORM.                                                    " get_f4
           Start new screen                                              *
    FORM bdc_dynpro USING program dynpro.
      CLEAR it_bdcdata.
      it_bdcdata-program  = program.
      it_bdcdata-dynpro   = dynpro.
      it_bdcdata-dynbegin = 'X'.
      APPEND it_bdcdata.
    ENDFORM.                    "BDC_DYNPRO
           Insert field                                                  *
    FORM bdc_field USING fnam fval.
    IF FVAL <> NODATA.
      CLEAR it_bdcdata.
      it_bdcdata-fnam = fnam.
      it_bdcdata-fval = fval.
      APPEND it_bdcdata.
    ENDIF.
    ENDFORM.                    "BDC_FIELD
    *H     0302
    *N     sdng     dddsj     500020     IN
    *I     IN     ICICI     734897597     xyz
    *I     IN     SBH     768346687     abc
    *I     IN     SBI     345687346     fgh
    *I     IN     SBH     763846878     ujhgf
    *I     IN     HSBC     797893778     fvdg
    *I     IN     HDFC     723678638     fdgf
    *I     IN     4444     435645646     fgfg
    *I     IN     3400     763468768     gfgfg

  • 'how to code for table control wizard in module pool program

    Hi Gurus,
    Please provide me a sample code of table control wizard...
    Thanks in advance!!!!
    Regards,
    Kranthi

    Hi Kranti,
    check this code... it should be helpful
    *& Module pool       Z_TABLE_CONTROL_WIZARD_DEMO                       *
    PROGRAM  z_table_control_wizard_demo             .
    DATA: BEGIN OF lt_vbak OCCURS 0,
           flag  TYPE c,
           vbeln TYPE vbeln_va,
           netwr TYPE netwr,
           kunnr TYPE kunnr,
          END OF lt_vbak.
    DATA: sfkunnr TYPE kunnr.
    *&spwizard: declaration of tablecontrol 'TCONTROL' itself
    CONTROLS: tcontrol TYPE TABLEVIEW USING SCREEN 9000.
    *&spwizard: lines of tablecontrol 'TCONTROL'
    DATA:     g_tcontrol_lines  LIKE sy-loopc.
    DATA:     ok_code LIKE sy-ucomm.
    *&spwizard: output module for tc 'TCONTROL'. do not change this line!
    *&spwizard: update lines for equivalent scrollbar
    MODULE tcontrol_change_tc_attr OUTPUT.
      DESCRIBE TABLE lt_vbak LINES tcontrol-lines.
    ENDMODULE.                    "TCONTROL_change_tc_attr OUTPUT
    *&spwizard: output module for tc 'TCONTROL'. do not change this line!
    *&spwizard: get lines of tablecontrol
    MODULE tcontrol_get_lines OUTPUT.
      g_tcontrol_lines = sy-loopc.
    ENDMODULE.                    "TCONTROL_get_lines OUTPUT
    *&spwizard: input module for tc 'TCONTROL'. do not change this line!
    *&spwizard: modify table
    MODULE tcontrol_modify INPUT.
      MODIFY lt_vbak
        INDEX tcontrol-current_line.
    ENDMODULE.                    "TCONTROL_modify INPUT
    *&spwizard: input modul for tc 'TCONTROL'. do not change this line!
    *&spwizard: mark table
    MODULE tcontrol_mark INPUT.
      DATA: g_tcontrol_wa2 LIKE LINE OF lt_vbak.
      IF tcontrol-line_sel_mode = 1.
        LOOP AT lt_vbak INTO g_tcontrol_wa2
          WHERE flag = 'X'.
          g_tcontrol_wa2-flag = ''.
          MODIFY lt_vbak
            FROM g_tcontrol_wa2
            TRANSPORTING flag.
        ENDLOOP.
      ENDIF.
      MODIFY lt_vbak
        INDEX tcontrol-current_line
        TRANSPORTING flag.
    ENDMODULE.                    "TCONTROL_mark INPUT
    *&spwizard: input module for tc 'TCONTROL'. do not change this line!
    *&spwizard: process user command
    MODULE tcontrol_user_command INPUT.
      ok_code = sy-ucomm.
      PERFORM user_ok_tc USING    'TCONTROL'
                                  'LT_VBAK'
                                  'FLAG'
                         CHANGING ok_code.
      sy-ucomm = ok_code.
    ENDMODULE.                    "TCONTROL_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_9000  OUTPUT
    *       text
    MODULE status_9000 OUTPUT.
      SET PF-STATUS 'S9000'.
      SET TITLEBAR 'T9000'.
    ENDMODULE.                 " STATUS_9000  OUTPUT
    *&      Module  USER_COMMAND_9000  INPUT
    *       text
    MODULE user_command_9000 INPUT.
      CASE sy-ucomm.
        WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
          LEAVE TO SCREEN 0.
        WHEN 'DISP'.
          SELECT vbeln netwr kunnr INTO CORRESPONDING FIELDS OF TABLE lt_vbak
          FROM vbak
          WHERE kunnr = sfkunnr.
    *    LEAVE TO LIST-PROCESSING [AND RETURN TO SCREEN <nnnn>].
    *    By default, the dialog processor returns to the PBO processing of
    *    the screen from which the list processor was called. The optional
    *    addition AND RETURN TO SCREEN allows you to specify a different
    *    screen in the current screen sequence at whose PBO event you want
    *    to resume processing.
        when 'LIST'.
        LEAVE TO LIST-PROCESSING.
        WRITE:/ 'Time  :', SY-UZEIT.
        LOOP AT LT_VBAK.
        WRITE:/ LT_VBAK-VBELN,
                LT_VBAK-NETWR,
                LT_VBAK-KUNNR.
        ENDLOOP.
        WHEN 'SUBM'.
    *& You can call executable programs from other ABAP programs using the
    *& following statement:
    *& SUBMIT <rep>|(<field>) [AND RETURN] [<options>].
          SUBMIT z_submit_report VIA SELECTION-SCREEN AND RETURN.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
                                                     TABLE CONTROL WIZARD SE51 CODE
    PROCESS BEFORE OUTPUT.
    *&spwizard: pbo flow logic for tablecontrol 'TCONTROL'
      module TCONTROL_change_tc_attr.
    *&spwizard: module TCONTROL_change_col_attr.
      loop at   LT_VBAK
           with control TCONTROL
           cursor TCONTROL-current_line.
        module TCONTROL_get_lines.
    *&spwizard:   module TCONTROL_change_field_attr
      endloop.
    MODULE STATUS_9000.
    PROCESS AFTER INPUT.
    *&spwizard: pai flow logic for tablecontrol 'TCONTROL'
      loop at LT_VBAK.
        chain.
          field LT_VBAK-VBELN.
          field LT_VBAK-NETWR.
          field LT_VBAK-KUNNR.
          module TCONTROL_modify on chain-request.
        endchain.
        field LT_VBAK-FLAG
          module TCONTROL_mark on request.
      endloop.
      module TCONTROL_user_command.
    *&spwizard: module TCONTROL_change_tc_attr.
    *&spwizard: module TCONTROL_change_col_attr.
    MODULE USER_COMMAND_9000.
    regards
    padma

Maybe you are looking for

  • Custom - Material Master Update using an IDOC (Message Type - MATMAS_BAPI)

    Hello everyone, I was writing a functional specs. Basically, I want to update the material master MM02 using an IDOC (MATMAS_BAPI01 - Basic Type & MATMAS_BAPI - Message Type). This is currently working. To my understanding, this currently uses functi

  • Purchase Order - Invoice tab Jurisdiction code

    Hello, This has reference to the Purchae Ordrer item detail. In the delivery address "Say Address A"  there is the postal code and region and based on this POSTAL CODE the tax jusrisdiction gets populated. Now, if I change the delivery address, subse

  • Bt infinity Ethernet ports

    Hi     Ok Bt infinity was installed on Mon  Speed checks indicate speed download speeds fluctuating from 49.60 mb  down to 19mb, will only know how this will turn out after the 10 days learning period. I cant say ive noticed Internet being any faster

  • External Hard Drive "partial" crash?

    Ive been using a 500 gb GDrive mini triple for about 6 months now to store all of my data for school and it has been great, until now. I dont kow exactly what happened, but now "most" of my files are corrupt (the important ones conveniently). I had p

  • Using Regex to search strings......

    Hey guys, I'm trying to scan an html file for specific strings. Basically, I just store the entire html file as a one big long string and then use a regex to scan the string for specific keywords that I am looking for. However, I am not all that fami