Transferring checkbox values on ALV to value in the internal table?

Hi,
I'm using an ALV grid (CL_GUI_ALV_GRID) to display an internal table.  I want users to be able to select one or many rows and those checked lines to be marked as X in my internal table.  I have a field, check(1), in my internal table displayed on the ALV, but when I tick one line on the ALV and debug, I don't see an X in the check field on that line in my internal table.
I've successfully written code to select and deselect all lines and those values copy back to my internal table so why don't the single lines?
CASE sy-ucomm.
    WHEN 'SELECT_ALL'.
*   select all lines
      LOOP AT tbl_data INTO wa_data.
        MOVE 'X' TO wa_data-check.
        MODIFY tbl_data FROM wa_data.
      ENDLOOP.
    WHEN 'DESELECT'.
*   deselect all lines
      LOOP AT tbl_data INTO wa_data.
        CLEAR wa_data-check.
        MODIFY tbl_data FROM wa_data.
      ENDLOOP.
ENDCASE.
Do I have to add some code in the PAI to transfer the values?
Any suggestions welcome,
Gill

Yes, I have.
The checkbox is appearing on the screen and is populated/cleared when I click the select/deselect buttons (this transfers the values in my internal table to the screen).  But when I just tick one line and then debug that line isn't showing as having X in the check field in my internal table.
Somehow I need to transfer the tick values on screen to my internal table.

