TABLE CONTROL AND SCREEN

HI Gurus,
i have to following requirement,
i have to make a screen  in which there would be four fields
name          xxx
age               x
date          xx.xx.xx
time          xx xx xx
the screen fields are to by filled by the user at the run time and this data should be saved in the data base table(say ztable)
so as far i have understood i need to create a screen with a table control and a database table  to save the data of the table control (after the user press save buttom)
please help me how to create a table control
and also
help me with the logic of calling the screen(this screen with table control)
also the logic of save butoom too
please help as soon as possible
points will be surely awarded ..
thanks in advance
anuj

use this eg to your requirement
PROGRAM YTABLEDML .
TABLES : KNA1.
DATA : ITAB LIKE KNA1 OCCURS 0 WITH HEADER LINE.
CONTROLS : VCONTROL TYPE TABLEVIEW USING SCREEN '100'.
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'INSERT'.
MOVE KNA1 TO ITAB.
APPEND ITAB.
INSERT INTO KNA1 VALUES ITAB.
IF SY-SUBRC = 0.
MESSAGE I000(0) WITH 'INSERTED'.
ELSE.
MESSAGE E001(0) WITH 'NOTINSERTED'.
ENDIF.
WHEN 'UPDATE'.
MOVE KNA1 TO ITAB.
APPEND ITAB.
UPDATE KNA1 FROM TABLE ITAB.
IF SY-SUBRC = 0.
MESSAGE I000(0) WITH 'UPDATED'.
ELSE.
MESSAGE E001(0) WITH 'NOTUPDATED'.
ENDIF.
WHEN 'DELETE'.
MOVE KNA1 TO ITAB.
APPEND ITAB.
DELETE FROM KNA1 WHERE KUNNR = ITAB-KUNNR.
MESSAGE I000(0) WITH 'DELETED'.
IF SY-SUBRC = 0.
ELSE.
MESSAGE E001(0) WITH 'NOTDELETED'.
ENDIF.
ENDCASE.
ENDMODULE.
MODULE USER_EXIT INPUT.
CASE SY-UCOMM.
WHEN 'EXIT'.
CALL TRANSACTION 'SE38'.
ENDCASE.
ENDMODULE.
*PROCESS BEFORE OUTPUT.
*LOOP WITH CONTROL VCONTROL.
*ENDLOOP.
MODULE STATUS_0100.
*PROCESS AFTER INPUT.
*LOOP WITH CONTROL VCONTROL.
MODULE USER_COMMAND_0100.
ENDLOOP.
*MODULE USER_EXIT.
TCODE IS YDMLTAB.

