Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV GRID DISPLAY USING FACTORY METHODS

Former Member
0 Likes
11,453

Hi all

I am using factory methods for my alv grid display.

I have a list of functionalities, for which i am not able to find a correct method..

1) Header of alv(with all the values of the selection-screen)

2)How to give text to a subtotal(ed) column, i.e. if i subtotal a qty field against a sorted field, i want to display ==> Nett Wt. = 123.00 (for first header entry) and so on for each header entry.

3)how to remove the zeroes from a quantity field?

4) Displaying the cells as blanks where data is 0( for quantity fields if i have a cell with zero value, it should be blank.)

5) double click on a cell to open a transaction with the cell's value.

Any help on this would be appreciated.

Points will be rewarded for sure...

Thanks & Regards

Ravish Garg

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
3,624

Here are the answers to your questions -

1) Header of alv(with all the values of the selection-screen)

Check following threads-

This thread will help you to find how to print selection criteria

This thread will help you to find how to print data in ALV Top of page.

2)How to give text to a subtotal(ed) column, i.e. if i subtotal a qty field against a sorted field, i want to display ==> Nett Wt. = 123.00 (for first header entry) and so on for each header entry.

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

3)how to remove the zeroes from a quantity field?

You need to change property "no_zero " for respective field in the field catalog.

value set: SPACE, 'X'

Only relevant for value fields

'X' = suppress zeros

4) Displaying the cells as blanks where data is 0( for quantity fields if i have a cell with zero value, it should be blank.)

Same as above

5) double click on a cell to open a transaction with the cell's value.

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

Hope this answers your questions.

ashish

Here are the answers to your questions -

1) Header of alv(with all the values of the selection-screen)

Check following threads-

This thread will help you to find how to print selection criteria

This thread will help you to find how to print data in ALV Top of page.

2)How to give text to a subtotal(ed) column, i.e. if i subtotal a qty field against a sorted field, i want to display ==> Nett Wt. = 123.00 (for first header entry) and so on for each header entry.

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

3)how to remove the zeroes from a quantity field?

You need to change property "no_zero " for respective field in the field catalog.

value set: SPACE, 'X'

Only relevant for value fields

'X' = suppress zeros

4) Displaying the cells as blanks where data is 0( for quantity fields if i have a cell with zero value, it should be blank.)

Same as above

5) double click on a cell to open a transaction with the cell's value.

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

Hope this answers your questions.

ashish

3 REPLIES 3
Read only

Former Member
0 Likes
3,625

Here are the answers to your questions -

1) Header of alv(with all the values of the selection-screen)

Check following threads-

This thread will help you to find how to print selection criteria

This thread will help you to find how to print data in ALV Top of page.

2)How to give text to a subtotal(ed) column, i.e. if i subtotal a qty field against a sorted field, i want to display ==> Nett Wt. = 123.00 (for first header entry) and so on for each header entry.

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

3)how to remove the zeroes from a quantity field?

You need to change property "no_zero " for respective field in the field catalog.

value set: SPACE, 'X'

Only relevant for value fields

'X' = suppress zeros

4) Displaying the cells as blanks where data is 0( for quantity fields if i have a cell with zero value, it should be blank.)

Same as above

5) double click on a cell to open a transaction with the cell's value.

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

Hope this answers your questions.

ashish

Read only

0 Likes
3,624

Hi Ashish,

Thanks for the reply, but i was looking for the functionalities using the <b>SALV methods</b>, im not using the FM" REUSE_ALV_GRID_DISPLAY".

Read only

uwe_schieferstein
Active Contributor
0 Likes
3,624

Hello Ravish

Regarding the display of zero values as empty cells have a look at my <i>modified </i>sample report <b>ZUS_SDN_CL_SALV_TABLE_INTERACT</b>.

*&---------------------------------------------------------------------*
*& Report  ZUS_SDN_CL_SALV_TABLE_INTERACT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zus_sdn_cl_salv_table_interact.

TYPE-POOLS: abap.






DATA:
  gt_knb1        TYPE STANDARD TABLE OF knb1.


