ALV Grouping specific rows subtotal

Hi Gurus,
I have one peculiar issue like,
For Ex.
Customer       Material    Amount
12345             m1            100
12346             m1            150
12346             m2            160
12346             m2            165
12347             m2            170
12347             m2            50
12348             m3            150
Now the report is showing as follows:
Customer       Material    Amount
12345             m1            100
subtotal                   100
12346             m1            150
12346             m2            160
12346             m2            165
subtotal                  475
12347             m2            170
12347             m2             50
subtotal                   220
12348             m3            150
subtotal                   150
<b>Total                         945</b>
But the requirement is we want the subtotals for material "M2" also only for material M2 not for other materials. So the output should look like following
Customer       Material    Amount
12345             m1            100
subtotal                    100
12346             m1            150
12346             m2            160
12346             m2            165
<b>subtotal                  325</b>
subtotal                    475
12347             m2            170
12347             m2             50
subtotal                    220
12348             m3            150
subtotal                    150
Total                         945
Hope I am clear to you all, please help me out with the right solution. Urgent !!!
Thanks in advance,
Naveen

Hi,
Simple ALV report
http://www.sapgenie.com/abap/controls/alvgrid.htm
http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
ALV
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
Check the program in the following link:
http://sap-img.com/abap/display-secondary-list-using-alv-grid.htm
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_basic.htm
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
13. Top-of-page in ALV
selection-screen and top-of-page in ALV
14.  ALV Group Heading
http://www.sap-img.com/fu037.htm
How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
15. ALV output to PDF conversion
It has an example code for PDF Conversion.
http://www.erpgenie.com/abap/code/abap51.htm
converting the output of alv in pdf
Go thru these programs they may help u to try on some hands on
ALV Demo program
BCALV_DEMO_HTML
BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode
BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode
BCALV_GRID_DEMO Simple ALV Control Call Demo Program
BCALV_TREE_DEMO Demo for ALV tree control
BCALV_TREE_SIMPLE_DEMO
BC_ALV_DEMO_HTML_D0100
Regards
ANJI