Similar Messages

  • Table control and a selection screen

    Hi,
    I have a requirement where I am supposed to be designing a screen that has a table control with fields
    w/selection column       label 1(non-editable)          i/o field(from)        i/o field(to)
    w/selection column       label 2(non-editable)          i/o field(from)        i/o field(to)
    On searching the forum threads, I found related threads as to how to implement a selection screen (as the I/O fields are similar to select-options) in module pool programming. But mine requires the use of table control and a kind of selection screen embedded into it. Please guide me through this requirement.

    Hi
    If you need to implement a table control on selection screen u need to use a tabstrip as graphic element supports the table control.
    So
    1 - Step: define a tabstrip with 1 tab only:
    SELECTION-SCREEN BEGIN OF BLOCK 3.
    SELECTION-SCREEN BEGIN OF TABBED BLOCK MAX FOR 22 LINES.
    SELECTION-SCREEN TAB (25) TABS1 USER-COMMAND UCOMM1
             DEFAULT SCREEN 100.
    SELECTION-SCREEN END OF BLOCK MAX.
    SELECTION-SCREEN END OF BLOCK 3.
    2 - Step design the subscreen (in my sample the dynrpo 100) and insert the table control there:
    PROCESS BEFORE OUTPUT.
      MODULE INIT_CTRL.
      LOOP WITH CONTROL T_CTRL.
        MODULE DISPLAY_DATA.
      ENDLOOP.
    PROCESS AFTER INPUT.
      LOOP WITH CONTROL T_CTRL.
          MODULE UPDATE_DATA.
      ENDLOOP.
    In the module DISPLAY_DATA and UPDATE_DATA u need to implement the code to transfer the data from internal table to table control and from table control to internal table, in order to display and update the data.
    Max

  • How to create table control and link in screen exit

    Hi Friends,
                     I want to create table control in enhancement CONFPP07.  The values entered in table control should be stored in ztable along with some other information.
    But I want to know how to create table control in screen-exit and how and where to write code and how to link all.
                   Kindly send me step-by-step documentation or real time examble prg.
                   Kindly give ur answers for this problem only.
    Thanks in Advance,
    S.Senthil kumar

    If u have a  screen exit..then u will have a option to create a sub screen..in that sub screen u activate the pai and pbo events..it will show u where to write the code..

  • How to insert row in table control and save the data in tables

    Hi,
    I have one table control i am displaying data into table control ,
    my problem is : i want to display data into read mode in table control.
    but when i click on insert button on the same screen i want one blank line should inserted into table control , then i want to insert some data into table control on that row , when i click the save button . the new data inserted into the table control is insert that data into ztable ,
    please give me solution
    main problen is  how can know inserted line in table control and pass that data into ztable.

    Hi,
    Follow the below logic,
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0001.
      MODULE POPULATE_TABLE_CONTROL. --> Get the data from table store in 
                                                                          ITAB
      LOOP AT GT_CTRL_LP_D516 INTO GS_WA_CTRL_LP_D516
           WITH CONTROL CTRL_LP_D516
           CURSOR CTRL_LP_D516-CURRENT_LINE.
      The following module moves data to control
        MODULE MOVE_TO_CONTROL.--> Move data from ITAB to table control
      ENDLOOP.
    PROCESS AFTER INPUT.
      LOOP AT GT_CTRL_LP_D516.
      ENDLOOP.
      MODULE EXIT AT EXIT-COMMAND.
      MODULE USER_COMMAND_0001.  --> Here you have to take out the values from table control and update database table
    Reward points if helpful.
    Thanks and regards,
    Mallareddy Rayapureddy,
    Munich, Germany.

  • What are the uses of table control and tabstrip control

    can anyone tell me the uses of table control and tabstrip control

    Hi,
    table control is more comfortable for customizing.scroll bars all possible in this.where as it is not possible in step loops.
    check this example.
    PROGRAM ZBHTCTRL.
    TABLES: LFA1, EKKO.
    DATA: OKCODE1 LIKE SY-UCOMM,
    OKCODE2 LIKE SY-UCOMM.
    CONTROLS TABC TYPE TABLEVIEW USING SCREEN 1001.
    DATA: BEGIN OF ITAB OCCURS 0,
    MANDT LIKE EKKO-MANDT,
    EBELN LIKE EKKO-EBELN,
    BSTYP LIKE EKKO-BSTYP,
    BSART LIKE EKKO-BSART,
    END OF ITAB.
    MODULE USER_COMMAND_1000 INPUT.
    CASE OKCODE1.
    WHEN 'BACK'.
    SET SCREEN 0.
    WHEN 'NEXT'.
    SET SCREEN 1001.
    SELECT * FROM EKKO INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE
    LIFNR = LFA1-LIFNR.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_1001 INPUT
    MODULE MOVE_DATA OUTPUT.
    EKKO-MANDT = ITAB-MANDT.
    EKKO-EBELN = ITAB-EBELN.
    EKKO-BSTYP = ITAB-BSTYP.
    EKKO-BSART = ITAB-BSART.
    ENDMODULE. " MOVE_DATA OUTPUT
    MODULE USER_COMMAND_1001 INPUT.
    CASE OKCODE2.
    WHEN 'BACK'.
    SET SCREEN 1000.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_1001 OUTPUT
    MODULE STATUS_1001 OUTPUT.
    SET PF-STATUS 'MENU'.
    SET TITLEBAR 'TIT'.
    ENDMODULE. " STATUS_1001 OUTPUT
    MODULE STATUS_1000 OUTPUT.
    SET PF-STATUS 'DMENU'.
    SET TITLEBAR 'xxx'.
    ENDMODULE. " STATUS_1000 OUTPUT
    FORM ON_CTMENU_FORM1 USING CMENU TYPE REF TO CL_CTMENU.
    CALL METHOD CMENU->LOAD_GUI_STATUS
    EXPORTING
    PROGRAM = ' ZBHTCTRL'
    STATUS = 'CMENU'
    MENU = CMENU.
    CALL METHOD CMENU->ADD_FUNCTION
    EXPORTING
    FCODE = 'RX'
    TEXT = 'RECIEVE'.
    ENDFORM.
    FLOW LOGIC:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_1000.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_1000.
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_1001.
    LOOP AT ITAB WITH CONTROL TABC CURSOR TABC-TOP_LINE.
    MODULE MOVE_DATA.
    ENDLOOP.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_1001.
    LOOP AT ITAB.
    ENDLOOP.
    for more info check this link.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm
    thanks
    Ashu.

  • How Make Table Control full screen   ?

    Hi all, how can I make table control full screen?

    Hello,
    In the menu painter for the screen containing the table control....drag the boundaries of the table to fit the visible boundary marked..if we are calling table control using a sub screen area ..then the subscreen area in the main screen needs to be enlarged as per requirements...
    Pls check and revert
    Regards
    Byju

  • How do I click on a cell in a table control, and display the value in a string?

    What I would like to do is to click on a cell in a table control, and have the value of the cell be displayed in a string indicator. What ever cell I click on, I would like the value to be displayed in the indicator.
    Thank you!
    Solved!
    Go to Solution.

    ... or
    Event >>> ouse down for table.
    Use Coords" to feed invoke node "point To Row Column" and returned "Cell Postion" can be unbundled to produce the row and column tht can be used to index out the value.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Printing a Table Control AND ALV grid from same report

    Hello,
    I am trying to figure out how to print the output of my report, which consist of a table control and a OO-driven ALV grid under it. i tried several possibilities but I only get the ALV in my spool....?
    Answers will be rewarded !

    Keep a break point in that method. Press print in the ALV, check it stops in the break point. If yes then you can use write statement, the values what ever u r writing it come in the print-out. If the control doesn't stop in the break point then there is some problem in the method declartion.
    Check my code - I written every thing in the global declaration.
                          ALV Class Definition
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
            handle_top_of_list
                FOR EVENT print_top_of_list OF cl_gui_alv_grid,
            handle_end_of_list
                FOR EVENT print_end_of_list OF cl_gui_alv_grid.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    DATA: o_event_receiver   TYPE REF TO lcl_event_receiver.
                          ALV Class Implementation
    CLASS lcl_event_receiver IMPLEMENTATION.
      METHOD handle_top_of_list.
        DATA: lws_top1(20) TYPE c,
              lws_top2(150) TYPE c,
              lws_top3(150) TYPE c,
              lws_len_file TYPE i,
              lws_file(80) TYPE c,
              lws_file1(100) TYPE c,
              lws_file2(100) TYPE c,
              lws_file3(100) TYPE c.
        WRITE: / text-001.
    *Date
        CONCATENATE text-008 ws_date INTO lws_top1 SEPARATED BY space.
        WRITE : /1 lws_top1.
    Source File Name
        WRITE: / text-009.
        lws_len_file = STRLEN( p_upload ).
        IF lws_len_file < 80.
          MOVE p_upload TO lws_top2.
          WRITE : /1 lws_top2.
        ELSE.
          MOVE p_upload TO lws_file.
          MOVE p_upload+80(48) TO lws_file1.
          DO.
            IF lws_file+79(1) EQ '\'.
              EXIT.
            ELSE.
              CONCATENATE lws_file+79(1) lws_file2 INTO lws_file2.
              SHIFT lws_file RIGHT.
            ENDIF.
          ENDDO.
          IF lws_file2 IS INITIAL.
            MOVE lws_file TO lws_top2.
            WRITE : /1 lws_top2.
            WRITE : /1 lws_file1.
          ELSE.
            CONDENSE lws_file.
            MOVE lws_file TO lws_top2.
            WRITE : /1  lws_top2.
            CONCATENATE lws_file2 lws_file1 INTO lws_file3.
            WRITE : /1  lws_file3.
          ENDIF.
        ENDIF.
      ENDMETHOD.                           "handle_top_of_list
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    Regards,
    Prakash.

  • Table controls and step loops

    what are the differances between table controls and step loops?

    Hi
    It's only graphic diff. managed by diff. ways (of course):
    in steploop there isn't a table control so in PBO and PAI it has only the stataments LOOP/ENDLOOP or LOOP AT ITAB/ENDLOOP.
    The step loop is way older than table control to display the data of a table.
    check this
    Re: step loops, table controls
    -charitha.

  • More columns in table control and occupy space left on screen

    Hi,
    How to put more no of coulums in table control.
    on my screen i am getting 10 coulums.for further
    i have to scrool.but on my customer screen it is displaying
    8 columns, but on his system,  left side more space is remaining,he asking to increase the table control so that he can able to to see more columns,but on my system it is saying table control length is 115.it is not allowing to increase it.
    Is there any option to occupy space left on customer screen,on my system it is showing no space left
    Plz give some solution .
    Thanks and Regards
    Ramakrisnaia y

    Hi,
    i observed that in order to put screen in synch for both customer and for us ,i  modified the screen attributes.
    that mean length and witdh.
    if u write BDC then we have to use one strcture in order to take defualt screen size.in my case i am using noram screen and table control.
    Thanks .
    Ramki.

  • Table control in Screen Painter

    Hi Friends,
    I have created a screen using screen painter. The screen is having 4 tabs (subscreen) and in all the subscreen, i have used table control to insert multiple lines in the table.
    The problem I am getting is that, the data of table control part is not getting inserted into the table.
    The program part is given below for reference.
    ======================================================
    PROCESS BEFORE OUTPUT.
      MODULE SECDAM_CHANGE_TC_ATTR.
      LOOP AT   IT_SECDAM
           INTO IT_SECDAM
           WITH CONTROL SECDAM
           CURSOR SECDAM-CURRENT_LINE.
        MODULE SECDAM_GET_LINES.
      ENDLOOP.
    MODULE STATUS_0109.
    PROCESS AFTER INPUT.
    *&SPWIZARD: PAI FLOW LOGIC FOR TABLECONTROL 'SECDAM'
      LOOP AT IT_SECDAM.
        CHAIN.
          FIELD ZTDRDTL-DIVSN.
          FIELD ZTDRDTL-MATRL.
          FIELD ZTDRDTL-SLQTY.
          FIELD ZTDRDTL-DMQTY.
          FIELD ZTDRDTL-SSQTY.
          MODULE SECDAM_MODIFY ON CHAIN-REQUEST.
        endchain.
      ENDLOOP.
      MODULE SECDAM_USER_COMMAND.
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Flow-logic part:
    DATA : BEGIN OF IT_SECDAM OCCURS 0,
           DIVSN LIKE ZTDRDTL-DIVSN,
           MATRL LIKE ZTDRDTL-MATRL,
           SLQTY LIKE ZTDRDTL-SLQTY,
           DMQTY LIKE ZTDRDTL-DMQTY,
           SSQTY LIKE ZTDRDTL-SSQTY,
           END OF IT_SECDAM.
    CONTROLS: SECDAM TYPE TABLEVIEW USING SCREEN 0109.
    DATA:     G_SECDAM_LINES  LIKE SY-LOOPC.
    MODULE SECDAM_CHANGE_TC_ATTR OUTPUT.
      DESCRIBE TABLE IT_SECDAM LINES SECDAM-LINES.
    ENDMODULE.                    "SECDAM_CHANGE_TC_ATTR OUTPUT
    MODULE SECDAM_GET_LINES OUTPUT.
      G_SECDAM_LINES = SY-LOOPC.
    ENDMODULE.                    "SECDAM_GET_LINES OUTPUT
    MODULE SECDAM_MODIFY INPUT.
      MODIFY IT_SECDAM
        FROM IT_SECDAM
        INDEX SECDAM-CURRENT_LINE.
    ENDMODULE.                    "SECDAM_MODIFY INPUT
    MODULE SECDAM_USER_COMMAND INPUT.
      OK_CODE = SY-UCOMM.
      PERFORM USER_OK_TC USING    'SECDAM'
                                  'IT_SECDAM'
                         CHANGING OK_CODE.
      SY-UCOMM = OK_CODE.
    ENDMODULE.                    "SECDAM_USER_COMMAND INPUT
    =========================================================
    Kindly guide me the solution.
    TIA.
    Regards,
    Mark K

    Hi
      Try like this may be you will get it.
    process before output.
    module status_1000.
    loop at itab with control tabctrl cursor tabctrl-top_line.
      module assign_data.
    endloop.
    process after input.
    module user_command_1000.
    loop at itab.
    endloop.
    In flow logic.
    tables vbak.
    data itab like vbak occurs 0 with header line.
    controls tabctrl type tableview using screen 1000.
    data fill type i.
    *&      Module  Assign_data  OUTPUT
          text
    module assign_data output.
    move itab to vbak.
    endmodule.                 " Assign_data  OUTPUT
    *&      Module  USER_COMMAND_1000  INPUT
          text
    module user_command_1000 input.
      case sy-ucomm.
        when 'EXIT'.
         set screen 0.
      endcase.
    endmodule.                 " USER_COMMAND_1000  INPUT
    *&      Module  STATUS_1000  OUTPUT
          text
    module status_1000 output.
    SET PF-STATUS 'xxxxxxxx'.
    SET TITLEBAR 'xxx'.
    select * from vbak into table itab.
    describe table itab lines fill.
    tabctrl-lines = fill.
    Endmodule.
    Regards
    Haritha.

  • Help regarding 'table controls' and 'internal table' updation

    Hi all.
    Basically this is what i have done..... I have created a table control in module pool program. I declared an Internal table and also have populated it from a database table. I have also used insert statement to insert an blank record in the table control view and delete statements to delete any record,  also in the table control view... .
    But I am not able to update any new record into an Internal table or  the  original table ..
    Any Ideas how to do it ,Gurus
    Thanks

    HEllo,
    Check thsi simple report.
    REPORT ZTFH_TABLECONTROL .
    TABLES : ZEMPTABLE.
    DATA : SELLINE .
    DATA : FLD(20).
    DATA : LINNO TYPE I , OFF TYPE I.
    DATA : ITAB LIKE ZEMPTABLE OCCURS 10 WITH HEADER LINE.
    CONTROLS  : CON_TAB TYPE TABLEVIEW USING SCREEN 100.
    SELECT * FROM ZEMPTABLE INTO TABLE ITAB.
    DESCRIBE TABLE ITAB LINES CON_TAB-LINES.
    CALL SCREEN 100.
    *&      Module  EXT_COMM  INPUT
    *       text
    MODULE EXT_COMM INPUT.
    LEAVE PROGRAM.
    ENDMODULE.                 " EXT_COMM  INPUT
    *&      Module  TAB_UPDATE  INPUT
    *       text
    MODULE TAB_UPDATE INPUT.
    CASE SY-UCOMM.
    WHEN 'DEL'.
          IF SELLINE = 'X'.
            DELETE ITAB WHERE EMPNO = ITAB-EMPNO.
            MESSAGE I000(ZYF_DEL).
          ENDIF.
    WHEN 'UPD'.
        IF SELLINE = 'X'.
             MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
             MESSAGE I001(ZYF_DEL).
        ENDIF.
    WHEN 'INS'.
         IF SELLINE = 'X'.
          GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
          SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
          IF FLD CP 'ITAB*' AND SY-SUBRC = 0.
            IF LINNO >= 1.
              LINNO = LINNO + CON_TAB-TOP_LINE - 1.
              CLEAR ITAB.
              INSERT ITAB INDEX LINNO.
              CON_TAB-LINES = CON_TAB-LINES + 1.
            ELSE.
              CLEAR ITAB.
              APPEND ITAB.
              CON_TAB-LINES = CON_TAB-LINES + 1.
            ENDIF.
          ENDIF.
        ENDIF.
    WHEN 'SAV'.
      MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
      MESSAGE I002(ZYF_DEL).
    ENDCASE.
    ENDMODULE.                 " TAB_UPDATE  INPUT
    “ FLOW LOGIC
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    LOOP AT ITAB WITH CONTROL CON_TAB.
    ENDLOOP.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    MODULE EXT_COMM AT EXIT-COMMAND.
    LOOP AT ITAB.
    MODULE TAB_UPDATE.
    ENDLOOP.     
    REgards,
    Vasanth

  • Passing data to table control in screen exit - IW33 (IWO000018)

    Hi Experts,
    I am stuck in middle of a screen exit. Request your kind help on this.
    Requirement scenario: -
    To add an additional tab named "Estimated Costs" in transaction IW31, IW32, IW33. This tab will include a table control with 4 columns: - Operation, operation short text, Estimated cost and Currency. Columns Operation and Operation short text should show all the operations from tab 'Operations' (that can be fetched from table AFVC based on Routing number of operation as fetched from view CAUFV).
    Issue: -
    Table control has 4 columns, 2 are non-editable,2 are editable. Data in the non-editable fields is passed correctly, whereas in I/O editable fields, entered data is not retained everytime PBO is called. I have modified the internal table in the PAI event.
    Pointers in this direction are highly appreciated.
    Best Regards,
    Shreya
    Edited by: shreya tagra on Apr 29, 2010 5:48 AM

    I suppose it has to do with the code you have written. Please post a relavant snippet of your flow logic.
    regards,
    Aabhas

  • Regarding Table Control in screen Painter

    hi,
      In my table control, one column is aceepting the UV Rate of the Material. But that particular column did not accept the Decimal Value . when i enter the decimal,
    'Please enter the Numeric value' error is coming.
      I am declared as Curr Data type for my table zuvrate-dmbtr.
       how can i enter decimal value in that column?

    Neptune,
    Lets start from the beginning -
    Your custom table has a field called DMBTR (domain WERT7). The reference value for this field is T001-WAERS.
    Hope its correct so far.
    In the table control, your field DMBTR is called <customtablename>-DMBTR.
    In the screen attributes of this field, you have the 'From Dict' ticked, Format is CURR and the reference field is specified. Correct?
    If this is the case then the table control should not throw any errors, do let me know if there is any change.
    Update: I just figured, probably the reason for your errors is that you have not used the domain in your custom table and have specified the CURR type as a direct type. The problem with this is that 2 decimal places will always be required by the system. Whereas if you use the data element (eg: DMBTR), the output length is 16, which would work fine.
    Sudha
    Message was edited by: Sudha Mohan

  • Table control in Screen

    Hi,
    I have designed an interface like SM31 to maintain a Z-table. My requirement is that I don't want to make Key fields input-enabled until user want to insert a new record and when user clicks on button in toolbar to insert a new row in table control to enter a new record in the Z-table the new row should have key-fields input enabled but not the existing rows.
    Can anybody help me out in this regard.
    Regards,
    Deepti

    Hi Deepti,
    In your table control PBO module you need the following code.  Loop at the screen.  If the field name is a key field and the key field has a value, then make the field non-input enable.  If it is a key field and the key field has no value, then make the field input enabled.
    Then in your PAI module you need code to append a blank line to your internal table for the new input enable row.
    <u><b>SCREEN FLOW</b></u>
    Process Before Output.
      loop at control xyz.
        module process-control-xyz
      endloop.
    MODULE PROCES-CONTROL-XYZ.
      read table itab index xyz-current_line.
      if sy-subrc = 0.
    loop at screen.
      if screen-name = 'ITAB-KEY_FIELD'.
        and not itab-key_field is initial.
          screen-input = 0.
      else.
           screen-input = 1.
      endif.
    endloop.
    else.
    exit from step-loop.
    endif.
    ENDMODULE.
    Hope this helps,
    Jerrod

Maybe you are looking for