DATA:
  go_table       TYPE REF TO cl_salv_table,
  go_events      TYPE REF TO cl_salv_events_table.



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_double_click FOR EVENT
          if_salv_events_actions_table~double_click
          OF cl_salv_events_table
          IMPORTING
            row
            column.

ENDCLASS.                    "lcl_eventhandler DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_double_click.
*   define local data
    DATA:
      lo_table   TYPE REF TO cl_salv_table,
      lt_orders  TYPE STANDARD TABLE OF bapiorders,
      ls_knb1    TYPE knb1.


    READ TABLE gt_knb1 INTO ls_knb1 INDEX row.
    IF ( syst-subrc = 0 ).

      CALL FUNCTION 'BAPI_SALESORDER_GETLIST'
        EXPORTING
          customer_number             = ls_knb1-kunnr
          sales_organization          = '1000'
*         MATERIAL                    =
*         DOCUMENT_DATE               =
*         DOCUMENT_DATE_TO            =
*         PURCHASE_ORDER              =
*         TRANSACTION_GROUP           = 0
*         PURCHASE_ORDER_NUMBER       =
*       IMPORTING
*         RETURN                      =
        TABLES
          sales_orders                = lt_orders.

*     Create ALV grid instance
      TRY.
          CALL METHOD cl_salv_table=>factory
*        EXPORTING
*          LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE
*          R_CONTAINER    =
*          CONTAINER_NAME =
            IMPORTING
              r_salv_table   = lo_table
            CHANGING
              t_table        = lt_orders.
        CATCH cx_salv_msg .
      ENDTRY.

      lo_table->display( ).


**      SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.
**      SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.
**
**      CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
    ENDIF.

  ENDMETHOD.                    "handle_double_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION


START-OF-SELECTION.

  SELECT        * FROM  knb1 INTO TABLE gt_knb1
         WHERE  bukrs  = '1000'.


* Create ALV grid instance
  TRY.
      CALL METHOD cl_salv_table=>factory
*    EXPORTING
*      LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE
*      R_CONTAINER    =
*      CONTAINER_NAME =
        IMPORTING
          r_salv_table   = go_table
        CHANGING
          t_table        = gt_knb1.
    CATCH cx_salv_msg .
  ENDTRY.

* Create event instance
  go_events = go_table->get_event( ).

* Set event handler
  SET HANDLER:
    lcl_eventhandler=>handle_double_click FOR go_events.


  PERFORM modify_columns.

  go_table->display( ).

END-OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  MODIFY_COLUMNS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM modify_columns .
* define local data
  DATA:
    lt_dfies        TYPE ddfields,
    ls_dfies        TYPE dfies,
    lo_typedescr    TYPE REF TO cl_abap_typedescr,
    lo_strucdescr   TYPE REF TO cl_abap_structdescr,
    lo_tabledescr   TYPE REF TO cl_abap_tabledescr,
    lo_columns      TYPE REF TO cl_salv_columns_table,
    lo_column       TYPE REF TO cl_salv_column.



  lo_columns = go_table->get_columns( ).

  lo_typedescr = cl_abap_typedescr=>describe_by_data( gt_knb1 ).
  lo_tabledescr ?= lo_typedescr.
  lo_strucdescr ?= lo_tabledescr->get_table_line_type( ).

  lt_dfies = lo_strucdescr->get_ddic_field_list( ).

  LOOP AT lt_dfies INTO ls_dfies.
    lo_column = lo_columns->get_column( ls_dfies-fieldname ).

    IF ( ls_dfies-keyflag = abap_true ).
      CONTINUE.

    ELSEIF ( ls_dfies-fieldname = 'WEBTR' ).  " Bill of ex. limit
      lo_column->set_zero( if_salv_c_bool_sap=>true ).   " display zero
      lo_column->set_zero( if_salv_c_bool_sap=>false ).  " hide zero
    ELSE.
      lo_column->set_technical( if_salv_c_bool_sap=>true ).  " hide col
    ENDIF.

  ENDLOOP.

ENDFORM.                    " MODIFY_COLUMNS

Regards

Uwe