Filter table maintenance data

Hi Friends,
i have created Maintenance view with linking 3tables.
according to requirement, i want to filter maintenance view data against the selection screen parameters.
is it possible?
then please guide me to this
Thanks in advanced

Thanks for testing my memory, that's a word by word copy of my reply from this thread:
Enter Condition in SM30
Please do not copy/paste in the future, this can lead to account deletion very quickly. Please take this warning seriously.
Thomas

Similar Messages

  • Refresh data in Table Maintenance view

    Hi,
    I have created a table maintenance view for db table A and added my function button to this view. When I click the button I append  a few records to the table A from table B. But this recoreds are not displaied in the view.
    If I rerun the view I can see added records.
    How I have to refresh the view to display added records?
    Regards,
    Ilya

    Hi Jesus,
    COMMIT WORK isn't help me.
    I found that I have to use TOTAL and EXTRACT structures to modify data in maintenance view.
    It's fine. I do something like this in my FM
    MODULE 9CUSTOM_PF_BUTTON INPUT.
    lt_total[] = total[].
    lt_extract[] = extract[].
    CASE function.
          WHEN '9DOWNSH'.
             modify lt_total from wa_total.
             modify lt_extract from wa_extract
    ENDCASE.
    total[]   = lt_total[].
    extract[] = lt_extract[].
    ENDMODULE.                 " 9CUSTOM_PF_BUTTON  INPUT
    But TOTL and EXTRACT tables contain data of  the current maintenance view.
    I work with a view cluster and I have to append or delete records from one view if I do something in other view.
    How I can modify data one view from another maintenance view?
    If I have modified database tables directly I don't see changes in the view cluster.
    Regards,
    Malnor
    Edited by: Malnor on Nov 23, 2010 9:19 AM
    Edited by: Malnor on Nov 23, 2010 9:38 AM

  • Upload excel data in a table maintenance view

    Hi,
      I have a requirement to add a button in the application toolbar of the table maintenance screen of a custom table. This button should upload the excel sheet data into the maintenance screen online.
      I have created the button in the table maintenance generator. Also, uploaded the data into the internal table from the excel sheet.
      The problem is I am unable to populate the data from the internal table to the maintenance screen online.
      Any pointers in this regards will be appreciated.
    Thanks,
    Best regards,
    Ajith

    Hi,
    I think you have to use BDC call transaction (SM30) and use that table control to upload the data. Try and see..
    Cheers,
    Phani.

  • Delete data with table maintenance generator

    Hi All,
    I have created custom table ZXXX and table maintenance generator.
    I need to maintain data but delete them too. I can update and modify data but how can I delete them ?
    Thanks for your answers !
    Best regards,
    Sandrine

    ok, I found  ..
    I created an internal table to delete the content of my table ZXXX :
    DATA : ws_zxxx TYPE zxxx OCCURS 0 WITH HEADER LINE.
    select * from zxxx into CORRESPONDING FIELDS OF TABLE ws_zxxx
    DELETE zxxx from table ws_zxxx.
    commit work.
    it works !
    thanks all !

  • How to validate data entered in table maintenance for Z table?

    Hi,
    I created a Z-table with table maintenance. I'd like to perform some validation on the entered data.
    I know there are events for these : "If this pre-defined time is reached in extended table maintenance, the FORM routine specified for the current view and for this time is processed. This is useful, for example, for performing consistency checks before saving or specific actions when creating new entries."
    I also found some info in the Online help:
    http://help.sap.com/saphelp_47x200/helpdata/en/91/ca9f0ea9d111d1a5690000e82deaaa/frameset.htm
    However it's not clear which event I can use for validation.
    I tried event 01, however when I added a message, in the SM30 in case of message, I got the SM30 initial screen.
    Do you have any example about validation?
    Thanks in advance,
    Peter

    Hi,
    Once you are on the table maintenance generator screen.
    GOTO --> Enviornment --> Modification --> Events.
    Here specify Event as '01' and the Subroutine name that will hold the data for the validation.
    As you know we need to specify a function group.
    GOTO SE80 and Open your function group.
    Now in the PBO of the screen write a subroutine for the validation before saving an entry in the table.
    Refer the code below for validation.
    *&      Form  F9000_CHECK_BEFORE_SAVE
          Subroutine called dynamically to check values before saving
    FORM f9000_check_before_save.
      TYPES : BEGIN OF ty_flmt,
              zz_flmt_type     TYPE zz_flmt_type,
              zz_gsm_flmt_code TYPE zz_flmt_code,
              END OF ty_flmt.
    Internal Table
      DATA : lit_flmt_code TYPE TABLE OF ty_flmt,
             wa_flmt_code  LIKE LINE  OF lit_flmt_code.
      DATA: lv_subrc TYPE sy-subrc VALUE '0',
            lv_tabix TYPE sy-tabix,
            lv_total_rec TYPE i,
            lv_rec       TYPE i,
            flg_upd      TYPE flag.
      DESCRIBE TABLE total LINES lv_total_rec.
      LOOP AT total.
        lv_tabix = sy-tabix.
        READ TABLE extract WITH KEY total.
        IF sy-subrc EQ 0.
          IF extract+3(10) IS INITIAL.
            DELETE total.
            DELETE extract INDEX sy-tabix.
           DELETE extract INDEX lv_tabix.
            lv_subrc = '4'.
            flg_upd = 'X'.
            MESSAGE s119(zcrm_appl) DISPLAY LIKE 'S'.
            SET SCREEN 0.
          ENDIF.
        ENDIF.
        wa_flmt_code-zz_flmt_type = total+13(3).
        wa_flmt_code-zz_gsm_flmt_code = total+16(10).
        APPEND wa_flmt_code TO lit_flmt_code.
      ENDLOOP.
      IF flg_upd IS INITIAL.
        SORT lit_flmt_code BY zz_flmt_type zz_gsm_flmt_code.
        DELETE ADJACENT DUPLICATES FROM lit_flmt_code.
        DESCRIBE TABLE lit_flmt_code LINES lv_rec.
        IF lv_total_rec <> lv_rec.
          LOOP AT extract.
            READ TABLE total WITH KEY extract.
            IF sy-subrc EQ 0.
              DELETE total INDEX sy-tabix.
              DELETE extract INDEX 1.
              lv_subrc = '4'.
              MESSAGE s289(zcrm_appl) DISPLAY LIKE 'S'.
              SET SCREEN 0.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      sy-subrc = lv_subrc.
    ENDFORM.    
    <b>Please reward points and close the thread.</b>
    Regards,
    Amit Mishra

  • Missing Date fields in table maintenance generation

    I have some non-key date fields in my custom table and have noticed that they do not get generated on the overview screen of my two-step table maintenance dialog. They are present on the detail screen.
    If I change the domain of the fields to CHAR they appear.
    If I change the maintenance type to one-step they appear.
    It seems it is standard behaviour for date fields to be omitted from the overview screen.
    Can anyone confirm that this is standard behaviour or give an explanation for date fields being treated in this manner?...or come up with a way of including the fields on the header screen.
    I already know that I can:
    1. customize the screen to include the fields
    2. create a non-date domain for the fields which uses date-type calendar dropdown
    Thanks,
    Neil

    Thankyou Jonathan, I would have been too lazy to go into debug if I didn't have the form name you supplied! It wasn't the reason you suspected but it was failing the following check in that routine:
    maintenance in list screen required?
          CHECK p_tvdir-type = one_step_maint OR
           ( <w_dfies>-keyflag NE space    "force only keyfields
            OR ( 'CHARNUMC' CS <w_dfies>-datatype     "and view char-fields
             AND p_skip_fields = space )
            OR ( 'CHARNUMC' CS <w_dfies>-datatype     "and view char-fields
             AND <w_dfies>-intlen GE 20 )       "int 3263961/2000
            OR <w_dfies>-rollname = 'BEGDA'    "time dependence
            OR <w_dfies>-rollname = 'ENDDA'    "time dependence
            OR <w_dfies>-tabname NE p_gencb-viewname ). "or text table field
    Because the datatype was DATS.......looks like it will only include key fields and CHAR, NUMC non-key fields or those with a rollname of BEGDA/ENDDA or texttable fields. In debug I changed the datatype to CHAR and it generated with my field included. I think there might be an OSS note to fix this but haven't found it yet.

  • Calculations while entering data into table via table maintenance generator

    Hi all,
    This is the following requirement.
    I created a ztable and also I created the table maintenance generator.  I have two fields which accept integer data.
    The requirement is when I enter value in the first field from the tcode SM30 the data should be populated into the second field automatically by subtracting the first value from 100.
    Can anyone explain me how I can do that.
    Thanks,
    Daniel

    hi,
    take the help of events in TMG and write the code in that event
    like field2 = field1 - 100
    steps to create events
    Step: 1: Create a table
    Step: 2: In SE11, go to Utilities --> table maintenance generator.
    Step: 3: Follow the path Environment --> Modification --> Events.
    Step: 4: Click new entries, select a table maintenance dialog event which suits your requirement.
    Step: 5: Create a form routine.
    Step: 6: Include your logic in the routine created in step 5.
    Hope this helps you.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/abap/how%20to%20implement%20events%20in%20table%20maintenance.doc
    Re: bdc
    reward if helpful
    prasanth

  • How to filter a table using column filter on a date field with time?

    Hi,
    I have a date field where I am inserting a date+time value, for example: 01/01/2012 09:30:00 So, I would like to filter an adf table using a column inputdate filter to filter only by date this field.
    I was testing using formats but with no luck.
    Any Idea?
    Thanks,
    jdev 11.1.2.3
    Edited by: jhon.carrillo on Oct 29, 2012 12:23 AM

    Then, try to add another attribute in your SELECT VO statement, which truncates the original date_and_time field:
       SELECT.... TRUNC(DATE_AND_TIME) as truncated_dateAfter that, put reference to that attribute in the filter facet, as follows
             <f:facet name="filter">
                      <af:inputDate value="#{vs.filterCriteria.TruncatedDate}" id=.../>
             </facet>Do not forget to add the TruncatedDate attribute in the <tree...> binding in the pageDef, along with others VO attributes. Do that manually.

  • Table Maintenance using Editable ALV

    Hi all,
    Could anyone give me the code for doing the ZTable maintenance (like Insert, Modify, Append, Delete records) using Editable ALV. I referred all BCALV_EDIT* programs but there  is no code for saving the details in database after the changes. Please help it is urgent, will surely reward points.
    thanks in advance

    Pl. see this sample code. May be it will help u.
    REPORT zmodtab NO STANDARD PAGE HEADING.
    TYPE-POOLS: rsds.
    DATA: is_x030l  TYPE x030l,
          it_dfies  TYPE TABLE OF dfies,
          is_dfies  TYPE dfies,
          it_fdiff  TYPE TABLE OF field_dif,
          is_fdiff  TYPE field_dif.
    DATA: w_selid   TYPE rsdynsel-selid,
          it_tables TYPE TABLE OF rsdstabs,
          is_tables TYPE rsdstabs,
          it_fields TYPE TABLE OF rsdsfields,
          it_expr   TYPE rsds_texpr,
          it_ranges TYPE rsds_trange,
          it_where  TYPE rsds_twhere,
          is_where  TYPE rsds_where,
          w_active  TYPE i.
    DATA: it_content TYPE REF TO data,
          it_modif   TYPE REF TO data,
          it_fcat    TYPE lvc_t_fcat.
    DATA: w_okcode   TYPE sy-ucomm.
    FIELD-SYMBOLS: <itab> TYPE STANDARD TABLE,
                   <ntab> TYPE STANDARD TABLE.
    Macros
    DEFINE table_error.
      message e398(00) with 'Table' p_table &1.
    END-OF-DEFINITION.
    DEFINE fixed_val.
      is_fdiff-fieldname = is_dfies-fieldname.
      is_fdiff-fixed_val = &1.
      is_fdiff-no_input  = 'X'.
      append is_fdiff to it_fdiff.
    END-OF-DEFINITION.
    Selection screen
    SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME.
    PARAMETERS: p_table TYPE tabname OBLIGATORY                    "table
                                     MEMORY ID dtb
                                     MATCHCODE OBJECT dd_dbtb_16.
    SELECTION-SCREEN: BEGIN OF LINE,
                      PUSHBUTTON 33(20) selopt USER-COMMAND sel,
                      COMMENT    55(15) selcnt,
                      END OF LINE.
    SELECTION-SCREEN: SKIP.
    PARAMETERS: p_rows  TYPE i.                                    "rows
    SELECTION-SCREEN: END OF BLOCK b01,
                      SKIP,
                      BEGIN OF BLOCK b02 WITH FRAME.
    PARAMETERS: p_displ TYPE c AS CHECKBOX.                        "display
    SELECTION-SCREEN: END OF BLOCK b02.
    Initialization
    INITIALIZATION.
      MOVE '@4G@ Filter records' TO selopt.
    PBO
    AT SELECTION-SCREEN OUTPUT.
      IF w_active IS INITIAL.
        CLEAR: selcnt.
      ELSE.
        WRITE w_active TO selcnt LEFT-JUSTIFIED.
      ENDIF.
    PAI
    AT SELECTION-SCREEN.
      IF p_table NE is_x030l-tabname.
        CALL FUNCTION 'DDIF_NAMETAB_GET'
             EXPORTING
                  tabname   = p_table
             IMPORTING
                  x030l_wa  = is_x030l
             TABLES
                  dfies_tab = it_dfies
             EXCEPTIONS
                  OTHERS    = 1.
        IF is_x030l IS INITIAL.
          table_error 'does not exist or is not active'.
        ELSEIF is_x030l-tabtype NE 'T'.
          table_error 'is not selectable'.
        ELSEIF is_x030l-align NE 0.
          table_error 'has alignment - cannot continue'.
        ENDIF.
      Default values for system fields
        REFRESH: it_fdiff.
        is_fdiff-tabname = p_table.
        LOOP AT it_dfies INTO is_dfies.
          IF is_dfies-datatype = 'CLNT'.
            fixed_val sy-mandt.
          ELSEIF is_dfies-rollname = 'ERDAT'
              OR is_dfies-rollname = 'ERSDA'
              OR is_dfies-rollname = 'AEDAT'
              OR is_dfies-rollname = 'LAEDA'.
            fixed_val sy-datum.
          ELSEIF is_dfies-rollname = 'ERTIM'
              OR is_dfies-rollname = 'AETIM'.
            fixed_val sy-uzeit.
          ELSEIF is_dfies-rollname = 'ERNAM'
              OR is_dfies-rollname = 'AENAM'.
            fixed_val sy-uname.
          ENDIF.
        ENDLOOP.
      Prepare free selection on table
        REFRESH it_tables.
        is_tables-prim_tab = p_table.
        APPEND is_tables TO it_tables.
        CLEAR: w_selid.
      ENDIF.
      IF sy-ucomm = 'SEL'.
        IF w_selid IS INITIAL.
        Init free selection dialog
          CALL FUNCTION 'FREE_SELECTIONS_INIT'
               EXPORTING
                    expressions  = it_expr
               IMPORTING
                    selection_id = w_selid
                    expressions  = it_expr
               TABLES
                    tables_tab   = it_tables
               EXCEPTIONS
                    OTHERS       = 1.
        ENDIF.
      Display free selection dialog
        CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
             EXPORTING
                  selection_id            = w_selid
                  title                   = 'Selection'
                  status                  = 1
                  as_window               = 'X'
             IMPORTING
                  expressions             = it_expr
                  field_ranges            = it_ranges
                  number_of_active_fields = w_active
             TABLES
                  fields_tab              = it_fields
             EXCEPTIONS
                  OTHERS                  = 1.
      ENDIF.
    Start of processing
    START-OF-SELECTION.
      PERFORM f_create_table USING p_table.
      PERFORM f_select_table.
      PERFORM f_display_table.
          FORM f_create_table                                           *
    FORM f_create_table USING in_tabname.
      FIELD-SYMBOLS: <fcat> TYPE lvc_s_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
           EXPORTING
                i_structure_name = in_tabname
           CHANGING
                ct_fieldcat      = it_fcat
           EXCEPTIONS
                OTHERS           = 1.
      IF sy-subrc = 0.
      Complete field catalog
        LOOP AT it_fcat ASSIGNING <fcat>.
          <fcat>-tabname = in_tabname.
        ENDLOOP.
        CALL FUNCTION 'LVC_FIELDCAT_COMPLETE'
             CHANGING
                  ct_fieldcat = it_fcat
             EXCEPTIONS
                  OTHERS      = 1.
      ELSE.
        WRITE: 'Error building field catalog'.
        STOP.
      ENDIF.
    Create dynamic table for data
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fcat
        IMPORTING
          ep_table        = it_content.
      IF sy-subrc = 0.
        ASSIGN it_content->* TO <itab>.
      ELSE.
        WRITE: 'Error creating internal table'.
        STOP.
      ENDIF.
    Create dynamic table for modif
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fcat
        IMPORTING
          ep_table        = it_modif.
      IF sy-subrc = 0.
        ASSIGN it_modif->* TO <ntab>.
      ELSE.
        WRITE: 'Error creating internal table'.
        STOP.
      ENDIF.
    ENDFORM.
          FORM f_select_table                                           *
    FORM f_select_table.
      IF w_active = 0.
        SELECT * FROM (p_table)
                 INTO CORRESPONDING FIELDS OF TABLE <itab>
                UP TO p_rows ROWS.
      ELSE.
      Selection with parameters
        CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_WHERE'
             EXPORTING
                  field_ranges  = it_ranges
             IMPORTING
                  where_clauses = it_where.
        READ TABLE it_where INTO is_where WITH KEY tablename = p_table.
        SELECT * FROM (p_table)
                 INTO CORRESPONDING FIELDS OF TABLE <itab>
                UP TO p_rows ROWS
                WHERE (is_where-where_tab).
      ENDIF.
      IF sy-dbcnt = 0.
        WRITE: 'No record selected'.
        STOP.
      ENDIF.
    ENDFORM.
          FORM f_display_table                                          *
    FORM f_display_table.
      DATA: l_answer TYPE c,
            l_eflag  TYPE c.
      CLEAR: w_okcode.
      REFRESH: <ntab>.
    Display table contents
      CALL FUNCTION 'STC1_FULLSCREEN_TABLE_CONTROL'
           EXPORTING
                header       = p_table
                tabname      = p_table
                display_only = p_displ
                endless      = 'X'
                no_button    = space
           IMPORTING
                okcode       = w_okcode
           TABLES
                nametab      = it_dfies
                table        = <itab>
                fielddif     = it_fdiff
                modif_table  = <ntab>
           EXCEPTIONS
                OTHERS       = 1.
      IF sy-subrc = 0.
        IF p_displ IS INITIAL AND w_okcode = 'SAVE'.
        Confirm update
          CALL FUNCTION 'POPUP_TO_CONFIRM'
               EXPORTING
                    titlebar              = p_table
                    text_question         = 'Do you want to update table ?'
                    default_button        = '2'
                    display_cancel_button = ' '
               IMPORTING
                    answer                = l_answer
               EXCEPTIONS
                    OTHERS                = 1.
          IF l_answer = '1'.
          Apply modifications
            IF NOT <ntab>[] IS INITIAL.
              PERFORM f_add_system USING space.
              MODIFY (p_table) FROM TABLE <ntab>.
              IF sy-subrc NE 0.
                l_eflag = 'X'.
              ENDIF.
            ENDIF.
          Apply deletions
            IF l_eflag IS INITIAL.
              REFRESH: <ntab>.
              CALL FUNCTION 'STC1_GET_DATA'
                   TABLES
                        deleted_data = <ntab>
                   EXCEPTIONS
                        OTHERS       = 1.
              IF NOT <ntab>[] IS INITIAL.
                DELETE (p_table) FROM TABLE <ntab>.
                IF sy-subrc NE 0.
                  ROLLBACK WORK.
                  l_eflag = 'X'.
                ENDIF.
              ENDIF.
            ENDIF.
          Apply creations
            IF l_eflag IS INITIAL.
              REFRESH: <ntab>.
              CALL FUNCTION 'STC1_GET_DATA'
                   TABLES
                        new_data = <ntab>
                   EXCEPTIONS
                        OTHERS   = 1.
              IF NOT <ntab>[] IS INITIAL.
                PERFORM f_add_system USING 'X'.
                INSERT (p_table) FROM TABLE <ntab>.
                IF sy-subrc NE 0.
                  ROLLBACK WORK.
                  l_eflag = 'X'.
                ENDIF.
              ENDIF.
            ENDIF.
            IF l_eflag IS INITIAL.
              COMMIT WORK.
              MESSAGE s261(53).
            ELSE.
              MESSAGE s075(3i).
              PERFORM f_select_table.
            ENDIF.
          ENDIF.
        Display table again
          PERFORM f_display_table.
        ENDIF.
      ENDIF.
    ENDFORM.
          FORM f_add_system                                             *
    FORM f_add_system USING new TYPE c.
      FIELD-SYMBOLS: <irec> TYPE ANY,
                     <upd>  TYPE ANY.
      LOOP AT it_fdiff INTO is_fdiff.
        READ TABLE it_dfies INTO is_dfies
                        WITH KEY fieldname = is_fdiff-fieldname.
        LOOP AT <ntab> ASSIGNING <irec>.
          ASSIGN COMPONENT is_fdiff-fieldname OF STRUCTURE <irec> TO <upd>.
          IF is_dfies-datatype = 'CLNT'.
            <upd> = sy-mandt.
          ELSE.
            CASE is_dfies-rollname.
              WHEN 'AENAM'.
                <upd> = sy-uname.
              WHEN 'AEDAT' OR 'LAEDA'.
                <upd> = sy-datum.
              WHEN 'AETIM'.
                <upd> = sy-uzeit.
              WHEN OTHERS.
            ENDCASE.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.
    Regards,
    Joy.

  • How to use table maintenance view in module pool screen

    hi ,
    want to use table maintenance view in a module pool screen so that i can edit, insert, delete and update date in to the ztable.please help.

    You can simply call it via SM30.   Or you can call the table maintence view from any program(report or module pool) using a function module.
      call function 'VIEW_MAINTENANCE_CALL'
           exporting
                action                       = 'U'
                view_name                    = 'Z_Table_Name'
           exceptions
                client_reference             = 1
                foreign_lock                 = 2
                invalid_action               = 3
                no_clientindependent_auth    = 4
                no_database_function         = 5
                no_editor_function           = 6
                no_show_auth                 = 7
                no_tvdir_entry               = 8
                no_upd_auth                  = 9
                only_show_allowed            = 10
                system_failure               = 11
                unknown_field_in_dba_sellist = 12
                view_not_found               = 13
                others                       = 14.
    Regards,
    RIch Heilman

  • Fieldname in not being displayed in the table maintenance

    Hi Experts,
                     I have created a table maintenance for a custom table.The table contains 10 fields out of which first 3 are key fields.
    on the 3rd key field i have supplied F4 help so as to populate the 4th field automatically based on the selection of 3rd field.
    everything is working fine but last 6 'fieldname' is not being displayed on the column bar.instead of fieldname there is '+' sign on the column. And i have checked in layout(screen) also only first four fields being displayed.
    plz help.
    Thanks n Regards,
    Mukesh

    Hello Mukesh,
    As you know, data element or pre-defined data type will be assigned as field type to the fields in a table. If you are assigning the data element, then the data element has the option to give the field label.
    If you are assigning the data element and the field label is empty, then + sign will come. In other case -  if you assigning the pre-defined data type also, the screeen column header will be shown as + sign.
    In both the above cases, you can change the column header manually in the layout.
    Regards,
    Selva K.

  • How to update the data base table with data

    i have two ztables, one is zfm_kfz and other one is zfm_kmvrg
    zfm_kfz is maintained by using table maintenance generator as well as alv grid control for list display.
    zfm_kfz the field r like this KFZR, GERAET, KOSTENTRAEGER, BEZEICHNUNG, TUVDATUMMMYYYY, ASUDATUMMMYYYY, KMSTAND, HISTO AND REIFEN.
    PROBLEM: all the data in grid control r updated except KMSTAND
    fields in zfm_kmvrg are kostentraeger, kfznr and kmstand i m creating table control for this screen here what ever enter the last km stand is updated in the list.for one kfznr many kostentraegers and kmstand, the last km stand is updated here , go through this code plz hepl me
    CONTROLS tabctrl TYPE TABLEVIEW USING SCREEN 100.
    DATA: cols LIKE LINE OF tabctrl-cols,
          lines TYPE i.
    DATA: ok_code TYPE sy-ucomm,
          save_ok TYPE sy-ucomm.
    DATA: itab TYPE TABLE OF zfm_kmvrg,
          fs_itab LIKE LINE OF itab,
          fl_change TYPE c,
          fl_error  TYPE c.
    *TABLES fs_itab.
    LOOP AT tabctrl-cols INTO cols.
      cols-screen-input = '0'.
      MODIFY tabctrl-cols FROM cols INDEX sy-tabix.
    ENDLOOP.
    *SELECT * FROM spfli INTO TABLE itab.
    CALL SCREEN 100.
    MODULE status_0100 OUTPUT
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_101'.
      DESCRIBE TABLE itab LINES lines.
      tabctrl-lines = lines.
    ENDMODULE.                    "status_0100 OUTPUT
    MODULE cancel INPUT
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.                    "cancel INPUT
    MODULE read_table_control INPUT
    MODULE read_table_control INPUT.
      MODIFY itab FROM fs_itab INDEX tabctrl-current_line.
    ENDMODULE.                    "read_table_control INPUT
    MODULE user_command_0100 INPUT
    MODULE user_command_0100 INPUT.
      DATA:
        lw_index TYPE i.
      save_ok = ok_code.
      CLEAR ok_code.
      CASE save_ok.
        WHEN 'ADD'.
          LOOP AT tabctrl-cols INTO cols.
            cols-screen-input = '1'.
            MODIFY tabctrl-cols FROM cols INDEX sy-tabix.
          ENDLOOP.
          CLEAR fs_itab.
          APPEND fs_itab TO itab.
        WHEN 'SAVE'.
          IF NOT itab[] IS INITIAL.
            LOOP AT itab[] into FS_ITAB.
              lw_index = sy-tabix.
              IF NOT fs_itab IS INITIAL.
                MODIFY ZFM_KMVRG FROM fs_itab.
                IF sy-subrc EQ 0.
                  UPDATE ZFM_KFZ set kmstand = fs_itab-kmstand
                                        WHERE kfznr = fs_itab-kfznr.
                ELSE.
                  fl_error = 'X'.
                  WRITE:/ 'The record number', lw_index,
                          'has not been updated'.
                ENDIF.
              ENDIF.
            ENDLOOP.
          ELSE.
            MESSAGE s000(0) WITH 'No data is present to update'.
          ENDIF.
      ENDCASE.
      IF fl_error = 'X'.
        LEAVE TO LIST-PROCESSING.
      ELSE.
        MESSAGE s000(0) WITH
              'All the records have been updated successfully'.
      ENDIF.
    ENDMODULE.                    "user_command_0100 INPUT
    IN SE51
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
      LOOP AT ITAB INTO fs_itab WITH CONTROL tabctrl.
      ENDLOOP.
    PROCESS AFTER INPUT.
      MODULE CANCEL AT EXIT-COMMAND.
      LOOP AT ITAB.
        module read_table_control.
      ENDLOOP.
      module user_command_0100.
    i m trying many times i m not getting proper output, plz help me on this

    Hi,
    I am hereby givng the similar sample code.Check this with your requirement.
    In the flow logic of the screen 9000, write the following code.
    PROCESS BEFORE OUTPUT.
      MODULE set_status.
      MODULE get_t_ctrl_lines.
      LOOP AT i_makt WITH CONTROL t_ctrl CURSOR t_ctrl-current_line.
    * Dynamic screen modifications
        MODULE set_screen_fields.
      ENDLOOP.
    PROCESS AFTER INPUT.
      LOOP AT i_makt.
        FIELD i_makt-pick MODULE check.
        FIELD i_makt-zmatnr MODULE zmatnr .
      ENDLOOP.
      MODULE user_command_9000.
    In the program, write the following code.
    PROGRAM SAPMZTC MESSAGE-ID zz.
    * Tables Declaration
    TABLES: zzz_makt.
    * Internal table Declaration
    DATA : i_makt TYPE STANDARD TABLE OF zzz_makt WITH HEADER LINE.
    * Table control Declaration
    CONTROLS: t_ctrl TYPE TABLEVIEW USING SCREEN '9000'.
    * Variable Declaration
    DATA : flg,           "Flag to set the change mode
           ln TYPE i.     "No. of records
    *&      Module  get_T_CTRL_lines  OUTPUT
    *  Populating data
    MODULE get_t_ctrl_lines OUTPUT.
      SELECT zmatnr zmaktx
             INTO CORRESPONDING FIELDS OF TABLE i_makt
             FROM zzz_makt.
      DESCRIBE TABLE i_makt LINES ln.
    * To make the vertical scroll bar to come on runtime
      t_ctrl-lines = ln + 100.
    ENDMODULE.                 " get_T_CTRL_lines  OUTPUT
    *&      Module  USER_COMMAND_9000  INPUT
    * Triggering event according to the user command
    MODULE user_command_9000 INPUT.
      DATA :lv_fcode LIKE sy-ucomm,    "Function Code
            lv_answer(1) type c.       "Storing the answer
      lv_fcode = sy-ucomm.
      CASE lv_fcode.
        WHEN 'CHANGE'.
    * Setting the flag to make the table control in editable mode[excluding
    * primary key].
          flg = 'Y'.
        WHEN 'DELETE'.
    * Setting the flag to make the table control in editable mode after
    * deleting the selected line
          flg = 'Y'.
    * Confirmation of delete
          CALL FUNCTION 'POPUP_TO_CONFIRM'
            EXPORTING
             TITLEBAR       = 'Confirm'
             text_question  = 'Are you sure to delete from database?'
             TEXT_BUTTON_1  = 'Yes'(001)
             TEXT_BUTTON_2  = 'No'(002)
            IMPORTING
             ANSWER         =  lv_answer.
          if lv_answer eq '1'.
    * Updating the database table from the internal table
            UPDATE zzz_makt FROM TABLE i_makt.
    * Deleting the selected row from the internal table
            DELETE i_makt WHERE pick = 'X'.
    * Deleting the selected row from the database table
            DELETE FROM zzz_makt WHERE pick = 'X'.
            MESSAGE s005 WITH 'Deleted Successfully'.
          ENDIF.
        WHEN 'SAVE'.
    * Inserting new record or updating existing record in database table
    * from the internal table
          MODIFY zzz_makt FROM TABLE i_makt.
          MESSAGE s005 WITH 'Saved Successfully'.
        WHEN 'BACK'.
          SET SCREEN '0'.
        WHEN 'EXIT' OR 'CANCEL'.
    * Leaving the program
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
    *&      Module  set_screen_fields  OUTPUT
    * Setting the screen fields
    MODULE set_screen_fields OUTPUT.
      LOOP AT SCREEN.
        IF flg IS INITIAL.
          screen-input = 0.
        ELSEIF ( flg EQ 'Y' ).
          IF ( ( screen-name = 'I_MAKT-ZMAKTX'
                 OR screen-name = 'I_MAKT-CHECK1' )
                AND t_ctrl-current_line LE ln ) .
    * Making the screen fields as editable
            screen-input = 1.
          ELSEIF ( ( screen-name = 'I_MAKT-ZMATNR' )
                     AND t_ctrl-current_line LE ln ).
    * Making the screen field as uneditable
            screen-input = 0.
          ENDIF.
        ENDIF.
    * Modifying the screen after making changes
        MODIFY SCREEN.
      ENDLOOP.
    ENDMODULE.                 " set_screen_fields  OUTPUT
    *&      Module  zmatnr  INPUT
    * Appending records to the internal table
    MODULE zmatnr INPUT.
      MODIFY i_makt INDEX t_ctrl-current_line.
      IF t_ctrl-current_line GT ln.
        READ TABLE i_makt WITH KEY zmatnr = i_makt-zmatnr.
        IF sy-subrc NE 0.
    * Inserting record if it does not exist in database
          APPEND i_makt.
        ELSE.
         MESSAGE i005 WITH 'Material Number' i_makt-zmatnr 'already exists'.
        ENDIF.
      ENDIF.
    ENDMODULE.                 " zmatnr  INPUT
    *&      Module  set_status  OUTPUT
    * Setting the GUI status
    MODULE set_status OUTPUT.
      SET PF-STATUS 'ZSTATUS'.
      SET TITLEBAR  'ZTITLE'.
    ENDMODULE.                 " set_status  OUTPUT
    *&      Module  CHECK  INPUT
    * Modify the internal table using the current line in table control
    MODULE check INPUT.
      MODIFY i_makt INDEX t_ctrl-current_line.
    ENDMODULE.                 " CHECK  INPUT

  • How to use the table maintenance events for validating the input entries..?

    Hi,
    I have created a Z table with 6 fields in which all are KEY fields. All are of CHAR type. I have created the Table Maintenance Generator for the same. While maintaining the entries in the table, even though I maintain a blank entry for a field it is saving the entry. But, I don't want that way. All the fields are mandatory in my table. One should enter all the fields. Otherwise it should not allow to save the entry. So, I think it can be done using the Table Maintenance Events. can someone tell me how to use the Table Maintenance Events. and which event to use for my reuqirement and what is the logic to be written.
    Or Is there any other way to solve my problem.
    Please share your inputs. Thanks in advance.
    Best regards,
    paddu.

    In the table maintenance generator, Environment --> Modifications --> Events then a screen will be appear here,we need to create the Events.In the EVENTS screen, press new Entries, there give 01(Before Saving the Data in the Database) and give a name(This will become a PERFORM), then click the Editor pushbutton, this will be there at the right side of the entry, then a popup will be appear, you can create an include program, there inside of the include program write ur code.
    Here is documentation for Event 01(Before Saving the Data in the Database )
    Event 01: Before Saving the Data in the Database
    Use
    This event occurs before new, changed or deleted entries are written to the database. Other activities can be performed, for example:
    hidden entry processing
    fill hidden fields
    flag data to be written to hidden tables after the database change.
    To have the changes saved by the central maintenance dialog routines, SY-SUBRC must be set to 0 at the end of the routine.
    Realization
    This event has no standard routine. The following global data is available for the realization of the user routine:
    internal table TOTAL
    field symbols
    field symbols <ACTION> and <ACTION_TEXT>
    <STATUS>-UPD_FLAG
    If internal table data are to be changed before saving, t he changes should be made in both the internal table TOTAL and in the internal table EXTRACT.
    FORM abc.
    DATA: F_INDEX LIKE SY-TABIX. "Index to note the lines found
    LOOP AT TOTAL.
    IF <ACTION> = desired constant.
    READ TABLE EXTRACT WITH KEY <vim_xtotal_key>.
    IF SY-SUBRC EQ 0.
    F_INDEX = SY-TABIX.
    ELSE.
    CLEAR F_INDX.
    ENDIF.
    (make desired changes to the line TOTAL)
    MODIFY TOTAL.
    CHECK F_INDX GT 0.
    EXTRACT = TOTAL.
    MODIFY EXTRACT INDEX F_INDX.
    ENDIF.
    ENDLOOP.
    SY-SUBRC = 0.
    ENDFORM.
    Regards,
    Joy.

  • How to create event in table maintenance generator

    Hi guys,
    I need to create an event for my table maintenace generator such that when the field land1 is filled, the landx field should take its data from t005t table. and the ladnx field should be display only, it can not be modified in table maintenance.
    How can i create an event in table maint. gen? How am i going to do it?
    thanks always,
    mark

    Hi,
    As mentioned in the last post go to the event screen by
    Environment --> Modifications --> Events.
    There you click on new entries and try writing your logic for event 21 i.e. after selecting 21 give some name of your event and write down the logic how you want to do this.
    If event number 21 does not work then try 1. One of these two should work.
    Hope this helps!!!
    Regards,
    Lalit

  • Events in table maintenance generator 01

    Hi all,
           I have an urgent requirement regarding the events in table maintenance generator.The requirement is i have a qty field in table i want to change the existing value it should allow only a lesser value.How to use TOTAL and EXTRACT structures.
    it is urgent.please help me out.
    Thanks & regards,
    Kranthi

    Follow the example below:
    form get_vendor_name.
      data w_extract type z_table.
      data begin of w_total.
              include structure z_table.
      data: action,
            mark,
      end of w_total.
      loop at extract into w_extract.
        check not w_extract-z_vend_no is initial.
        select single name1 from lfa1
                           into  w_extract-z_vend_name
                           where lifnr = w_extract-z_vend_no.
        modify extract from w_extract.
      endloop.
      loop at total into w_total.
        check not w_total-z_vend_no is initial.
        select single name1 from lfa1
                           into  w_total-z_vend_name
                           where lifnr eq w_total-z_vend_no.
        modify total from w_total.
      endloop.
    endform.
    Reward points if useful.
    Regards.

Maybe you are looking for