cancel
Showing results for 
Search instead for 
Did you mean: 

ALV in webdynpro with multiple row data for single entry.

prajyotp_demapure
Participant
0 Kudos

Hello Experts,

I'm new to Webdynpro , client have a requirement to display the Time and Attendance data in ALV in webdynpro application.

Below is the format (U can check attachment also).

Employee No.
Date 1Date 2Date 3Date 4Date 5Date 6Date 7Date 8Date 9Date 10Date 11Date 12Date 13Date 14
10001Time_In9.00 am0.00am9.00 am











Time_Out6.00 pm0.00pm2.00 pm











StatusPresentabscenthalf day


























Employee No.
Date 1Date 2Date 3Date 4Date 5Date 6Date 7Date 8Date 9Date 10Date 11Date 12Date 13Date 14
10002Time_In9.00 am0.00am9.00 am











Time_Out6.00 pm0.00pm2.00 pm











StatusPresentabscenthalf day








Is this POSSIBLE to display data in such format in ABAP WEBDYNPRO, if yes please guide me how should proceed for the same else

suggest me some way to display such data.

Thanks in advance.

Regards,

Prajyot P. Demapure

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

yes this is possible try using TREE structure in ALV

for more info refer below link:-

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c060fcb4-2c62-2b10-d2b2-f32407a5c...

prajyotp_demapure
Participant
0 Kudos

Thanks for the quick response sir,but my requirement is bit different .

In the given link the column headers are fixed i.e OK  and row values are changing, but in my case  both column header and row text are fixed. Here I'm attaching one screen shot please check and guide.

Regards,

Prajyot D.

Former Member
0 Kudos

you can do create fixed column like in pic1 attach snapshoot.

then create a hierarchy on employee number if expand any employee_id it will give you three row

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi prajyot,

Its working fine.

i tested now in my system here is the sample code and screen shot

DATA: LR_COMPONENTCONTROLLER        TYPE REF TO IG_COMPONENTCONTROLLER,

        L_REF_CMP_USAGE                    TYPE REF TO IF_WD_COMPONENT_USAGE,

        LO_CMP_USAGE                       TYPE REF TO IF_WD_COMPONENT_USAGE,

        LO_INTERFACECONTROLLER             TYPE REF TO IWCI_SALV_WD_TABLE ,

        LO_VALUE                           TYPE REF TO CL_SALV_WD_CONFIG_TABLE,

        L_TABLE_SETTINGS                   TYPE REF TO IF_SALV_WD_TABLE_SETTINGS ,

        L_HEADER                           TYPE REF TO CL_SALV_WD_HEADER,

        LO_COMPONENTINTERFACE              TYPE REF TO IF_WD_COMPONENT_USAGE,

        LO_INTERFACE                       TYPE REF TO IWCI_SALV_WD_TABLE,

        LR_CMDL                            TYPE REF TO CL_SALV_WD_CONFIG_TABLE,

        L_COLUMN_SETTINGS                  TYPE REF TO IF_SALV_WD_COLUMN_SETTINGS,

        LT_COLUMNS                         TYPE SALV_WD_T_COLUMN_REF ,

        LS_COLUMNS                         TYPE SALV_WD_S_COLUMN_REF ,

        L_COLUMN_HEADER                    TYPE REF TO CL_SALV_WD_COLUMN_HEADER .



      DATA:LR_AGGR_RULE        TYPE REF TO CL_SALV_WD_AGGR_RULE,

         LR_CONFIG_TABLE       TYPE REF TO CL_SALV_WD_CONFIG_TABLE,

         LR_FIELD_AMNT          TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_LIS           TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_LISPRICE      TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_LPVAL         TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_NETAMT        TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_COMM_P        TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_COMLO         TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_DIFF          TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_COMM          TYPE REF TO CL_SALV_WD_FIELD,

         LR_FIELD_INVOICE       TYPE REF TO CL_SALV_WD_FIELD,

         LR_SORT_RULE           TYPE REF TO CL_SALV_WD_SORT_RULE.



  LO_CMP_USAGE =   WD_THIS->WD_CPUSE_TEST_OVS( ).

  IF LO_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.


    LO_CMP_USAGE->CREATE_COMPONENT( ).

  ENDIF.



  LO_INTERFACECONTROLLER =   WD_THIS->WD_CPIFC_TEST_OVS( ).

  LO_VALUE = LO_INTERFACECONTROLLER->GET_MODEL( ).

  L_TABLE_SETTINGS ?= LO_VALUE.

  L_TABLE_SETTINGS->SET_VISIBLE_ROW_COUNT( 15 ).



  LO_COMPONENTINTERFACE = WD_THIS->WD_CPUSE_TEST_OVS( ).

  LO_CMP_USAGE =   WD_THIS->WD_CPUSE_TEST_OVS( ).

  IF LO_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.

    LO_CMP_USAGE->CREATE_COMPONENT( ).

  ENDIF.



  LO_INTERFACE = WD_THIS->WD_CPIFC_TEST_OVS( ).

  LO_INTERFACE = WD_THIS->WD_CPIFC_TEST_OVS( ).

  LR_CMDL = LO_INTERFACE->GET_MODEL( ).

  LR_CMDL->IF_SALV_WD_STD_FUNCTIONS~SET_PDF_ALLOWED( ABAP_FALSE ).

  LO_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_EXPORT_ALLOWED( ABAP_FALSE ).



  L_COLUMN_SETTINGS ?= LO_VALUE.

  LT_COLUMNS = L_COLUMN_SETTINGS->GET_COLUMNS( )  .





       LOOP AT LT_COLUMNS INTO LS_COLUMNS.

  CASE LS_COLUMNS-ID   .

      WHEN 'FIELD'.

        L_COLUMN_HEADER = LS_COLUMNS-R_COLUMN->GET_HEADER( )  .

        L_COLUMN_HEADER->SET_DDIC_BINDING_FIELD(

           IF_SALV_WD_C_COLUMN_SETTINGS=>DDIC_BIND_NONE )     .

        L_COLUMN_HEADER->SET_TEXT( 'Employee No' ). " column

        LS_COLUMNS-R_COLUMN->SET_WIDTH( '150' ).



      WHEN 'DATE1'.

        L_COLUMN_HEADER = LS_COLUMNS-R_COLUMN->GET_HEADER( )  .

        L_COLUMN_HEADER->SET_DDIC_BINDING_FIELD(

           IF_SALV_WD_C_COLUMN_SETTINGS=>DDIC_BIND_NONE )     .

        L_COLUMN_HEADER->SET_TEXT( 'Field' ). " column

        LS_COLUMNS-R_COLUMN->SET_WIDTH( '150' ).



    CALL METHOD LO_VALUE->IF_SALV_WD_FIELD_SETTINGS~GET_FIELD

           EXPORTING

             FIELDNAME = 'FIELD'

           RECEIVING

             VALUE     = LR_FIELD_AMNT.

        " Create aggregate rule as total