Similar Messages

  • Value not moved to work are of the internal table

    HI
    I have one internal table declared with occurs 2500.
    i am selecting the values from a z table into this internal table.
    now i want to move the values in the table to another internal table for download.here except one field all the other fields are moving to the new internal table.When i debugged i could see the value in the internal table but its not getting moved to work area of that internal table (or the header line).
    I could not see the value when i use itab[]-field in debugger mode instead when i use itab[1]-field i could see that field value.
    please do suggest.

    There is no need to move your data from one internal table to another with fixed structure. All you need to do is take each row's components skipping the column you don't want to download and concatenate this to some string. Then append to string table and download it. Sample:
    "let's say your column is on 3rd place in the table
    data l_row_string type string.
    data lt_string_tab type table of string.
    Loop at itab assigning <wa>.
      do.
        check sy-index ne 3. "skip this column
        assign component sy-index of structure <wa> to <comp>.
        if sy-subrc = 0.
          CONCATENATE l_row_string <comp> INTO l_row_string SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
        else.
          "no more component in row
          append l_row_string to lt_string_tab.
          clear l_row_string.
          exit.     
        endif.
    enddo.
    endloop.
    Now all you need is to downlaod your lt_string_tab as your text file (extension TXT).
    Regards
    Marcin

  • Number of entries in the internal table for perticular field value

    hi All,
    Is this possible to get the count of records from the internal table for a perticular field value.
    currently my requirement is to get the entries from the internal table which does not have two records for perticular field value (say a = 123) whose status is active (say b = 'X').
    also suggets should use LOOP or DELETE or DESCRIBE for a internal table to ful fill this requirement.
    Thanks in advance.
    Pradeep

    Try like this..
    Create another table itab2 with same structure as itab1 & move the contents of itab1 to itab2
    ITAB2[] = ITAB1[].
    Then delete entries from itab2
    Delete itab2 whete a = '123' and b = 'X'
    Then use Describe statement to get the no of entries
    Describe table itab2 lines v_lines.
    Hope this helps...

  • Summing the internal table values

    Hi Experts,
    I have requirement in report to add the values in the internal table based on document no.
    for example
    Document no         date                         Amount                Exchange Rate
    190000012         05.04.2009                     100                                1
    190000012         05.04.2009                     200                                1
    190000012         05.04.2009                     300                                1
    190000013         05.04.2009                     100                                1
    190000013         05.04.2009                     200                                1
    190000014         05.04.2009                     100                                1
    If i use Collect or  On change statements , the exchange rate is also adding
    Document no         date                         Amount                Exchange Rate
    190000012         05.04.2009                     600                                3
    190000013         05.04.2009                     300                                2
    190000014         05.04.2009                     100                                1
    But i want to add only the amount field not the exchange rate .Please suggest me the best solutions.
    I want to display as
    Document no         date                         Amount                Exchange Rate
    190000012         05.04.2009                     600                                1
    190000013         05.04.2009                     300                                1
    190000014         05.04.2009                     100                                1
    Thanks in advance
    satish

    hi,
    check this
    Sort itab by documentno.
    Loop at itab1.
    on change of itab1-dcno.
    clear total.
    move itab1-docno to itab2-docno.
    itab2-total = itab-amont.
    move itab1-total to itab2-total.
    move itab1-date to itab2-date.
    move itab1-rate to itab2-rate.
    flag = '  '.
    append itab2.
    clear itab2.
    else.
    itab2-total = itab2-total + itab-amont.
    endon
    Endloop.
    it will work for  adjest append statement according to the out put .
    ~linganna

  • Totals for the internal table field in alv

    Hi Gurus,
    I have an issue in displaying the totals in alv.
    I have an internal table with the three fields like below.
    scrap_code_001 like afru-xmnga, " Scrap Reason Qty.
    scrap_code_002 like afru-xmnga, " Scrap Reason Qty.
    scrap_code_003 like afru-xmnga, " Scrap Reason Qty.
    In the output table which i am passing to the fieldcatlog is having the three above fields with values 10,3,4 respectively.
    I am looping at the internal table
    loop at gt_grund.
    gv_tabix = sy-tabix.
    i_fieldcat-no_zero = gc_x.
    i_fieldcat-do_sum = gc_x.
    perform assign_alv_qty_format.
    if gt_grund-grund is initial.
    gt_grund = 'NONE'.
    gv_text = gt_grund.
    else.
    gv_text = gt_grund-grdtx.
    endif.
    gv_tabixn = gv_tabix.
    gv_scrap_code+11(03) = gv_tabixn.
    gv_fieldname = gv_scrap_code.
    translate gv_fieldname to upper case.
    perform bild_fieldcat using
    gv_fieldname 'GT_REPORT' 'AFRU' gv_text 'QUAN' '12' ' ' .
    endif.
    endloop.
    But in the output I am getting the totals but it displays totals for all the three columns as 17,17,17 (summing 10,3,4).
    How do I display total as 10,3,4 for each column separately.
    I appreciate you help and award points for the answer

    Hi,
    Please check if value fields i_fieldcat-ref_fieldname and i_fieldcat-ref_tabname regard to numc or curr type.
    EX: i_fieldcat-ref_fieldname = 'WRBTR'
           I_fieldcat-ref_tabname = 'BSEG'.
    Regards,
    Fernando

  • Get ALV Report's Result Into Internal Table

    Hello everyone,
    is there a way to get a alv reports result into an internal table?
    For example: is it possible to get the values from transaction S_ALR_87012078.
    I mean i want to write a function an it will give you the alv reports result as internal table, so  you won't have to dig the reports code in.
    thanks to any answers from now. bye.

    Hi
    This is a wrapper program which will execute the standard program and capture the output as we are using list to memory
    Then after we will be using LIST_FROM_MEMORY and 'LIST_TO_ASCI'
    submit rhrhaz00 exporting list to memory
    and return
    with pchplvar = pchplvar
    with pchotype = pchotype
    with pchobjid in pchobjid
    with pchsobid in pchsobid
    with pchseark = pchseark
    with pchostat = pchostat
    with pchistat = pchistat
    with pchztr_d = pchztr_d
    with pchztr_a = pchztr_a
    with pchztr_z = pchztr_z
    with pchztr_m = pchztr_m
    with pchztr_p = pchztr_p
    with pchztr_y = pchztr_y
    with pchztr_f = pchztr_f
    with pchobeg = pchobeg
    with pchoend = pchoend
    with pchtimed = pchtimed
    with pchbegda = pchbegda
    with pchendda = pchendda
    * with pchwegid = pchwegid
    * with pchsvect = pchsvect
    * with pchdepth = pchdepth
    with infty in infty
    with subty in subty
    with vdata = vdata
    with info = info.
    data: list like abaplist occurs 0 with header line.
    data: txtlines(1024) type c occurs 0 with header line.
    clear list.
    refresh list.
    clear tbl_reportlines.
    refresh tbl_reportlines.
    call function 'LIST_FROM_MEMORY'
    tables
    listobject = list
    exceptions
    not_found = 1
    others = 2.
    if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    call function 'LIST_TO_ASCI'
    * EXPORTING
    * LIST_INDEX = -1
    * WITH_LINE_BREAK = ' '
    * IMPORTING
    * LIST_STRING_ASCII =
    * LIST_DYN_ASCII =
    tables
    listasci = txtlines
    listobject = list
    exceptions
    empty_list = 1
    list_index_invalid = 2
    others = 3
    if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    else.
    tbl_reportlines[] = txtlines[].
    call function 'LIST_FREE_MEMORY'.
    endif.
    Here is the simple example program
    *Example Code (Retrieving list from memory)
    DATA BEGIN OF itab_list OCCURS 0.
    INCLUDE STRUCTURE abaplist.
    DATA END OF itab_list.
    DATA: BEGIN OF vlist OCCURS 0,
    filler1(01) TYPE c,
    field1(06) TYPE c,
    filler(08) TYPE c,
    field2(10) TYPE c,
    filler3(01) TYPE c,
    field3(10) TYPE c,
    filler4(01) TYPE c,
    field4(3) TYPE c,
    filler5(02) TYPE c,
    field5(15) TYPE c,
    filler6(02) TYPE c,
    field6(30) TYPE c,
    filler7(43) TYPE c,
    field7(10) TYPE c,
    END OF vlist.
    SUBMIT zreport EXPORTING LIST TO MEMORY.
    CALL FUNCTION 'LIST_FROM_MEMORY'
    TABLES
    listobject = itab_list
    EXCEPTIONS
    not_found = 4
    OTHERS = 8.
    CALL FUNCTION 'LIST_TO_ASCI'
    EXPORTING
    list_index = -1
    TABLES
    listasci = vlist
    listobject = itab_list
    EXCEPTIONS
    empty_list = 1
    list_index_invalid = 2
    OTHERS = 3.
    IF sy-subrc NE '0'.
    WRITE:/ 'LIST_TO_ASCI error !! ', sy-subrc.
    ENDIF.
    Re: alv to internal table

  • Update all alv (grid) displayed records to internal table

    Hi all,
    i want to update the records into the internal table which are changed by the user in the edit field.
    after he select save button.
    i  have to save the ALV grid displayed records in the internal table.
    hw can i do this ?

    ALV with EDIT and SAVE functionality
    Code:REPORT z_demo_alv_jg.*******************************************************************
    TYPE-POOLS                                                      *
    TYPE-POOLS: slis. *******************************************************************
    INTERNAL TABLES/WORK AREAS/VARIABLES     *
    DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
          i_index TYPE STANDARD TABLE OF i WITH HEADER LINE,
          w_field TYPE slis_fieldcat_alv,
          p_table LIKE dd02l-tabname,
          dy_table TYPE REF TO data,
          dy_tab TYPE REF TO data,
          dy_line TYPE REF TO data.*******************************************************************
    FIELD-SYMBOLS                                                   *
    FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
                   <dyn_wa> TYPE ANY,
                   <dyn_field> TYPE ANY,
                   <dyn_tab_temp> TYPE STANDARD TABLE.*******************************************************************
    SELECTION SCREEN                                                *
    PARAMETERS: tabname(30) TYPE c,
                lines(5)  TYPE n.*******************************************************************
    START-OF-SELECTION                                              *
    START-OF-SELECTION.* Storing table name
      p_table = tabname.* Create internal table dynamically with the stucture of table name
    entered in the selection screen
      CREATE DATA dy_table TYPE STANDARD TABLE OF (p_table).
      ASSIGN dy_table->* TO <dyn_table>.
      IF sy-subrc <> 0.
        MESSAGE i000(z_zzz_ca_messages) WITH ' No table found'.    LEAVE TO LIST-PROCESSING.
      ENDIF.
    Create workarea for the table
      CREATE DATA dy_line LIKE LINE OF <dyn_table>.
      ASSIGN dy_line->* TO <dyn_wa>.* Create another temp. table
      CREATE DATA dy_tab TYPE STANDARD TABLE OF (p_table).
      ASSIGN dy_tab->* TO <dyn_tab_temp>.  SORT i_fieldcat BY col_pos.* Select data from table
      SELECT * FROM (p_table)
      INTO TABLE <dyn_table>
      UP TO lines ROWS.  REFRESH <dyn_tab_temp>.* Display report
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program       = sy-repid
          i_structure_name         = p_table
          i_callback_user_command  = 'USER_COMMAND'
          i_callback_pf_status_set = 'SET_PF_STATUS'
        TABLES
          t_outtab                 = <dyn_table>
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.  IF sy-subrc <> 0.  ENDIF.&----
    *&      Form  SET_PF_STATUS
          Setting custom PF-Status
         -->RT_EXTAB   Excluding table
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.  SET PF-STATUS 'Z_STANDARD'.ENDFORM.                    "SET_PF_STATUS&----
    *&      Form  user_command
          Handling custom function codes
         -->R_UCOMM      Function code value
         -->RS_SELFIELD  Info. of cursor position in ALV
    FORM user_command  USING    r_ucomm LIKE sy-ucomm
                               rs_selfield TYPE slis_selfield.* Local data declaration
      DATA: li_tab TYPE REF TO data,
            l_line TYPE REF TO data.* Local field-symbols
      FIELD-SYMBOLS:<l_tab> TYPE table,
                    <l_wa>  TYPE ANY.* Create table
      CREATE DATA li_tab TYPE STANDARD TABLE OF (p_table).
      ASSIGN li_tab->* TO <l_tab>.* Create workarea
      CREATE DATA l_line LIKE LINE OF <l_tab>.
      ASSIGN l_line->* TO <l_wa>.  CASE r_ucomm.*   When a record is selected
        WHEN '&IC1'.*     Read the selected record
          READ TABLE <dyn_table> ASSIGNING <dyn_wa> INDEX
          rs_selfield-tabindex.      IF sy-subrc = 0.*       Store the record in an internal table
            APPEND <dyn_wa> TO <l_tab>.*       Fetch the field catalog info
            CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
              EXPORTING
                i_program_name         = 'Z_DEMO_PDF_JG'
                i_structure_name       = p_table
              CHANGING
                ct_fieldcat            = i_fieldcat
              EXCEPTIONS
                inconsistent_interface = 1
                program_error          = 2
                OTHERS                 = 3.
            IF sy-subrc = 0.*         Make all the fields input enabled except key fields
              w_field-input = 'X'.          MODIFY i_fieldcat FROM w_field TRANSPORTING input
              WHERE key IS INITIAL.        ENDIF.*       Display the record for editing purpose
            CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
              EXPORTING
                i_callback_program    = sy-repid
                i_structure_name      = p_table
                it_fieldcat           = i_fieldcat
                i_screen_start_column = 10
                i_screen_start_line   = 15
                i_screen_end_column   = 200
                i_screen_end_line     = 20
              TABLES
                t_outtab              = <l_tab>
              EXCEPTIONS
                program_error         = 1
                OTHERS                = 2.        IF sy-subrc = 0.*         Read the modified data
              READ TABLE <l_tab> INDEX 1 INTO <l_wa>.*         If the record is changed then track its index no.
            and populate it in an internal table for future
            action
              IF sy-subrc = 0 AND <dyn_wa> <> <l_wa>.
                <dyn_wa> = <l_wa>.
                i_index = rs_selfield-tabindex.
                APPEND i_index.
              ENDIF.
            ENDIF.      ENDIF.*   When save button is pressed
        WHEN 'SAVE'.*     Sort the index table
          SORT i_index.*     Delete all duplicate records
          DELETE ADJACENT DUPLICATES FROM i_index.      LOOP AT i_index.*       Find out the changes in the internal table
          and populate these changes in another internal table
            READ TABLE <dyn_table> ASSIGNING <dyn_wa> INDEX i_index.
            IF sy-subrc = 0.
              APPEND <dyn_wa> TO <dyn_tab_temp>.
            ENDIF.      ENDLOOP.*     Lock the table
          CALL FUNCTION 'ENQUEUE_E_TABLE'
            EXPORTING
              mode_rstable   = 'E'
              tabname        = p_table
            EXCEPTIONS
              foreign_lock   = 1
              system_failure = 2
              OTHERS         = 3.      IF sy-subrc = 0.*       Modify the database table with these changes
            MODIFY (p_table) FROM TABLE <dyn_tab_temp>.        REFRESH <dyn_tab_temp>.*       Unlock the table
            CALL FUNCTION 'DEQUEUE_E_TABLE'
              EXPORTING
                mode_rstable = 'E'
                tabname      = p_table.      ENDIF.
      ENDCASE.  rs_selfield-refresh = 'X'.ENDFORM.                    "user_command

  • Checkbox as one of the field in the internal table in the list

    Hi,
    I have a requirement of processing the certain records of the internal table for which checkboxes are selected in the list.
    The selected records need to be updated in the custom table and the unselected records need to be ignored.
    I have created the PF status and the application tool bar and a button on the tool bar.
    Then when the report is executed the list is displayed with the records with one of the field as a checkbox.
    At user-command.
    Then in the at user-command handling the button click event.
    I want to know which records are been selected and which are not.
    If some one knows please let me know.
    Thanks
    S Patel

    This is exactly what you need to do:-
    PBO
    CREATE OBJECT g_custom_container
             EXPORTING container_name = g_container.
      CREATE OBJECT g_grid
             EXPORTING i_parent = g_custom_container.
    Select data from your table
      PERFORM select_data CHANGING pt_outtab[].
    Build fieldcat
      PERFORM build_fieldcat CHANGING pt_fieldcat.
    Exclude standard buttons from the Toolbar
      PERFORM exclude_tb_functions CHANGING lt_exclude.
    Display output in ALV grid
      CALL METHOD g_grid->set_table_for_first_display
        EXPORTING
          it_toolbar_excluding = lt_exclude
        CHANGING
          it_fieldcatalog      = pt_fieldcat
          it_outtab            = pt_outtab[].
    PAI
    Get modified data
      CALL METHOD gv_grid->check_changed_data.
      LOOP AT gt_output INTO wa_output WHERE zzchkbox EQ c_x.
        MOVE-CORRESPONDING wa_output TO wa_selblk.
        APPEND wa_selblk TO lt_selblk.
      ENDLOOP.
    This method will give you all the records which are selected in the list output. Collect them and modify your custom table.
    Edited by: Rudresh Chand on Feb 28, 2010 8:26 AM

  • How to pass the internal table defined in program to ALV

    Hi Friends,
    I have a doubt regaring the ALV's,
    How can we pass the internal table defined in the program to ALV by not filling the attribute (I_STRUCTURE_NAME) in the REUSE_ALV_LIST_DISPLAY.
    I have tried many ways but unable to pass the structure of the internal table. I am getting the error message "Field Catalog Not Specified......" and its terminating and when i am giving the I_STRUCTURE_NAME = 'INTERNAL-TABLE-NAME' then its displaying a blank screen with all the tool-bars and icons...(No output of internal table data is seen on the screen) .
    and when i am passing the DDIC table or structure ( for eg. LFA1) to I_STRUCTURE_NAME then its displaying with any error.
    Plaese help in resolving this problem....
    Regards
    Pradeep Goli

    Hi,
    Check this thread which gives example of ALV. This will give you an idea.
    Interactive ALV
    ashish

  • First occurence of a value from a  field in the internal table.

    How to select the first occurence of a value from a field in an internal table ?
    I don think , we can use select query .
    Any suggestions?
    provide syntaxs also .

    Hi...
    You have to use this code.
    DATA : Begin of IT_MARA occurs 0,
                 mtart type mara-mtart,
                 matnr type mara-matnr,
                 meins type mara-meins,
              END OF IT_MARA.
    START-of-SELECTION.
      SELECT MTART MATNR MEINS FROM MARA INTO TABLE IT_MARA.
    END-OF-SELECTION.
    LOOP AT  IT_MARA.
    <b>  AT NEW MTART.      "This will trigger for every first/new value of the field
                 <<<<WRITE YOUR CODE here>>
       ENDAT.</b>
    ENDLOOP.
    You can also use.
    LOOP AT  IT_MARA.
    <b> <b>  ON CHANGE OF IT_MARA-TART.   
                 <<<<WRITE YOUR CODE here>>
       ENDON.</b></b>
    ENDLOOP.
    <b>Reward if Helpful.</b>

  • Can't get the internal table values

    hi all,
    i have created a report in which i have DISPLAY EKPO-BANFN and EKKO-EBLEN.For this reason i have created an internal table gi_final,in which my values of both table are coming through.Following are the codes and structure of internal table:
    BEGIN OF gi_final OCCURS 0,
           matnr  LIKE  ekpo-matnr,
           ematn  LIKE  ekpo-ematn, "Material Number
           txz01  LIKE  ekpo-txz01, "Mareial Description
           ktmng  LIKE  ekpo-ktmng, "Quantity
           netpr  LIKE  ekpo-netpr, "Rate
           anfnr  LIKE  ekpo-anfnr, "RFQ No.
           banfn  LIKE  ekpo-banfn, "Purchase Requisition Number
           ebeln  LIKE  ekko-ebeln, "Purcahse Order
           ekorg  LIKE  ekko-ekorg,
           bstyp  LIKE  ekko-bstyp, "Purchasing Document Category
           submi  LIKE  ekko-submi, "Collective Number
           lifnr  LIKE  ekko-lifnr, "Vendor Number
           bedat  LIKE  ekko-bedat, "Purchase Order Date
        END OF gi_final.
      select ekko~ebeln ematn txz01 ktmng banfn
      from
        ekpo
        inner join ekko on
        ekpo~ebeln eq ekko~ebeln
      into
        corresponding fields of table gi_final
      where
        ekko~ekorg  in s_ekorg  and
        ekko~ebeln  in s_ebeln  and
        ekko~submi  in s_submi  and
        ekko~lifnr  in s_lifnr.
        READ TABLE gi_final WITH KEY  ebeln = gi_final-ebeln.
        MOVE gi_final-banfn to gi_detail-banfn.
        MOVE lv_netpr     to gi_detail-netpr.
        MOVE gi_final-ematn TO gi_detail-ematn.
        MOVE gi_final-txz01 TO gi_detail-txz01.
        MOVE gi_final-ktmng TO gi_detail-ktmng.
    Probelm is that when i execute it with Debugger my internal table can't get the values of EBELN and BANFN.
    Thanks & Regards,
    sapabappk
    Edited by: sapabappk on Sep 26, 2010 10:32 AM

    HI ,
    BEGIN OF gi_final OCCURS 0,
           matnr  LIKE  ekpo-matnr,
           ematn  LIKE  ekpo-ematn, "Material Number
           txz01  LIKE  ekpo-txz01, "Mareial Description
           ktmng  LIKE  ekpo-ktmng, "Quantity
           netpr  LIKE  ekpo-netpr, "Rate
           anfnr  LIKE  ekpo-anfnr, "RFQ No.
           banfn  LIKE  ekpo-banfn, "Purchase Requisition Number
           ebeln  LIKE  ekko-ebeln, "Purcahse Order
           ekorg  LIKE  ekko-ekorg,
           bstyp  LIKE  ekko-bstyp, "Purchasing Document Category
           submi  LIKE  ekko-submi, "Collective Number
           lifnr  LIKE  ekko-lifnr, "Vendor Number
           bedat  LIKE  ekko-bedat, "Purchase Order Date
        END OF gi_final.
      select ekko~ebeln ematn txz01 ktmng banfn
      from
        ekpo
        inner join ekko on
        ekpoebeln eq ekkoebeln
      into
        corresponding fields of table gi_final
      where
        ekko~ekorg  in s_ekorg  and
        ekko~ebeln  in s_ebeln  and
        ekko~submi  in s_submi  and
        ekko~lifnr  in s_lifnr.
        READ TABLE gi_final WITH KEY  ebeln = gi_final-ebeln.
        MOVE gi_final-banfn to gi_detail-banfn.
        MOVE lv_netpr     to gi_detail-netpr.
        MOVE gi_final-ematn TO gi_detail-ematn.
        MOVE gi_final-txz01 TO gi_detail-txz01.
        MOVE gi_final-ktmng TO gi_detail-ktmng.
    Why you are  reading gi_final table  and comparing same table field gi_final-ebeln ?
      how is gi_detail table declared   ?
    just do like this
    loop at  gi_final .
        MOVE gi_final-banfn to gi_detail-banfn.
        MOVE gi_final-ematn TO gi_detail-ematn.
        MOVE gi_final-txz01 TO gi_detail-txz01.
        MOVE gi_final-ktmng TO gi_detail-ktmng.
    append  gi_detail .
    clear gi_detail
    endloop.
    and From where you are getting value of    lv_netpr 
    MOVE lv_netpr     to gi_detail-netpr.
    then you will get data in gi_detail
    Regards
    Deepak.

  • Removing a character in a value from the internal table

    Hi guys!
    <b>example: i_table-field = "10,20"</b>
    I want to remove " " because creating csv creates this automatically because it has a value that includes comma. I am also using comma separator for my program so if I would remove the " " before splitting the values there will also be an effect on my program... can anyone can help me with this?
    thanks in advance! good day guys!

    Hi Michael,
    In the scenario of yours, you are left with two options.
    1. Format the XLS file properly before converting it to CSV. here If you convert the quantity, currency columns to the text columns then you will not get " into CSV file.
    2. Define the quantity, currency fields in your internal table as of type char. For eg. Curr of length 18, should be defined as fields of CHAR20 (two characters for " "), then once you separate all the fields based on comma, just repalce all the occurances of " using REPLACE.
    But what I suggest is better use option 1. The decision is totally depend on the number of time you want to use the program.
    Reward points if useful.
    Regards,
    Atish

  • Change the Value of column of the internal table at run time

    Hello Experts,
    With the below code i am able to determine the value hold
    by internal table at run time for a sepcific column but i am not getting the way
    of how to update the internal if one of the value is changed,
      lr_desc_table ?= cl_abap_typedescr=>describe_by_data( itab  ).
      lr_desc_struc ?= lr_desc_table->get_table_line_type( ).
    loop at itab assigning <fs_data>.
        loop at lr_desc_struc->components ASSIGNING <fs_comp_wa>.
          assign component  <fs_comp_wa>-name of structure <fs_data> to <fs_field>.
          lv_excel_row = <fs_field>.
         CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS'
            EXPORTING
              INTEXT  = lv_excel_row
            IMPORTING
              OUTTEXT = lv_excel_row.
          assign lv_excel_row to <fs_field>. "this is not changing the value actually hold in internal table
        endloop.
      endloop.

    Hi,
    Resolved this issue with the code mentioned below.
    Code:
    loop at lt_export_items assigning <fs_data>.
      ls_data = <fs_data>.
        loop at lr_desc_struc->components ASSIGNING <fs_comp_wa>.
          assign component  <fs_comp_wa>-name of structure <fs_data> to <fs_field>.
          lv_excel_row = <fs_field>.
          CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS'
            EXPORTING
              INTEXT  = lv_excel_row
            IMPORTING
              OUTTEXT = lv_excel_row.
              concatenate 'ls_data-' <fs_comp_wa>-name into  lv_var.
              assign (lv_var) to <fs_var>.
              <fs_var> = lv_excel_row.
        endloop.
        modify lt_export_items from ls_data .
        clear:ls_data.
      endloop.
    Take care,
    Sanju

  • Field value is getting double while updating the database table

    Hi Experts,
    A simple doubt :
    there is a standard program through which a zfunction module is getting triggered, through this zfunction module i am updating the database table.
    Now what happening is one of the field(KCQTY) value in database is getting double at a time when i am executing the Program with same variant only.
    I have also done the CLEAR & REFRESH internal tables starting of the Function module.
    Can you please help me out.
    Max points wil be awarded.
    thanks
    rico.

    Hi Nicole,
    this is the part of the coding where you can see how the field KCQTY is getting moved in the loop statement.
      DELETE IT_CE20002B_815 WHERE
          KONDA = SPACE  OR
          WERKS = SPACE  OR
          VVB01001 < 0.
        LOOP AT IT_CE20002B_815.
          INDX = SY-TABIX.
          CONCATENATE IT_CE20002B_815-PERBL0(4) IT_CE20002B_815-PERBL5(2)
                                                    INTO MONAT.
       MOVE itab_ce20001b-perbl TO monat.
          CLEAR S815.
          READ TABLE IT_ZPL_MCS5 WITH KEY KONDA = IT_CE20002B_815-KONDA
                                           BINARY SEARCH.
            SELECT SINGLE * FROM S815 WHERE VRSIO = '000'
                                         AND SPMON = MONAT
                                         AND KONOB = 'APO'
                                         AND MVGR2 = IT_CE20002B_815-KONDA
                                         AND PRODH = IT_CE20002B_815-PRDHA
                                         AND WERKS = IT_CE20002B_815-WERKS.
                                        AND VTWEG EQ CO_VTWEG_99.
    BREAK SAMEE.
          IF SY-SUBRC EQ 0.
    Eintrag in S810 existiert
            IF S815-AEMENGE <= IT_CE20002B_815-VVB01001.
    wenn die Auftragseingangsmenge kleiner gleich der Kontingentsmenge
    wird die Kontingentmenge in das Steploop übernommen
              MOVE IT_CE20002B_815-VVB01001 TO  W_T_DATA_815-KCQTY.
    *Liste ausgeben
             PERFORM AUSGABE4.
              PERFORM AUSGABE4_815.
            ELSE.
    Ausgabe Fehlermeldung, wenn die Auftragsmenge größer als die
                           Kontingentmenge ist.
    *Liste mit fehlermeldungen ausgeben, Kontingent trotzdem übernehmen
              MOVE IT_CE20002B_815-VVB01001 TO  W_T_DATA_815-KCQTY.
             PERFORM AUSGABE_FEHLER4.
              PERFORM AUSGABE_FEHLER4_815.
            delete it_ce20002b index indx.
            continue.
            ENDIF.
          ELSE.
    Es existiert kein Eintrag in S810, dann direkt eingeben
            MOVE IT_CE20002B_815-VVB01001 TO W_T_DATA_815-KCQTY.
            MODIFY IT_CE20002B_815 INDEX INDX.
    *Liste ausgeben (Kein Eintrag in S810)
           PERFORM EINTRAG2.
            PERFORM EINTRAG2_815.
          ENDIF.
    *Übergabestructur für die Weiterverarbeitung durch das Copymanagement
    *im Functionsbaustein wird gefüllt.
          W_T_DATA_815-SPMON = MONAT.   "itab_ce20001a-perbl.
          W_T_DATA_815-KONOB = CO_KONOB_APO.
          READ TABLE IT_ZPL_MCS5 WITH KEY KONDA = IT_CE20002B_815-KONDA
                                          BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            W_T_DATA_815-MVGR2 = CO_MVGR2_999.
          ELSE.
            W_T_DATA_815-MVGR2 = IT_CE20002B_815-KONDA.
          ENDIF.
          W_T_DATA_815-WERKS = IT_CE20002B_815-WERKS.
          W_T_DATA_815-PRODH = IT_CE20002B_815-PRDHA.
         W_T_DATA_815-VTWEG = '99'.
         W_T_DATA_815-KUNNR = '9999999999'.
          W_T_DATA_815-KCQTY = IT_CE20002B_815-VVB01001.
          W_T_DATA_815-BASME = IT_CE20002B_815-VVB01_ME.
    JR181005 - begin of ins.
         w_t_data_810-matkl = it_ce20002b-matkl.
    JR181005 - end of ins.
          APPEND W_T_DATA_815 TO TAB_DATA.
          CLEAR IT_CE20002B_815.
        ENDLOOP.
    thanks for reply
    rico

  • How to get  selected records from an ALV  Grid in some other internal table

    I am using a standard SAP program (RFKKMA02) in a Z program. Now i want to select some rows in ALV and after doing some modification, i want to store those records in some other internal table. I am not using OO concept.
    Thanks in advance.

    u create first internal table of structur of fields that u want to copy and then move taht values to internal table

Maybe you are looking for

  • Filter (variable) applied at analytical view is not reflected in Caculation view.

    Hello All, I am new to hana and would like to discuss one issue here. Model is something like this: Calculation  view  ---- >   has one Analytical View  --->  has one attribute view and a fact table. Now, in analytical view I have applied a filter us

  • Resetting PRAM with new aluminum keyboard

    I just updated the firmware to my aluminum keyboard via Software Update. I still cannot reset the PRAM by the old tried-and-true method of holding down command, option, PR. Lately resetting the PRAM has been needed. Anyone have any idea on how to do

  • How to invoke a servlet from the command line

    Hi, I have a process that needs to do something remotely. One of the ideas is to have a servlet on the other side that can do that. So the question is how can I invoke it from my process? Thanks,

  • In Sales Order Profitability Segment is not reading

    Hi Friends, my client is using Global Trade Management module. Created Sales Contract automatically Sales Order Created. Issue is some CO-PA KES1 master missing becasue in sales order profitability segment is not reading. after maintain the KES1 Mast

  • Regarding Narrow casting

    Hi Experts, Here i am giving one program about narrow casting in which i am not able to access the method called 'fasting', but here i am able to access dynamically. So, while doing narrow casting may i know that only dynamically we can able to acces