Screen value of table control in ME21N tcode condiions tab

Hi ALL,
I have a problem in ME21 Tcode .I want to read screen field value of net price  of Screen ME21N tcode conditions tab.
when I change tax code in delivery tab then condition tab values changes according to price procedure.I want to read that conditions tab  Net price value  nothing but unit price (amount field in screen) and need to do validation .
i used the BADI but could not able to find the screen value using DYNP_VALUES_READ fm.
kindly sugest the  solution.
regards,
padmaja.

Hi
In BADI ME_PROCESS_PO_CUST, method PROCESS_ITEM or in method CHECK, for interface IF_PURCHASE_ORDER_MM, use method GET_CONDITIONS.
For instance in method CHECK
  include mm_messages_mac.
  data: header       type mepoheader,
        items        type purchase_order_items,
        po_line      type mepoitem,
        line_item    type purchase_order_item,
        po_condition type mmpur_tkomv,
  header = im_header->get_data( ).
  items  = im_header->get_items( ).
  loop at items into line_item.
    po_line = line_item-item->get_data( ).
    call method line_item-item->get_conditions
      importing
        ex_conditions = po_condition.
  endloop.
I hope don't forget anything.
I hope this helps you
Regards
Eduardo

Similar Messages

  • How to find  dynamic value(screen value) in table control for current row .

    hi to all,
    i used table control in my screen. for column no 2 field i was used serrch help. and for column number 3 i used a dynamic help.
    in change mode you can change any row for table control.
    when i was using search help for a row which was already entered in column no 3 i cannot get any value.
    how i can get value of row no 3 and column no 2 value.
    thanks

    Try using like index for the serarch the TC-current_line

  • In BDC we need to read screen value of table control

    Dear All,
    I was doing a feasibility analysis. One BDC is there where we will have to insert records in table control based on some records of 1st column of table control already populated. We are unable to find a way for reading table control. The BDC is generating batch input session. Can you please suggest on this?
    Best wishes,
    Atanu

    Hi Atanu,
    with BDC, the only possibility is to do as Klaus suggested: you must replicate the SAP's logic in your program, you must know in advance how SAP fills this field. This is a very well known drawback of BDC. You may use the SQL trace to help you to know which tables are read. Ask functional people to help you.
    You may also use SAP GUI scripting, that's another technology (slower I think, and it can only work in dialog). It allows to do different actions between 2 screens. You must program it using OLE, or using external software (VBA for example).
    Sandra

  • Deleting the values from table control

    HI,
    I need to remove the selected line from the Table control on my screen.
    The point is that the Internal table does not have any records,.
    for example in the Customer Create screen,
    while entering the bank details we will enter it in a tbale contraol.
    but the records doesnt exist in the database. but the record gets deleted from the table control only if we press delete button.
    please guide me.
    please note : I want to delete the record from Table Control on the screen and I dont have any corresponding database records..
    regards

    Hi..
    The solution to your problem - deleting values from table control.
    Here: it_wizard is the internal table which is holding the value of table control.
             wa_wizard is the work are of the internal table it_wizard.
             it_delete is the internal table which holds the deleted record of table control.
             wa_delete is the work area of the internal table it_delete
    Also here the field ZSEL is the character field which is used to select the entire record in the table control.
    LOOP AT it_wizard into wa_wizard WHERE zsel = 'X'.
           MOVE-CORRESPONDING wa_wizard TO wa_delete.
           APPEND wa_delete TO it_delete.
           delete table it_wizard from wa_wizard.
    DELETE  FROM zfin_goods WHERE ZFG = WA_delete-ZFG.
    ENDLOOP
    if sy-subrc eq 0.
    Message 'Delete Successful' type 'S'.
    endif.
    The above code will delete the record from both the table control.internal table and the database table.
    I think this will help you to great extent.
    Ward regards,
    Bhuvaneswari
    Edited by: BHUVANESWARI THIRUNAVUKKARASU on Jan 7, 2009 10:39 AM

  • How to insert values in table control & how to place listbox in table ctrl

    Dear all,
                I have created table control in Module pool program.  My requirement is first
                   1)How to place list box in table control
                   2)Based on listbox selection i have to enter values in table control row..
    With Regards,
    Baskaran

    Hi Baskaran,
    For displaing list box, use FM: VRM_SET_VALUES.
    Code like that:
    TYPE-POOLS: vrm.
    DATA: name TYPE vrm_id,
    list TYPE vrm_values,
    value LIKE LINE OF list.
    PARAMETERS: ps_parm(10) AS LISTBOX VISIBLE LENGTH 15.
    Instead of parameter for module pool , you declare data:
    AT SELECTION-SCREEN OUTPUT.
      name = 'PS_PARM'.
      value-key = '3500000002'.
      value-text = '3500000002'.
      APPEND value TO list.
      value-key = '3500000003'.
      value-text = '3500000003'.
      APPEND value TO list.
      name = 'PS_PARM'.
      value-key = '3500000004'.
      value-text = '3500000004'.
      APPEND value TO list.
      name = 'PS_PARM'.
      value-key = '3000000007'.
      value-text = '3000000007'.
      APPEND value TO list.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id     = name
          values = list.
    make the necesary change for module pool.
    Hope this can solve your problems.
    Regards,
    Tutun

  • Retrieving values from table control using DYNP_VALUES_READ

    Hi all,
    I am trying to retrieve the values from the table control using the FM DYNP_VALUES_READ. I have a situation where user enter values in table control in T.code FB60 in Withholding tab for validation purpose. There i'll have to check based on some entries maintained in SET.
    I am unable to get the values when i scroll to the next page in the table control. FM raising an exception invalid_dynprofield.
    Expecting reply...

    You have to populate the dynpfields internal table before calling the function,
    data: repid like sy-repid.
    dynpfields-fieldname = 'PNAME'.
    append dynpfields.
    repid = sy-repid.
    call function 'DYNP_VALUES_READ'
    exporting
    dyname = repid
    dynumb = sy-dynnr
    tables
    dynpfields = dynpfields
    exceptions
    others.
    read table dynpfields index 1.
    pname = dynpfields-fieldvalue.
    Now you will have the field value in pname
    Hope this helps
    Vinodh Balakrishnan

  • Dynamically changing the value in table control

    Hello Every one,
    In MD61 transaction table control am trying to change value dynamicaly i.e am trying to change value in table control automaticaly tht value to be captured and i need to show in status bar...
    Ex table control field is number: am giving 10,20,30 tht should show in status bar by adding if u enter 10 at status bar it show 10 then when u enter 20 it should add with 10 and give 30 ..
    in this way when ever u enter value in filed it should add with the status bar value.

    Hi!
    For conversion you can use the function module
    data :   w_amt         TYPE cms_dte_original_amt,
                                                                                    " Amount
                w_conv_amt    TYPE cms_dte_conv_amt,
                                                                                    " Converted amount
                w_kmein       TYPE cms_dte_original_curr,
       CALL FUNCTION 'CMS_API_CURR_CONV'
            EXPORTING
              i_original_curr = w_kmein
              i_original_amt  = w_amt
              i_result_curr   = 'INR'
              i_rate_type     = 'M'
              i_conv_date     = sy-datum
            IMPORTING
              e_conv_amt      = w_conv_amt.
    now accordingly you can move the currency and amount that is changed....
    here as you were saying that on f4 after selecting you want the other field to get the value on that currency.....
    this work can be done as here....
    in this the next field gets populated as the first field gets the value......
    refer to it.....
    https://wiki.sdn.sap.com/wiki/display/ABAP/GettingainputfieldpopulatedonenteringthevalueinoneInputfield
    Regards.

  • Screen painter or table control problem

    Hi All,
    I have created two maintenance views for two custom tables , and two views has been created .
    in one view when i excuting sm54 and display i could able to see all the fields in the table control ,
    but in the other view i could see only one field very in the table control.
    Is this the problem of screen painter with table control , shall i need to intall screen painter again
    i am using  4,7 version  os sap ,
    Regards
    subba

    Hi  Chandra,
    Thanks for yorr prompt reply  and i tried so many times , can i go that particular screen and change
    the screen and include all the fields , actually the system proposes the screen when we are creating
    the table maintenance generator.
    i selected one step and screen proposed by sap in the overview screen as  1 and i have created table maintenance.
    Regards
    subba

  • Screen Resolution in table control bdc

    Hi ,
    Im working on bdc table control using call transaction method for vk11 and mek1.While uploading data for vk11 for the first time it is taking all the records of the input file and if i do the same for the second time by changing the amount value it is taking only 24 records .(i.e if the input file contains only 24 records it wil update else if it has 25 records or more it not updating even single record and it is showing error " No batch input data for screen sapmv13A ..)...this issue is with the production server......................whereas in development and quality servers there is no problem....................
    what migh be the problem and how to solve it?
    can anyone plz help me on this

    if its a problem in screen resolution then while recording through SHDB mark the check box default size
    or
    to make the bdc execute in standard screen size check the code below
    data x_ctuparams type ctu_params.
    x_ctuparams-defsize = 'X'. " This would freeze the resolution in any system
    x_ctuparams-dismode = 'N'.
    x_ctuparams-updmode = 'S'.
    call transaction <TCODE> using it_bdcdata options from x_ctuparams.
    So whatever is the screen size of the users front-end, the BDC will execute in standard screen size

  • Get value from table control

    Hi Guys,
    FYI, im having a table control with field Plant and Material. I have defaulted the <b>std search help</b> to field <u>Material</u> at the screen painter. Meaning system will call up the search help for Material once i press F4.
    Since the search help for field Material is a collective search help, and there is a <u>Plant</u> field available for Material filtering. Thus i may need to get the Plant's value from of same row of the  table control to Populate into the Material's search help.
    I have already tried to create a new module under the LOOP...ENDLOOP at PAI's flow logic. And try to use parameter id to set the value for plant, purpose is to populate it to Material's search help when i click F4 on material field. The problem is the new module that i coded under LOOP...ENDLOOP will never trigger when i click F4. Because there is NO event to trigger my module.
    Other than the above, i tried to code it under POV. But it doesn't work as well, because there is more than 1 record under table control and i can not determine the during runtime which row of F4 for material being click.
    Please comment on this above on how to solve the problem.
    Thanks in advance.

    Hi,
          You can call standard collective search help [say for Eg:<b>MAT1</b>] through Process on value-request event and set the paramenter id of Plant field before calling the funtion module <b>'HELP_START'</b>.Then we can get the materials specific to the PLANT in the corresponding row of the TABLE CONTROL.
    To get which row of the table control is clicked use <b>Get Cursor Line</b> Statement as i mentioned below.
    Flow logic:
    PROCESS ON VALUE-REQUEST.
    FIELD x_marc-matnr MODULE mat_shelp.
    Module definition:
    MODULE mat_shelp INPUT.
      DATA:v_help_info LIKE help_info,n TYPE i,
       it_dyselect LIKE TABLE OF dselc WITH HEADER LINE,
        it_dyvaltab LIKE TABLE OF dval WITH HEADER LINE.
      REFRESH it_dyselect.
      it_dyselect-fldname = 'MANDT'.
      it_dyselect-dyfldname = 'SY-MANDT'.
      APPEND it_dyselect.
      it_dyselect-fldname = 'MATNR'.
      it_dyselect-dyfldname = 'X_MARC-MATNR'.
      APPEND it_dyselect.
      v_help_info-call     =     'M'.
      v_help_info-object     =     'F'.
      v_help_info-program     =      sy-repid.    "'ZVIG_MOD_TABLE_CONTROL_1'.
      v_help_info-dynpro     =     sy-dynnr.    "'9001'.
    v_help_info-tabname     =      'MARC'.
      v_help_info-fieldname = 'MATNR'.
      v_help_info-fieldtype     =  'CHAR'.
      v_help_info-keyword   =   'MATNR'.
      v_help_info-fieldlng = 18.
      v_help_info-fldvalue = ''.
      v_help_info-mcobj = 'MAT1'.
      v_help_info-spras = 'E'.
      v_help_info-menufunct = 'HC'.
      v_help_info-title =     'SAP'.
      v_help_info-dynprofld = 'X_MARC-MATNR'.     <b>----
    > Give ur screen field name</b>
      v_help_info-tcode     =      sy-tcode.       "'ZTC1'.
      v_help_info-pfkey     =      'MEN'.
      v_help_info-docuid     =     'FE'.
      v_help_info-pov     =     'N'.
    v_help_info-curow     =   '2'.
    v_help_info-cucol     =  '1'.
      v_help_info-dynpprog = sy-repid.       " ZVIG_MOD_TABLE_CONTROL_1
      v_help_info-stepl     =   '1'.
      v_help_info-selectart = 'A'.
      GET CURSOR LINE n.
      READ TABLE it_marc INTO x_marc INDEX n.
      SET PARAMETER ID 'WRK' FIELD  X_MARC-WERKS .
      CALL FUNCTION 'HELP_START'
        EXPORTING
          help_infos         = v_help_info
        TABLES
          dynpselect         = it_dyselect
          dynpvaluetab       = it_dyvaltab           .
    ENDMODULE.                 " mat_shelp  INPUT

  • How to read the field value from Table Control

    Hello Experts,
    I am creating my first Table Control Screen. Basically I have to create a screen (102) with a table control which has 2 fields: A_QTY, B_QTY and 2 Buttons: SAVE, EXIT.
    When Clicked on 'SAVE' the data (MATNR) from a previous screen (101)  and the data (A_QTY, B_QTY) from the new screen (102) should be saved into a Z-table.
    Internal table t_data has 3 fields.
    MATNR
    A_QTY
    B_QTY.
    Table Control TC_RACK was declared like this:
    controls tc_rack type tableview using screen 0102.
    I/0 Fields:
    A_QTY type ZQTY.
    B_QTY type ZQTY.
    The screen Flow Logic:
    process before output.
    module status_0102.
      loop at t_data into w_data with control tc_rack.
      endloop.
    process after input.
      module exit_0102 at exit-command.
      loop at tc_rack.
      endloop.
    module user_command_0102.
    module status_0102output.
      set pf-status 'STATUS_102'.
      set titlebar 'TITLE_102'.
      describe table t_rack lines tc_rack-lines.
    endmodule.                 "status_0102 output
    process after input.
    module user_command_0615 input.
    case ok_code.
       when 'SAVE_RK'.
       when others.
    endcase.
    endmodule.                 "user_command_0102 input
    Now for eg, when the users enter values for A_QTY and B_QTY like this:
    A_QTY     B_QTY
    1000         2000
    3000         4000
    How can I read these values and pass them to T_DATA so that I can save it into Z-table?
    I greatly appreciate your help.
    I've gone through some previously posted threads and could not understand because my knowledge in this area is preliminary.
    Thanks a lot.
    Could you please let me know
    Edited by: dev a on Jan 13, 2010 2:46 PM

    Hi dev a
    You should use
      DATA: lv_name(30) TYPE c.
      FIELD-SYMBOLS: <QTY> type ZQTY.
    GET CURSOR FIELD lv_name.   "Get the field name in table control
    check sy-subrc = 0.
    assign  (lv_name) to <QTY>.  "Here you get the value in <QTY>
    check sy-subrc = 0.
    Also use <your table control>-current_line to get the table index uo're currently on.
    Hint: Do not use GET CURSOR LINE if you want to get table index since this gives you the line relative to dialog screen
    Good luck
    Dean Q.
    Edited by: Dean Q on Jan 13, 2010 11:11 PM

  • How to display a table data on Screen having a Table control

    Hi ,
    I am new to ABAP.I would like to display a table data (Eg: ZDemo) on a screen at run time.I have defined a Table control in screen. Now I want to populate data from ZDemo to table control.How can I do that?Please help moving forward in this regard.

    Hi Gayatri,
      After creating table control do the following steps.
    1. In the flow logic section write the following code:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0200.
    LOOP AT I_LIKP WITH CONTROL LIKP_DATA CURSOR LIKP_DATA-CURRENT_LINE.
      MODULE ASSIGN_DATA.
    ENDLOOP.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0200.
    LOOP AT I_LIKP.
    ENDLOOP.
    I_LIKP is the internal table which is used to display table data in the table control.
    2. In Process Before Output, in the module STATUS_0200 write the following code:
      DESCRIBE TABLE I_LIKP LINES FILL.
      LIKP_DATA-LINES = FILL.
      In Process After Input, in the module USER_COMMAND_0200 write the following code:
      CASE SY-UCOMM.
       WHEN 'LIPS'.
        READ TABLE I_LIKP WITH KEY MARK = 'X'.
        SELECT VBELN
               POSNR
               WERKS
               LGORT
               FROM LIPS
               INTO TABLE I_LIPS
               WHERE VBELN = I_LIKP-VBELN.
        IF SY-SUBRC = 0.
         CALL SCREEN 200.
        ENDIF.
       WHEN 'BACK'.
        SET SCREEN 200.
      ENDCASE.
    In Process Before Output and in the module ASSIGN_DATA which is there inside the loop write the following code:
    MOVE-CORRESPONDING I_LIKP TO LIKP.
    So, Totally your flow logic code should be like this.
    TABLES: LIKP, LIPS.
    DATA: BEGIN OF I_LIKP OCCURS 0,
           VBELN LIKE LIKP-VBELN,
           ERNAM LIKE LIKP-ERNAM,
           ERZET LIKE LIKP-ERZET,
           ERDAT LIKE LIKP-ERDAT,
           MARK  TYPE C VALUE 'X',
          END OF I_LIKP,
          BEGIN OF I_LIPS OCCURS 0,
           VBELN LIKE LIPS-VBELN,
           POSNR LIKE LIPS-POSNR,
           WERKS LIKE LIPS-WERKS,
           LGORT LIKE LIPS-LGORT,
          END OF I_LIPS,
          FILL TYPE I.
    CONTROLS: LIKP_DATA TYPE TABLEVIEW USING SCREEN 200,
              LIPS_DATA TYPE TABLEVIEW USING SCREEN 300.
    DATA: COLS LIKE LINE OF LIKP_DATA-COLS.
    *&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE USER_COMMAND_0100 INPUT.
    CASE SY-UCOMM.
      WHEN 'LIKP'.
       SELECT VBELN
              ERNAM
              ERZET
              ERDAT
              FROM LIKP
              INTO TABLE I_LIKP
              WHERE VBELN = LIKP-VBELN.
       IF I_LIKP[] IS INITIAL.
         CALL SCREEN 200.
       ENDIF.
      WHEN 'EXIT'.
       LEAVE PROGRAM.
    ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  assign_data  OUTPUT
          text
    MODULE ASSIGN_DATA OUTPUT.
    MOVE-CORRESPONDING I_LIKP TO LIKP.
    ENDMODULE.                 " assign_data  OUTPUT
    *&      Module  STATUS_0200  OUTPUT
          text
    MODULE STATUS_0200 OUTPUT.
      DESCRIBE TABLE I_LIKP LINES FILL.
      LIKP_DATA-LINES = FILL.
    ENDMODULE.                 " STATUS_0200  OUTPUT
    *&      Module  USER_COMMAND_0200  INPUT
          text
    MODULE USER_COMMAND_0200 INPUT.
      CASE SY-UCOMM.
       WHEN 'LIPS'.
        READ TABLE I_LIKP WITH KEY MARK = 'X'.
        SELECT VBELN
               POSNR
               WERKS
               LGORT
               FROM LIPS
               INTO TABLE I_LIPS
               WHERE VBELN = I_LIKP-VBELN.
        IF SY-SUBRC = 0.
         CALL SCREEN 200.
        ENDIF.
       WHEN 'BACK'.
        SET SCREEN 200.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0200  INPUT
    Save and Activate the program along with the screen in which you have included table control.
    Hope this will help you.
    Regards
    Haritha.

  • Default value to Table Control?

    DearAll,
    How to assign a default value to any field of Table Control at runtime?
    Regards,
    Dharmesh

    hi vyas,
    you can do thru interface workarea TABLES.
    say for eg you have defined your table control structure with ref to KNA1 table then in the PBO of the screen you can move the values to the structure,say
    KNA1-KUNNR = 'VYAS'.This way you can assign default values..
    Cheers,
    Abdul

  • Screen Modification i Table Control

    Hi all,
       we have a requirement on modifying the screen field attributes for a table control.
      scenario : f1  f2   f3   f4
    now when the user enters the input for field f1 a pop-up  appears wherein you will have to make a selection. the selected one will copy to field f2.
    now for a particular input of f1 the field f2 for that particular row has to be greyed out.
    we are trying this by looping at <b>screen</b> table , but this is greying out  the entire column instead of that particular cell.
    Thanks in Advance.
    Kishore Kumar Yerra.

    HI,
    look at the code below write this code in the PBO flow logic, in the module of loop endloop of table control.
    check for the fields are initial or not.
    if fields contains value then make them disable other wise make them enable.
    <b>
      LOOP AT SCREEN.
        IF screen-name = 'F1'.
          IF grid_itab-F1 IS INITIAL.
            screen-input = 1.
          ELSE.
            screen-input = 0.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    </b>
    Regards,

  • Screen Variant for table control in FB60

    Hi ,
    I need to create variant to show Quantity and Base Unit of Measure columns in the table control which is available at the first screen of FB60 . I tried using the option screen variant - > create variant. i couldnt see the options of colmuns properties for table control on click that small icon available at the right conner. Pls guide.
    Thanks

    In transaction SHD0 you need to create a new variant.
    After that you will be taken into FB60.
    Press Enter as if you are trying to process vendor invoice. It will take you to a screen "Screen values    1100 Program  SAPMF05A"
    There you will have 3 columns Output only, Invisible and Mandatory.
    Select as you want.
    Just try out carefully, you will be able to get the desired result.
    It is very difficult to guide you in details.
    Please let me know if you face any problems.
    Rgds,
    Harmees

Maybe you are looking for