*    CALL METHOD LR_FIELD_AMNT->IF_SALV_WD_AGGR~CREATE_AGGR_RULE

*              EXPORTING

*                AGGREGATION_TYPE = IF_SALV_WD_C_AGGREGATION=>AGGRTYPE_TOTAL

*              RECEIVING

*                VALUE            = LR_AGGR_RULE.

*

CALL METHOD LR_FIELD_AMNT->IF_SALV_WD_SORT~CREATE_SORT_RULE

          EXPORTING

            SORT_ORDER        = IF_SALV_WD_C_SORT=>SORT_ORDER_ASCENDING

     GROUP_AGGREGATION = ABAP_TRUE

          RECEIVING

            VALUE             = LR_SORT_RULE.

      ENDCASE  .

  ENDLOOP.



prajyotp_demapure
Participant
0 Kudos

Thanks Meenachi,

The screen shot you provided thats what I exactly wanted.

I'm new to webdynpro not getting where exactly I have to write this code and what are the prerequisite for Display ALV using webdynpro.

Meenachi can you please provide me the details how should I proceed for the same to get output in screenshot attached.

I written this code in COMPONENTCONTROLLER -> WDDOINIT method.

I'm getting below error:

Web Dynpro Comp. / Intf. ZWD_TIME_AND_ATTENDANCE,Web Dynpro Component Controller COMPONENTCONTROLLER

Method WDDOINIT

Method "WD_CPUSE_TEST_OVS" is unknown or PROTECTED or PRIVATE.

same for

" WD_THIS->WD_CPIFC_TEST_OVS( )"

Thanks & Regards,

Prajyot.

Message was edited by: Prajyot P. Demapure

Former Member
0 Kudos

Hi prajyot,

Based on group Employee no you can able to display in ALV.

this is sample code..

try this..

DATA: l_ref_cmp_usage TYPE REF TO if_wd_component_usage.

  l_ref_cmp_usage =   wd_this->wd_cpuse_alv_first( ). " alv_first is the name of my alv component

  IF l_ref_cmp_usage->has_active_component( ) IS INITIAL.

    l_ref_cmp_usage->create_component( ).

  ENDIF.

DATA l_salv_wd_table TYPE REF TO iwci_salv_wd_table.

  l_salv_wd_table = wd_this->wd_cpifc_alv_first( ).

  DATA: lr_field TYPE REF TO cl_salv_wd_field.

  DATA lo_config_model TYPE REF TO cl_salv_wd_config_table.

  lo_config_model = l_salv_wd_table->get_model( ).

  lo_config_model->if_salv_wd_table_settings~set_multi_column_sort( value = abap_true ).

  lr_field = lo_config_model->if_salv_wd_field_settings~get_field( 'CONNID' ). "connid is the col name

  lr_field->if_salv_wd_sort~create_sort_rule( sort_order = if_salv_wd_c_sort=>sort_order_descending ).

  lr_field->if_salv_wd_sort~set_grouping_allowed( value = abap_true ).

Thanks & Regards,

Meena