Similar Messages

  • Coloring of a (specific) row in ALV report-How?

    Hi Experts,
    Am looking to assign a color for a (specific)row in ALV report.......so, pls. let me know How to get it done?
    thanq

    TABLES:LFA1.
    SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR.
    DATA:BEGIN OF ITAB OCCURS 0,
    LIFNR LIKE LFA1-LIFNR,
    NAME1 LIKE LFA1-NAME1,
    LAND1 LIKE LFA1-LAND1,
    ORT01 LIKE LFA1-ORT01,
    REGIO LIKE LFA1-REGIO,
    SORTL LIKE LFA1-SORTL,
    CFIELD(4) TYPE C,
    END OF ITAB.
    data:col(4).
    data:num value '1'.
    SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE LIFNR
    IN LIFNR.
    LOOP AT ITAB.
    concatenate 'C' num '10' into col .
    ITAB-CFIELD = col.
    num = num + 1.
    if num = '8'.
    num = '1'.
    endif.
    MODIFY ITAB.
    ENDLOOP.
    TYPE-POOLS:SLIS.
    DATA:FCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA:LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    DATA:EVE TYPE SLIS_T_EVENT WITH HEADER LINE.
    LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    LAYOUT-WINDOW_TITLEBAR = 'VENDORS DETAILS SCREEN'.
    LAYOUT-EDIT = 'X'.
    LAYOUT-info_fieldname = 'CFIELD'.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = SY-REPID
    I_INTERNAL_TABNAME = 'ITAB'
    I_INCLNAME = SY-REPID
    CHANGING
    CT_FIELDCAT = FCAT.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = LAYOUT
    IT_FIELDCAT = FCAT
    TABLES
    T_OUTTAB = ITAB.
    this is for coloring cols
    REPORT ZBHCOLOR_COLS.
    TABLES:LFA1.
    SELECT-OPTIONS:C_LIFNR FOR LFA1-LIFNR. " FOR GRID ONLY
    PARAMETERS:LIST RADIOBUTTON GROUP ALV DEFAULT 'X',
    GRID RADIOBUTTON GROUP ALV.
    DATA:BEGIN OF ITAB OCCURS 0,
    LIFNR LIKE LFA1-LIFNR,
    NAME1 LIKE LFA1-NAME1,
    LAND1 LIKE LFA1-LAND1,
    ORT01 LIKE LFA1-ORT01,
    SORTL LIKE LFA1-SORTL,
    REGIO LIKE LFA1-REGIO,
    COL TYPE LVC_T_SCOL,
    END OF ITAB.
    DATA:COLR TYPE LVC_S_SCOL.
    SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB.
    LOOP AT ITAB.
    IF ITAB-LIFNR IN C_LIFNR.
    COLR-FNAME = 'NAME1'.
    COLR-COLOR-COL = '5'.
    COLR-COLOR-INT = '1'.
    COLR-COLOR-INV = '0'.
    COLR-NOKEYCOL = 'X'.
    APPEND COLR TO ITAB-COL.
    COLR-FNAME = 'LIFNR'.
    APPEND COLR TO ITAB-COL.
    MODIFY ITAB.
    ENDIF.
    ENDLOOP.
    TYPE-POOLS:SLIS.
    DATA:FCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA:LAYOUT TYPE SLIS_LAYOUT_ALV.
    LAYOUT-ZEBRA = 'X'.
    layout-coltab_fieldname = 'COL'.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = SY-REPID
    I_INTERNAL_TABNAME = 'ITAB'
    I_INCLNAME = SY-REPID
    CHANGING
    CT_FIELDCAT = FCAT.
    IF LIST = 'X'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = LAYOUT
    IT_FIELDCAT = FCAT
    TABLES
    T_OUTTAB = ITAB.
    ELSEIF GRID = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = LAYOUT
    IT_FIELDCAT = FCAT
    TABLES
    T_OUTTAB = ITAB.
    ENDIF.
    Reward points if useful.

  • How to colour specific rows within an WebDynpro ALV

    Hi everyone,
    I need to colour only specific rows of an ALV. I've already scoured sdn and implemented the solutions that I found but none of them seems to be working okay.
    I have an ALV table and I want to highlight only a few rows based on a certain logic.
    I've defined a context node that defines 2 attributes: textview_design and cell_design.
      LOOP AT ft_out_purchase_order_temp INTO ls_out_purchase_order_temp.
      if ....
        ls_out_purchase_order_temp-textview_design =  cl_wd_text_view=>e_design-standard.
        ls_out_purchase_order_temp-cell_design = cl_wd_table_column=>e_cell_design-standard.
      else.
          ls_out_purchase_order_temp-cell_design =  cl_wd_table_column=>e_cell_design-total.
          ls_out_purchase_order_temp-textview_design =  cl_wd_text_view=>e_design-emphasized.
      endif.
    ENDLOOP.
      lr_column_settings ?= po_alv_config_table.
      lr_column = lr_column_settings->get_column( 'EBELN' ).
      lr_column = po_alv_config_table->if_salv_wd_column_settings~get_column( 'EBELN' ).
      lr_column->set_cell_design_fieldname( value = 'CELL_DESIGN' ).
    This code works but the thing is that the whole column named 'EBELN' is coloured light green. This is strange because I've instructed the system that the design of the column EBELN is controlled by the field CELL_DESIGN and this field has the following values:
    10    (light green)
    33    (light blue)
    10
    10
    10
    33
    10
    33
    Any ideas?

    Hii,
       To color a particular row you need to follow two things.
    1. Specify condition based on which the row will be colored i.e. set the value for the attribute 'CELL_DESIGN'.
    2. Get all column references and  set the cell design field name with 'CELL_DESIGN'.
    Get all column reference.
    DATA : LT_COLUMNS TYPE SALV_WD_T_COLUMN_REF,
                 LS_COLUMNS TYPE SALV_WD_S_COLUMN_REF.
      LT_COLUMNS = LR_COLUMN_SETTINGS-&gt;GET_COLUMNS( ).
    configure column
      LR_COLUMN_SETTINGS ?= LV_VALUE.                              " column functions
      LT_COLUMNS = LR_COLUMN_SETTINGS-&gt;GET_COLUMNS( ).
    set cell design for all.
    In your case if a single column is getting colored the then the reason might be
    1.every record satisfying your if condition specified.
    2.you have set cell design in that particular field name.
    Regards,
    Monishankar C

  • How to change the color of specific row in ALV tree

    Hi,
    I m using method set_table_for_first_display of a class CL_GUI_ALV_TREE.
    The req is to change the color of specific row. Now can anybody tell me how to change the color of ALV tree. As in ALV tree and in this method 'set_table_for_first_display', there is no parameter IS_Layout.
    Pls suggest...

    hi
    hope this code will help you.
    Reward if help.
    REPORT zsharad_test1.
    TABLES: ekko.
    TYPE-POOLS: slis. "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
    ebeln TYPE ekpo-ebeln,
    ebelp TYPE ekpo-ebelp,
    statu TYPE ekpo-statu,
    aedat TYPE ekpo-aedat,
    matnr TYPE ekpo-matnr,
    menge TYPE ekpo-menge,
    meins TYPE ekpo-meins,
    netpr TYPE ekpo-netpr,
    peinh TYPE ekpo-peinh,
    line_color(4) TYPE c, "Used to store row color attributes
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
    wa_ekko TYPE t_ekko.
    *ALV data declarations
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
    gd_tab_group TYPE slis_t_sp_group_alv,
    gd_layout TYPE slis_layout_alv,
    gd_repid LIKE sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
    PERFORM data_retrieval.
    PERFORM build_fieldcatalog.
    PERFORM build_layout.
    PERFORM display_alv_report.
    *& Form BUILD_FIELDCATALOG
    Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
    I.e. Field type may be required in-order for
    the 'TOTAL' function to work.
    fieldcatalog-fieldname = 'EBELN'.
    fieldcatalog-seltext_m = 'Purchase Order'.
    fieldcatalog-col_pos = 0.
    fieldcatalog-outputlen = 10.
    fieldcatalog-emphasize = 'X'.
    fieldcatalog-key = 'X'.
    fieldcatalog-do_sum = 'X'.
    fieldcatalog-no_zero = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'EBELP'.
    fieldcatalog-seltext_m = 'PO Item'.
    fieldcatalog-col_pos = 1.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'STATU'.
    fieldcatalog-seltext_m = 'Status'.
    fieldcatalog-col_pos = 2.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'AEDAT'.
    fieldcatalog-seltext_m = 'Item change date'.
    fieldcatalog-col_pos = 3.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MATNR'.
    fieldcatalog-seltext_m = 'Material Number'.
    fieldcatalog-col_pos = 4.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MENGE'.
    fieldcatalog-seltext_m = 'PO quantity'.
    fieldcatalog-col_pos = 5.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MEINS'.
    fieldcatalog-seltext_m = 'Order Unit'.
    fieldcatalog-col_pos = 6.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'NETPR'.
    fieldcatalog-seltext_m = 'Net Price'.
    fieldcatalog-col_pos = 7.
    fieldcatalog-outputlen = 15.
    fieldcatalog-datatype = 'CURR'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'PEINH'.
    fieldcatalog-seltext_m = 'Price Unit'.
    fieldcatalog-col_pos = 8.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    ENDFORM. " BUILD_FIELDCATALOG
    *& Form BUILD_LAYOUT
    Build layout for ALV grid report
    FORM build_layout.
    gd_layout-no_input = 'X'.
    gd_layout-colwidth_optimize = 'X'.
    gd_layout-totals_text = 'Totals'(201).
    Set layout field for row attributes(i.e. color)
    gd_layout-info_fieldname = 'LINE_COLOR'.
    gd_layout-totals_only = 'X'.
    gd_layout-f2code = 'DISP'. "Sets fcode for when double
    "click(press f2)
    gd_layout-zebra = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text = 'helllllo'.
    ENDFORM. " BUILD_LAYOUT
    *& Form DISPLAY_ALV_REPORT
    Display report using ALV grid
    FORM display_alv_report.
    gd_repid = sy-repid.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    i_callback_program = gd_repid
    i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
    i_callback_user_command = 'USER_COMMAND'
    i_grid_title = outtext
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    it_special_groups = gd_tabgroup
    IT_EVENTS = GT_XEVENTS
    i_save = 'X'
    is_variant = z_template
    TABLES
    t_outtab = it_ekko
    EXCEPTIONS
    program_error = 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.
    ENDFORM. " DISPLAY_ALV_REPORT
    *& Form DATA_RETRIEVAL
    Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
    DATA: ld_color(1) TYPE c.
    SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
    UP TO 10 ROWS
    FROM ekpo
    INTO TABLE it_ekko.
    *Populate field with color attributes
    LOOP AT it_ekko INTO wa_ekko.
    Populate color variable with colour properties
    Char 1 = C (This is a color property)
    Char 2 = 3 (Color codes: 1 - 7)
    Char 3 = Intensified on/off ( 1 or 0 )
    Char 4 = Inverse display on/off ( 1 or 0 )
    i.e. wa_ekko-line_color = 'C410'
    ld_color = ld_color + 1.
    Only 7 colours so need to reset color value
    IF ld_color = 8.
    ld_color = 1.
    ENDIF.
    CONCATENATE 'C' ld_color '10' INTO wa_ekko-line_color.
    wa_ekko-line_color = 'C410'.
    MODIFY it_ekko FROM wa_ekko.
    ENDLOOP.
    ENDFORM. " DATA_RETRIEVAL

  • Set specific rows in ALV grid ready for input

    Hi everyone,
      I have a question about how to set specific rows in ALV grid ready for input.
      I know that I can make some columns ready for input before the ALV displayed,but I have no idea how to make specific rows displayed in the ALV ready for input.

    Hello Aaron
    For editable columns we can use the fieldcatalog (LVC_S_FCAT-EDIT = 'X') but for rows you need to define editability on cell level.
    The required steps are documented in sample report BCALV_EDIT_02. Below I point out a few crucial points:
    *§1.Extend your output table for a field, e.g., CELLTAB, that holds
    *   information about the edit status of each cell for the
    *   corresponding row (the table type is SORTED!).
    DATA: BEGIN OF gt_outtab occurs 0.  "with header line
            include structure sflight.
    DATA: celltab type LVC_T_STYL.
    DATA: END OF gt_outtab.
    *§3.Provide the fieldname of the celltab field by using field
    *   STYLEFNAME of the layout structure.
       gs_layout-stylefname = 'CELLTAB'.
       CALL METHOD grid1->set_table_for_first_display
             EXPORTING i_structure_name = 'SFLIGHT'
                       is_layout        = gs_layout
             CHANGING  it_outtab        = gt_outtab[].
    Note: in the sample report only field SEATSMAX is editable. In your case you need
    to fill CELLTAB for all fields in a row.
    *§2.After selecting data, set edit status for each row in a loop
    *   according to field SEATSMAX.
      LOOP AT gt_outtab.
        l_index = sy-tabix.
        refresh lt_celltab.
        if gt_outtab-seatsmax ge 300.
            perform fill_celltab using 'RW'
                                 changing lt_celltab.
        else.
            perform fill_celltab using 'RO'
                                 changing lt_celltab.
        endif.
    *§2c.Copy your celltab to the celltab of the current row of gt_outtab.
        INSERT LINES OF lt_celltab INTO TABLE gt_outtab-celltab.
        MODIFY gt_outtab INDEX l_index.
      ENDLOOP.
    ENDFORM.                               " SELECT_DATA_AND_INIT_STYLE
    NOTE: LVC_T_STYL is a SORTED table type. Thus, take care that you are using the
    INSERT ... INTO TABLE statement and not APPEND (because then nothing is appended
    to the CELLTAB itab).
      IF p_mode EQ 'RW'.
    *§2a.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell
    *    to status "editable".
        l_mode = cl_gui_alv_grid=>mc_style_enabled.
      ELSE. "p_mode eq 'RO'
    *§2b.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell
    *    to status "non-editable".
        l_mode = cl_gui_alv_grid=>mc_style_disabled.
      ENDIF.
      ls_celltab-fieldname = 'SEATSMAX'.
      ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
      INSERT ls_celltab INTO TABLE pt_celltab.
    Regards
      Uwe

  • 'Reuse_alv_grid_display' : making a specific row bold

    Hi,
    I am using the FM : 'Reuse_alv_grid_display'  to display my list. Could You  please tell me how i can make a specific row in the output bold ???
    Thanks
    Akash

    hi Frnd,
        the below given program coloring the last row of ALV
        Try this code  ...
    REPORT  ZPRI_ALV_ROW_COLOR.
    TABLES: MARA , MAKT .
    DATA: LAYOUT TYPE LVC_S_LAYO .
    DATA: CONT1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER .
    DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID .
    DATA: FCAT1 TYPE LVC_T_FCAT .
    DATA: WA_FCAT1 LIKE LINE OF FCAT1 .
    TYPES : BEGIN OF TYPE_ITAB1 ,
             MATNR LIKE MARA-MATNR ,
             MTART LIKE MARA-MTART,
             MATKL LIKE MARA-MATKL ,
             MAKTX LIKE MAKT-MAKTX ,
             COL(4) TYPE C ,
           END OF TYPE_ITAB1 .
    DATA: IT_ITAB1 TYPE STANDARD TABLE OF TYPE_ITAB1 WITH HEADER LINE .
    DATA: LEN TYPE I.
    LAYOUT-INFO_FNAME = 'COL' .
    break devuser .
    WA_FCAT1-TABNAME = 'IT_ITAB1' .
    WA_FCAT1-FIELDNAME = 'MATNR' .
    WA_FCAT1-COLTEXT = 'Material' .
    WA_FCAT1-OUTPUTLEN = 18 .
    APPEND WA_FCAT1 TO FCAT1 .
    CLEAR WA_FCAT1 .
    WA_FCAT1-TABNAME = 'IT_ITAB1' .
    WA_FCAT1-FIELDNAME = 'MTART' .
    WA_FCAT1-COLTEXT = 'Material Type' .
    WA_FCAT1-OUTPUTLEN = 15 .
    APPEND WA_FCAT1 TO FCAT1 .
    CLEAR WA_FCAT1 .
    WA_FCAT1-TABNAME = 'IT_ITAB1' .
    WA_FCAT1-FIELDNAME = 'MATKL' .
    WA_FCAT1-COLTEXT = 'Material Group' .
    WA_FCAT1-OUTPUTLEN = 15 .
    APPEND WA_FCAT1 TO FCAT1 .
    CLEAR WA_FCAT1 .
    WA_FCAT1-TABNAME = 'IT_ITAB1' .
    WA_FCAT1-FIELDNAME = 'MAKTX' .
    WA_FCAT1-COLTEXT = 'Description' .
    WA_FCAT1-OUTPUTLEN = 25 .
    APPEND WA_FCAT1 TO FCAT1 .
    CLEAR WA_FCAT1 .
    SELECT AMATNR AMTART AMATKL BMAKTX INTO TABLE IT_ITAB1 FROM MARA AS A INNER JOIN MAKT AS B ON AMATNR = BMATNR .
    DESCRIBE TABLE IT_ITAB1 LINES LEN .
    LEN = LEN  .
    IT_ITAB1-COL = 'C601' .
    MODIFY IT_ITAB1 INDEX LEN FROM IT_ITAB1
           TRANSPORTING COL .
    CALL SCREEN 100 .
    *&      Module  SHOWALV  OUTPUT
          text
    module SHOWALV output.
    CREATE OBJECT cont1
       EXPORTING
        PARENT                      =
         container_name              = 'CUSTOM'
        STYLE                       =
        LIFETIME                    = lifetime_default
        REPID                       =
        DYNNR                       =
        NO_AUTODEF_PROGID_DYNNR     =
      EXCEPTIONS
        CNTL_ERROR                  = 1
        CNTL_SYSTEM_ERROR           = 2
        CREATE_ERROR                = 3
        LIFETIME_ERROR              = 4
        LIFETIME_DYNPRO_DYNPRO_LINK = 5
        others                      = 6
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CREATE OBJECT grid1
      EXPORTING
       I_SHELLSTYLE      = 0
       I_LIFETIME        =
        i_parent          =  CONT1
       I_APPL_EVENTS     = space
       I_PARENTDBG       =
       I_APPLOGPARENT    =
       I_GRAPHICSPARENT  =
       I_NAME            =
       I_FCAT_COMPLETE   = SPACE
    EXCEPTIONS
       ERROR_CNTL_CREATE = 1
       ERROR_CNTL_INIT   = 2
       ERROR_CNTL_LINK   = 3
       ERROR_DP_CREATE   = 4
       others            = 5
    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 METHOD grid1->set_table_for_first_display
      EXPORTING
       I_BUFFER_ACTIVE               =
       I_BYPASSING_BUFFER            =
       I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              =
       IS_VARIANT                    =
       I_SAVE                        =
       I_DEFAULT                     = 'X'
        IS_LAYOUT                     = LAYOUT
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
       IR_SALV_ADAPTER               =
      CHANGING
        it_outtab                     = IT_ITAB1[]
        IT_FIELDCATALOG               = FCAT1
       IT_SORT                       =
       IT_FILTER                     =
    EXCEPTIONS
       INVALID_PARAMETER_COMBINATION = 1
       PROGRAM_ERROR                 = 2
       TOO_MANY_LINES                = 3
       others                        = 4
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endmodule.                 " SHOWALV  OUTPUT
    thanks and Regards .
      Priyank dixit

  • How to set a MessageTextInput to be Read Only for a specific row?

    Hi,
    In Benefits Self Service, particularly the Update Beneficiaries page, it lists all your eligible Beneficiaries including yourself. The table has the following columns displayed for each beneficiary: Beneficiary, Relationship, Social Security Number, Primary %, Contingent %, Clear. This is the page where you allocate the Primary % and the Contingent %. The Primary % and Contingent % are MessageText Input.
    We have a requirement that we wouldn't want an employee to designate himself/herself as a beneficiary. However, the employee is being listed as a beneficiary along with all the other eligible beneficiaries. Oracle says it is an intended functionality to include the employee in the beneficiary. Is there a way thru Controller Object extension to set the Primary % and Contingent % as Read Only but only for the row corresponding to the employee to prevent the employee from accidentally allocating himself/herself as a beneficiary.
    I know there is the SPEL functionality but this requires me to add a transient attribute to the View Object corresponding to that table. But everytime I make a change to the View Object either by adding a transient attribute or some other changes, I end up getting an error on the standard Relation attribute of that view object. The error is something like "Relation set attribute failed for View Object". I cannot get pass this error and I'm not sure what's causing this. I see other people in this forum have encountered the same problem when extending view objects but no specific solution was offered nor any clear explanation of the cause.
    So I thought if there's any way this could be done thru Controller Object extension. If so, please let me know how. The challenge for me I think is finding the bean corresponding to those Message Text Input but only for a specific row in the table.
    Thanks,
    Ronaldo

    Hi,
    I also tried extending the View Object but without changing anything to the SQL so it is exactly the same as the standard view object but I still get the "Attribute set for Relation in view object BeneficiaryPeopleVO1 failed". Based from this, extending the view object whether any change has been made or not affects the standard transient Relation attribute.
    Here is the standard XML definition of the View Object if anyone is curious
    <ViewObject
    Name="BeneficiaryPeopleVO"
    BindingStyle="Oracle"
    CustomQuery="true"
    RowClass="oracle.apps.ben.selfservice.enrollment.server.BeneficiaryPeopleVORowImpl"
    ComponentClass="oracle.apps.ben.selfservice.enrollment.server.BeneficiaryPeopleVOImpl"
    MsgBundleClass="oracle.jbo.common.JboResourceBundle"
    FetchMode="FETCH_AS_NEEDED"
    FetchSize="10"
    UseGlueCode="false" >
    <SQLQuery><![CDATA[
    SELECT pcr.person_id person_id,
    pen.prtt_enrt_rslt_id prtt_enrt_rslt_id,
    con.first_name ||' '||con.last_name || ' ' || con.suffix Beneficiary,
    con.national_identifier Ssn,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) contingent_pct,
    con.person_id bnf_person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pbn.pl_bnf_id pl_bnf_id,
    pbn.object_version_number object_version_number,
    pbn.effective_start_date,
    pcr.contact_type contact_type,
    con.full_name beneficiary_full_name,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) Db_Primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) db_contingent_pct,
    DECODE(pbn.pl_bnf_id, null, 'DeleteIconDisabled', 'DeleteIconEnabled') delete_switcher,
    pen.pl_id pl_id,
    pen.oipl_id oipl_id,
    nvl((select 'Y' from dual where (to_date(:1 , 'rrrr/mm/dd') between
              nvl(pcr.date_start,to_date(:2 , 'rrrr/mm/dd')) and
              nvl(pcr.date_end,to_date(:3 , 'rrrr/mm/dd'))) and
              (pil.lf_evt_ocrd_dt <= nvl(con.date_of_death,pil.lf_evt_ocrd_dt))), 'N') rel_exists_flag
    FROM per_people_f con,
    per_contact_relationships pcr,
    ben_pl_bnf_f pbn,
    ben_prtt_enrt_rslt_f pen,
         ben_per_in_ler pil
    WHERE pcr.personal_flag = 'Y'
    AND (pbn.pl_bnf_id is not null or
    (to_date(:4 ,'rrrr/mm/dd') between
    nvl(pcr.date_start,to_date(:5 ,'rrrr/mm/dd'))
    AND nvl(pcr.date_end,to_date(:6 ,'rrrr/mm/dd'))
              and pil.lf_evt_ocrd_dt <= nvl(con.date_of_death,pil.lf_evt_ocrd_dt)))     --Bug 4297137  
    AND pcr.contact_person_id = con.person_id
    and pen.person_id = pcr.person_id
    AND pbn.bnf_person_id (+) = con.person_id
    AND to_date(:7 ,'rrrr/mm/dd') between pbn.effective_start_date (+)
    AND pbn.effective_end_date (+)
    AND pcr.person_id = :8
    and pen.prtt_enrt_rslt_id = :9
    and to_date(:10 , 'rrrr/mm/dd') between con.effective_start_date and con.effective_end_date
    and to_date(:11 , 'rrrr/mm/dd') between pen.effective_start_date and pen.effective_end_date
    and pil.per_in_ler_id = pen.per_in_ler_id
    and pil.per_in_ler_stat_cd NOT IN('VOIDD', 'BCKDT')
    and pbn.prtt_enrt_rslt_id (+) = :12
    and ((to_date(:13 ,'rrrr/mm/dd') between
    nvl(pcr.date_start,to_date(:14 ,'rrrr/mm/dd')) and
    nvl(pcr.date_end,to_date(:15 ,'rrrr/mm/dd'))) or
    ((pcr.date_start = (select max(pcr2.date_start)
    from per_contact_relationships pcr2
    where pcr2.contact_person_id = pcr.contact_person_id
    and pcr2.person_id = pcr.person_id
    and pcr2.personal_flag = 'Y')) and
    not exists (select null
    from per_contact_relationships pcr3
    where pcr3.contact_person_id = pcr.contact_person_id
    and pcr3.person_id = pcr.person_id
    and pcr3.personal_flag = 'Y'
    and to_date(:16 ,'rrrr/mm/dd') between
    nvl(pcr3.date_start,to_date(:17 ,'rrrr/mm/dd'))
    and nvl(pcr3.date_end,to_date(:18 ,'rrrr/mm/dd')))
    and (pbn.pl_bnf_id is null or
    exists (select null from ben_per_in_ler pil2
    where pil2.per_in_ler_id = pbn.per_in_ler_id
    and pil2.per_in_ler_stat_cd not in ('VOIDD','BCKDT')))
    GROUP BY pcr.person_id,
    pen.prtt_enrt_rslt_id,
    con.last_name,con.first_name,con.suffix,
    con.full_name,
    con.national_identifier,
    pcr.contact_type,
    con.date_of_birth,
    con.person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pl_bnf_id,
    pbn.object_version_number,
    pbn.effective_start_date,
    pen.pl_id,
    pen.oipl_id,
              pcr.date_start,
              pcr.date_end,
              pil.lf_evt_ocrd_dt,
              con.date_of_death
    union
    SELECT to_number(null) person_id,
    pen.prtt_enrt_rslt_id prtt_enrt_rslt_id,
    con.first_name ||' '||con.last_name || ' ' || con.suffix Beneficiary,
    con.national_identifier Ssn,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) contingent_pct,
    con.person_id bnf_person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pbn.pl_bnf_id pl_bnf_id,
    pbn.object_version_number object_version_number,
    pbn.effective_start_date,
    'SLF' contact_type,
    con.full_name beneficiary_full_name,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) Db_Primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) db_contingent_pct,
    DECODE(pbn.pl_bnf_id, null, 'DeleteIconDisabled', 'DeleteIconEnabled') delete_switcher,
    pen.pl_id pl_id,
    pen.oipl_id oipl_id,
    'Y' rel_exists_flag
    FROM per_people_f con,
    ben_pl_bnf_f pbn,
    ben_prtt_enrt_rslt_f pen,
         ben_per_in_ler pil
    WHERE
    pbn.bnf_person_id (+) = con.person_id
    AND to_date(:19 ,'rrrr/mm/dd') between pbn.effective_start_date (+)
    AND pbn.effective_end_date (+)
    AND con.person_id = :20
    and con.person_id = pen.person_id
    and pen.prtt_enrt_rslt_id = :21
    and to_date(:22 , 'rrrr/mm/dd') between con.effective_start_date and con.effective_end_date
    and to_date(:23 , 'rrrr/mm/dd') between pen.effective_start_date and pen.effective_end_date
    and pil.per_in_ler_id = pen.per_in_ler_id
    and pil.per_in_ler_stat_cd NOT IN('VOIDD', 'BCKDT')
    and (pbn.pl_bnf_id is not null or pil.lf_evt_ocrd_dt <= nvl(con.date_of_death,pil.lf_evt_ocrd_dt))     --Bug 4297137
    and pbn.prtt_enrt_rslt_id (+) = :24
    and (pbn.pl_bnf_id is null or
    exists (select null from ben_per_in_ler pil2
    where pil2.per_in_ler_id = pbn.per_in_ler_id
    and pil2.per_in_ler_stat_cd not in ('VOIDD','BCKDT')))
    GROUP BY pen.prtt_enrt_rslt_id,
    con.last_name,con.first_name,con.suffix,
    con.full_name,
    con.national_identifier,
    con.date_of_birth,
    con.person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pl_bnf_id,
    pbn.object_version_number,
    pbn.effective_start_date,
    pen.pl_id,
    pen.oipl_id
    ORDER BY 3,14
    ]]></SQLQuery>
    <DesignTime>
    <Attr Name="_isCodegen" Value="true" />
    <Attr Name="_version" Value="9.0.3.13.75" />
    <Attr Name="_CodeGenFlagNew" Value="36" />
    <Attr Name="_rowSuperClassName" Value="oracle.apps.fnd.framework.server.OAPlsqlViewRowImpl" />
    <Attr Name="_objectSuperClassName" Value="oracle.apps.fnd.framework.server.OAPlsqlViewObjectImpl" />
    </DesignTime>
    <ViewAttribute
    Name="PersonId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PERSON_ID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="PrttEnrtRsltId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PRTT_ENRT_RSLT_ID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="Beneficiary"
    IsQueriable="false"
    IsPersistent="false"
    Precision="332"
    Type="java.lang.String"
    AliasName="BENEFICIARY"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="Ssn"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="SSN"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="PrimaryPct"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Type="oracle.jbo.domain.Number"
    AliasName="PRIMARYPCT"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="ContingentPct"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="CONTINGENTPCT"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="BnfPersonId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="BNFPERSONID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="BusinessGroupId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="BUSINESSGROUPID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="PerInLerId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PERINLERID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="PlBnfId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PL_BNF_ID"
    ColumnType="$none$"
    Expression="PL_BNF_ID"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="ObjectVersionNumber"
    IsQueriable="false"
    IsPersistent="false"
    Precision="9"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="OBJECT_VERSION_NUMBER"
    ColumnType="$none$"
    Expression="OBJECT_VERSION_NUMBER"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="EffectiveStartDate"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Date"
    AliasName="EFFECTIVE_START_DATE"
    ColumnType="$none$"
    Expression="EFFECTIVE_START_DATE"
    SQLType="DATE" >
    </ViewAttribute>
    <ViewAttribute
    Name="ContactType"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="30"
    Type="java.lang.String"
    AliasName="CONTACT_TYPE"
    ColumnType="$none$"
    Expression="CONTACT_TYPE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="BeneficiaryFullName"
    IsQueriable="false"
    IsPersistent="false"
    Precision="240"
    Type="java.lang.String"
    AliasName="BENEFICIARY_FULL_NAME"
    ColumnType="$none$"
    Expression="BENEFICIARY_FULL_NAME"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="240" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="DbPrimaryPct"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="DB_PRIMARY_PCT"
    ColumnType="$none$"
    Expression="DB_PRIMARY_PCT"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="DbContingentPct"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="DB_CONTINGENT_PCT"
    ColumnType="$none$"
    Expression="DB_CONTINGENT_PCT"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="Relation"
    IsQueriable="false"
    IsPersistent="false"
    Type="java.lang.String"
    AliasName="Relation"
    ColumnType="$none$"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="DeleteSwitcher"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="DeleteSwitcher"
    ColumnType="VARCHAR2"
    Expression="DeleteSwitcher"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="PlId"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PlId"
    ColumnType="VARCHAR2"
    Expression="PlId"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="OiplId"
    IsUpdateable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="OiplId"
    ColumnType="VARCHAR2"
    Expression="OiplId"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="RelExistsFlag"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="REL_EXISTS_FLAG"
    ColumnType="VARCHAR2"
    Expression="REL_EXISTS_FLAG"
    SQLType="VARCHAR" >
    </ViewAttribute>
    </ViewObject>
    Thanks,
    Ronaldo

  • Editable ALV with New Row and Save

    Hi Experts,
      I created an ALV report which is editable, add a New Row with SAVE options.
    Problem is: when i try to save the changes using SAVE button in the application tool bar for the coloumn in the specific row, the event is not triggered and the changes were not available. However if i press Enter and then the SAVE the changes were available and i am able to update it.
    I do not want to press ENTER after doing the changes, All i want is to press SAVE to save my changes.(one click)
    How can I do that? Thanks.

    Thanks satish,
    From the thread,
    We have to either press return key (enter) or switch between cells. But the problem here is with the user, they do not want to do it either way. All they want is to press the save button in the application tool bar after the data is changed in the cell.
    Any inputs will be greatly appreicated.
    Thank you.

  • ALV grid display the subtotal not getting for one column at the output

    Hi,
    I am working one report ALV grid display and subtotal is not getting for one paricular coulumn.
    Eventhough that column has some values.
    So can anyone give the proper solution.
    Waiting quick response.
    Best Regards,
    Bansi

    Hi
    see this link .
    https://wiki.sdn.sap.com/wiki/display/ABAP/SUBTOTALinALV
    or try this program.
    REPORT zalv.
    DATA:
    t_sflight TYPE TABLE OF sflight,
    fs_sflight TYPE sflight.
    DATA:
    r_container TYPE REF TO cl_gui_custom_container,
    r_grid TYPE REF TO cl_gui_alv_grid.
    *FIELD CATALOG
    DATA:
    t_fcat TYPE lvc_t_fcat,
    fs_fcat TYPE lvc_s_fcat.
    *SORTING THE BASIC LIST
    DATA:
    t_sort TYPE lvc_t_sort,
    fs_sort TYPE lvc_s_sort.
    fs_fcat-fieldname = 'PRICE'.
    fs_fcat-do_sum = 'X'.
    APPEND fs_fcat TO t_fcat.
    fs_sort-spos ='1'.
    fs_sort-fieldname = 'CARRID'.
    fs_sort-down = 'X'.
    fs_sort-group = '*'.
    fs_sort-subtot = 'X'.
    APPEND fs_sort TO t_sort.
    SELECT * FROM sflight INTO TABLE t_sflight.
    CALL SCREEN 100.
    *& Module STATUS_0100 OUTPUT
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'SCREEN1'.
    SET TITLEBAR 'TITLE1'.ENDMODULE. " STATUS_0100 OUTPUT
    *& Module USER_COMMAND_0100 INPUT
    MODULE user_command_0100 INPUT.
    CASE sy-ucomm.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    **& Module HANDLER OUTPUT
    MODULE list OUTPUT.
    CREATE OBJECT r_container
    EXPORTING
    container_name = 'CONTAINER'.
    CREATE OBJECT r_grid
    EXPORTING
    i_parent = r_container.
    CALL METHOD r_grid->set_table_for_first_display
    EXPORTING
    i_structure_name = 'SFLIGHT'
    CHANGING
    it_fieldcatalog = t_fcat
    it_outtab = t_sflight
    it_sort = t_sort.
    ENDMODULE. "list OUTPUT
    Regards
    Hareesh Menon

  • Grouping of rows of internal table.

    Hi all,
    I am having a requirement in which I want to group two rows of an internal table and assign a pointer to the two rows.
    This pointer variable will then be passed to ALV.
    Help reqd.
    regards.

    hi,
    AT - itab:
    push F1 to look at the documentation for grouping
    then assign the value to a field-symbol.

  • In ALV output, select row(s), How can we know which record it has selected?

    Hi Experts,
    In ALV output, there are 10 records (rows) displayed. I want to select specific row (or rows) for mass printing ( I need to assign respective smartform for selected row(s)). How the system (or my self) will recognize that which record it has selected?
    We have one field is called MARK field or etc., which will shows which record selected by indicating 'X' in internal table. I dont know exactly.
    Could you please help me out.
    Thanks in advance.
    Sekhar

    declare a field chk(1) type c in your final itab.
    build fieldcatalaoge for that field.
    when 'CHK'.
    alvfld-checkbox = alvfld-edit = 'X'.
    give a button in alv 'process' with function code 'PRO'.
    then call alv
      call function 'REUSE_ALV_LIST_DISPLAY'
        exporting
          i_callback_program       = sy-repid
          it_fieldcat              = fieldcat[]
          I_CALLBACK_USER_COMMAND = 'USER_COMMAND'.
        tables
          t_outtab                 = it_tvse[].
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    then in form user_command do like this
    form user_command using ucomm like sy-ucomm cursor type slis_selfield.
    case sy-ucomm.
    when 'PRO'.
    Loop at itab where sel = 'X'.
    write your code here.
    endloop.
    endform

  • I want to create an ALV  with two row fields name

    Hi
    I want to create an ALV  with two row fields name. please suggest how to do it or send some sample code
    thanks

    Hi,
    see this link
    http://****************/Tutorials/ALV/ALVMainPage.htm
    http://www.alvrobot.com.ar/tutorial.php
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b09ac4d5-e3ad-2910-6a81-96d1b861928c
    http://abapprogramming.blogspot.com/2007/11/alv-check-boxes-sample-code.html
    REPORT zalv5 NO STANDARD PAGE HEADING.
    Description----
    TOPICS INTRODUCED:
    1. Learn about the u2018Standardu2019 PF-Status that comes as default.
    2. Exclude function codes from u2018Standardu2019 PF-Status and customize it.
    TYPE-POOLS: slis.
    DATA: BEGIN OF i_data OCCURS 0,
    qmnum LIKE qmel-qmnum,
    qmart LIKE qmel-qmart,
    qmtxt LIKE qmel-qmtxt,
    ws_row TYPE i,
    ws_char(5) TYPE c,
    chk,
    END OF i_data.
    DATA: report_id LIKE sy-repid.
    DATA: ws_title TYPE lvc_title VALUE 'An ALV Report'.
    DATA: i_layout TYPE slis_layout_alv.
    DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
    DATA: i_events TYPE slis_t_event.
    DATA: i_header TYPE slis_t_listheader.
    DATA: i_extab TYPE slis_t_extab.
    SELECT qmnum
    qmart
    qmtxt
    INTO TABLE i_data
    FROM qmel
    WHERE qmnum <= '00030000010'. LOOP AT i_data. i_data-ws_row = sy-tabix. i_data-ws_char = 'AAAAA'. MODIFY i_data. ENDLOOP. report_id = sy-repid. PERFORM f1000_layout_init CHANGING i_layout. PERFORM f2000_fieldcat_init CHANGING i_fieldcat. PERFORM f3000_build_header CHANGING i_header. PERFORM f4000_events_init CHANGING i_events. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' i_callback_program = report_id * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_CALLBACK_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_END_OF_LIST = ' ' * i_structure_name = ' ' * I_BACKGROUND_ID = ' ' i_grid_title = ws_title * I_GRID_SETTINGS = is_layout = i_layout it_fieldcat = i_fieldcat * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' i_save = 'A' * IS_VARIANT = it_events = i_events * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IT_ALV_GRAPHICS = * IT_ADD_FIELDCAT = * IT_HYPERLINK = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = i_data EXCEPTIONS program_error = 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.
    *& Form F1000_Layout_Init
    FORM f1000_layout_init USING i_layout TYPE slis_layout_alv.
    CLEAR i_layout.
    i_layout-colwidth_optimize = 'X'.
    i_layout-edit = 'X'.
    ENDFORM. " F1000_Layout_Init
    *& Form f2000_fieldcat_init
    FORM f2000_fieldcat_init CHANGING i_fieldcat TYPE slis_t_fieldcat_alv.
    DATA: line_fieldcat TYPE slis_fieldcat_alv.
    CLEAR line_fieldcat.
    line_fieldcat-fieldname = 'QMNUM'. " The field name and the table
    line_fieldcat-tabname = 'I_DATA'. " name are the two minimum req.
    line_fieldcat-key = 'X'. " Specifies the column as a key (Blue)
    line_fieldcat-seltext_m = 'Notification No.'. " Column Header
    APPEND line_fieldcat TO i_fieldcat.
    CLEAR line_fieldcat.
    line_fieldcat-fieldname = 'QMART'.
    line_fieldcat-ref_tabname = 'I_DATA'.
    line_fieldcat-hotspot = 'X'. " Shows the field as a hotspot.
    line_fieldcat-seltext_m = 'Notif Type'.
    APPEND line_fieldcat TO i_fieldcat.
    CLEAR line_fieldcat.
    line_fieldcat-fieldname = 'QMTXT'.
    line_fieldcat-tabname = 'I_DATA'.
    line_fieldcat-seltext_m = 'Description'.
    APPEND line_fieldcat TO i_fieldcat.
    CLEAR line_fieldcat.
    line_fieldcat-fieldname = 'WS_ROW'.
    line_fieldcat-tabname = 'I_DATA'.
    line_fieldcat-seltext_m = 'Row Number'.
    APPEND line_fieldcat TO i_fieldcat.
    CLEAR line_fieldcat.
    line_fieldcat-fieldname = 'WS_CHAR'.
    line_fieldcat-tabname = 'I_DATA'.
    line_fieldcat-seltext_l = 'Test Character Field'.
    line_fieldcat-datatype = 'CHAR'.
    line_fieldcat-outputlen = '15'. " You can specify the width of a
    APPEND line_fieldcat TO i_fieldcat. " column.
    CLEAR line_fieldcat.
    line_fieldcat-fieldname = 'CHK'.
    line_fieldcat-tabname = 'I_DATA'.
    line_fieldcat-seltext_l = 'Checkbox'.
    line_fieldcat-checkbox = 'X'. " Display this field as a checkbox
    line_fieldcat-edit = 'X'. " This option ensures that you can
    " edit the checkbox. Else it will
    " be protected.
    APPEND line_fieldcat TO i_fieldcat.
    ENDFORM. " f2000_fieldcat_init
    *& Form f3000_build_header
    FORM f3000_build_header USING i_header TYPE slis_t_listheader.
    DATA: gs_line TYPE slis_listheader.
    CLEAR gs_line.
    gs_line-typ = 'H'.
    gs_line-info = 'This is line of type HEADER'.
    APPEND gs_line TO i_header.
    CLEAR gs_line.
    gs_line-typ = 'S'.
    gs_line-key = 'STATUS 1'.
    gs_line-info = 'This is line of type STATUS'.
    APPEND gs_line TO i_header.
    gs_line-key = 'STATUS 2'.
    gs_line-info = 'This is also line of type STATUS'.
    APPEND gs_line TO i_header.
    CLEAR gs_line.
    gs_line-typ = 'A'.
    gs_line-info = 'This is line of type ACTION'.
    APPEND gs_line TO i_header.
    ENDFORM. " f3000_build_header
    *& Form f4000_events_init
    FORM f4000_events_init CHANGING i_events TYPE slis_t_event.
    DATA: line_event TYPE slis_alv_event.
    CLEAR line_event.
    line_event-name = 'TOP_OF_PAGE'.
    line_event-form = 'F4100_TOP_OF_PAGE'.
    APPEND line_event TO i_events.
    CLEAR line_event.
    line_event-name = 'PF_STATUS_SET'.
    line_event-form = 'F4200_PF_STATUS_SET'.
    APPEND line_event TO i_events.
    ENDFORM. " f3000_events_init
    FORM F4100_TOP_OF_PAGE *
    FORM f4100_top_of_page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = i_header.
    ENDFORM.
    FORM F4200_PF_STATUS_SET *
    FORM f4200_pf_status_set USING i_extab TYPE slis_t_extab.
    REFRESH i_extab.
    PERFORM f4210_exclude_fcodes CHANGING i_extab.
    SET PF-STATUS 'STANDARD' OF PROGRAM 'SAPLSALV' EXCLUDING i_extab.
    ENDFORM.
    *& Form f4210_exclude_fcodes
    FORM f4210_exclude_fcodes USING i_extab TYPE slis_t_extab.
    DATA: ws_fcode TYPE slis_extab.
    CLEAR ws_fcode.
    ws_fcode = '&EB9'. " Call up Report.
    APPEND ws_fcode TO i_extab.
    ws_fcode = '&ABC'. " ABC Analysis.
    APPEND ws_fcode TO i_extab.
    ws_fcode = '&NFO'. " Info Select.
    APPEND ws_fcode TO i_extab.
    ws_fcode = '&LFO'. " Information.
    APPEND ws_fcode TO i_extab.
    ENDFORM. " f4210_exclude_fcodes
    thanks
    karthik
    reward me if usefull

  • Having issues with contacts... groups specifically... when I add contacts to a group and check back there are fewer in group than when i started.. they disappear??

    having issues with contacts... groups specifically... when I add contacts to a group and check back there are fewer in group than when i started.. they disappear??

    Hi
    in this scenarion control is not going inside the condition
    if (vo.getRowCount() == 0) and therefore VO is not getting initialized
    why u are counting the row of VO to initialize the VO ,if possible pls remove this condition check ,problem will be solved .pls let me know in case of any issues.
    thanx
    Pratap

  • How to select specific rows in rtf template for complex calculation

    Hi,
    I want custom calculation in my rtf template and for this i need to select specific cell's value OR specific row's value. Any one please suggest how can I get this. Below is the example i have plotted using excel. My target is to get field 8 and 9 using sum and minus. We can calculate column over column, is there any way to calculate row over row? If I use variables, then i have to create so many variables because I have more columns and rows to calculate (here i posted one sample table). Any one please help me how can I get expected result other than using variables! If "Using variables" is the only way then also give your valuable opinions.
    Row No
    Curr Qtr
    PQtr1
    PQtr2
    3
    B3
    C3
    D3
    4
    B4
    C4
    D4
    5
    B5
    C5
    D5
    6
    B6
    C6
    D6
    7
    B7
    C7
    D7
    8
    B8=SUM(B4:B7)
    C8=SUM(C4:C7)
    D8=SUM(D4:D7)
    9
    B9=B8-B5
    C9=C8-C5
    D9=D8-D5
    Thanks.

    Hi AlexAnd,
    Thanks for the reply, I got 0 using both codes. This is a dummy table and I plotted 3,4 to give an idea of row number (as like as excel). Rows are individual data sets combining different measures and dimensions with different values.
    Account
    Curr_Qtr
    PQtr1
    PQtr2
    Deposit
    10
    15
    20
    Loan
    15
    20
    25
    Earning
    20
    25
    30
    Assets
    25
    30
    35
    Total
    =SUM(15,20)
    =SUM(20,25)
    =SUM(25,30)
    Expense
    =SUM(15,20)-25
    =SUM(20,25-30
    =SUM(15,20)-25
    Is there any way to identify the range or individual cell's value? Using variables I have to create lots of variables for each cells, I want to avoid that and want to use rows in calculation! Is that possible, Pls share your valuable opinions!
    Thanks.

  • Custom row-fetch and how to get column values from specific row of report

    Hi -- I have a case where a table's primary key has more than 3 columns. My report on the
    table has links that send the user to a single-row DML form, but of course the automatic
    fetch won't work because 1) I can't set more than 3 item values in the link and 2) the
    auto fetch only handles 2 PK columns.
    1)
    I have written a custom fetch (not sure it's the most elegant, see second question) that is working
    for 3 or few PK columns (it references the 1-3 item values set in the link), but when there are
    more than 3, I don't know how to get the remaining PK column values for the specific row that was
    selected in the report. How can I access that row's report column values? I'll be doing it from the
    form page, not the report page. (I think... unless you have another suggestion.)
    2)
    My custom fetch... I just worked something out on my own, having no idea how this is typically
    done. For each dependent item (database column) in the form, I have a source of PL/SQL
    function that queries the table for the column in question, using the primary key values. It works
    beautifully, though is just a touch slow on my prototype table, which has 21 columns. Is there
    a way to manually construct the fetch statement once for the whole form, and have APEX be smart
    about what items get what
    return values, so that I don't have to write PL/SQL for every item? Because my query data sources
    are sometimes in remote databases, I have to write manual fetch and dml anyway. Just would like
    to streamline the process.
    Thanks,
    Carol

    HI Andy -- Well, I'd love it if this worked, but I'm unsure how to implement it.
    It seems I can't put this process in the results page (the page w/ the link, that has multiple report rows), because the link for the row will completely bypass any after-submit processes, won't it? I've tried this in other conditions; I thought the link went directly to the linked-to page.
    And, from the test of your suggestion that I've tried, it's not working in the form that allows a single row edit. I tried putting this manually-created fetch into a before header process, and it seems to do nothing (even with a hard-coded PK value, just to test it out). In addition, I'm not sure how, from this page, the process could identify the correct PK values from the report page, unless it can know something about the row that was selected by clicking on the link. It could work if all the PK columns in my edit form could be set by the report link, but sometimes I have up to 5 pk columns.
    Maybe part of the problem is something to do with the source type I have for each of the form items. With my first manual fetch process, they were all pl/sql functions. Not sure what would be appropriate if I can somehow do this with a single (page level?) process.
    Maybe I'm making this too hard?
    Thanks,
    Carol

Maybe you are looking for

  • Hp products are the best that I have ever had by far

    I have just spent the past half hour reading about all the problems that some people have had with their HP product. I, myself, have had real horror stories about many OTHER brands of computers, including the Acert laptop that literally blew up only

  • Switching from 1.3 to 1.4

    I have decided to make the switch from Java 1.3 to 1.4, and along with it, I needed to implement new printing procedures. But, alas, these new procedures require classes that are not in java 1.3. Now, it turns out, many of my customers haven't and do

  • How come I always get the same results when I repair permissions?

    When I repair permissions I get the following messages, even if I do it again immediately afterwards: +Permissions differ on "usr/share/derby", should be drwxr-xr-x , they are lrwxr-xr-x .+ +Repaired "usr/share/derby".+ +Warning: SUID file "System/Li

  • Mighty mouse: installing it in windows requires a "passkey"

    i just bought a mighty mouse and it works fine in os x 10.5.7. trying to install it in windows on the same mac, i am asked to enter the passkey for the mouse. you can get far by choosing the option "no passkey", but to complete the installation they

  • Cant get PHP and GD to work, after uprade (and then downgrade)

    Recently performed a system upgrade.  Worked well, thanks to the entire Arch community. Then I had to downgrade my PHP, from a 5.3 to 5.2 version.  Had to do this because I run Drupal, and Drupal 6.x does not yet support 5.3.  But that's another topi