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

OO ALV help

Former Member
0 Likes
443

Hello everyone,

I have 3 issues regarding OO abap ALV.

1) I am unable to display text (shot text, medium text,long text) when i amdispalying the alv even though i populated the fieldcatalog for the same.

2)PF-status of my alv grid. I have sub-scrren underneeth iam calling grid (after entry into selection-screen). Its outputting standard status with all the buttons. I like to just out put my own buttons.

3) how to make only certain fileds editable for a row after selecting particular row and pressing the edit button.

I am pasting the code i have written. Suggest the changes please.

REPORT  zpp_lotsize_calc_temp.


*Tables
TABLES:   zpp_lotsize_calc .

DATA: ok_code LIKE sy-ucomm,
      save_ok LIKE sy-ucomm,
      g_container TYPE scrfname VALUE 'ZPP_LOTSIZE_CALC',
      g_grid  TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      gt_fieldcat TYPE lvc_t_fcat,
      gs_layout TYPE lvc_s_layo,
      g_max TYPE i VALUE 100.

DATA: gt_outtab TYPE TABLE OF zpp_lotsize_calc.

*DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: wa_fieldcat TYPE lvc_s_fcat,
fieldcatalog TYPE lvc_t_fcat.


SELECTION-SCREEN BEGIN OF SCREEN 0090 AS SUBSCREEN.
SELECT-OPTIONS : s_werks FOR zpp_lotsize_calc-werks,
                 s_matnr FOR zpp_lotsize_calc-matnr,
                 s_date FOR zpp_lotsize_calc-datef.
SELECTION-SCREEN END OF SCREEN 0090.

INITIALIZATION.
*  gd_repid = sy-repid.

  s_date-sign = 'I'.
  s_date-option = 'BT'.
  s_date-low = ''.
  s_date-high = sy-datum.
  APPEND s_date.
  CALL SCREEN 0900.


*&---------------------------------------------------------------------*
*&      Module  STATUS_0900  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0900 OUTPUT.
  SET PF-STATUS 'ZMADHU'.
*  SET TITLEBAR 'xxx'.
  CASE sy-ucomm.
    WHEN 'BACK' OR
         'EXIT' OR
         'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " STATUS_0900  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  user_command_0900  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0900 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK' OR
         'EXIT' OR
         'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.


  IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
      EXPORTING
        container_name              = g_container.

    CREATE OBJECT g_grid
      EXPORTING
        i_parent          = g_custom_container.
    gs_layout-edit = 'X'.

    SELECT * FROM zpp_lotsize_calc INTO  TABLE gt_outtab
                                             WHERE werks IN s_werks AND
                                                   matnr IN s_matnr AND
                                                   datef IN s_date.
    PERFORM build_fieldcatalog.
    CALL METHOD g_grid->set_table_for_first_display
      EXPORTING
*    is_variant                    =
*    i_save                        =
    i_default                     = 'X'
    is_layout                     = gs_layout
*    is_print                      =
*    it_special_groups             =
*    it_toolbar_excluding          = GT_TOOLBAR
      CHANGING
        it_outtab                     = gt_outtab
        it_fieldcatalog               = fieldcatalog.
*§2.Use SET_READY_FOR_INPUT to allow editing initially.
*   (state "editable and ready for input").
    CALL METHOD g_grid->set_ready_for_input
      EXPORTING
        i_ready_for_input = 1.
  ENDIF.

ENDMODULE.                 " user_command_0900  INPUT
*&---------------------------------------------------------------------*
*&      Form  build_fieldcatalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .

*  werks
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'WERKS'.
  wa_fieldcat-seltext   = 'PLANT'.
  wa_fieldcat-col_pos     = 0.
  wa_fieldcat-outputlen   = 6.
*  wa_fieldcat-key         = 'X'.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.
*MATNR
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'MATNR'.
  wa_fieldcat-seltext   = 'Material'.
  wa_fieldcat-col_pos     = 1.
*  wa_fieldcat-key         = 'X'.

  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

*DATEF
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'DATEF'.
  wa_fieldcat-seltext   = 'Date Valid From'.
  wa_fieldcat-col_pos     = 2.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

*DATBT
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'DATBT'.
  wa_fieldcat-seltext   = 'Date Valid To'.
  wa_fieldcat-col_pos     = 3.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.
*AUFNR
  wa_fieldcat-tabname     = 'ZSD_SET_INV'.
  wa_fieldcat-fieldname   = 'AUFNR'.
  wa_fieldcat-seltext   = 'Order number'.
  wa_fieldcat-col_pos     = 4.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.
*ERFMG
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'ERFMG'.
  wa_fieldcat-seltext   = 'Quantity in unit of entry'.
  wa_fieldcat-col_pos     = 5.
*  wa_fieldcat-edit        = 'X'.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

*VRKME
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'MEINS'.
  wa_fieldcat-seltext   = 'Base Unit of Measure'.
  wa_fieldcat-col_pos     = 6.
*  fieldcatalog-edit        = 'X'.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

ENDFORM.                    " build_fieldcatalog

Hello everyone,

I have 3 issues regarding OO abap ALV.

1) I am unable to display text (shot text, medium text,long text) when i amdispalying the alv even though i populated the fieldcatalog for the same.

2)PF-status of my alv grid. I have sub-scrren underneeth iam calling grid (after entry into selection-screen). Its outputting standard status with all the buttons. I like to just out put my own buttons.

3) how to make only certain fileds editable for a row after selecting particular row and pressing the edit button.

I am pasting the code i have written. Suggest the changes please.

REPORT  zpp_lotsize_calc_temp.


*Tables
TABLES:   zpp_lotsize_calc .

DATA: ok_code LIKE sy-ucomm,
      save_ok LIKE sy-ucomm,
      g_container TYPE scrfname VALUE 'ZPP_LOTSIZE_CALC',
      g_grid  TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      gt_fieldcat TYPE lvc_t_fcat,
      gs_layout TYPE lvc_s_layo,
      g_max TYPE i VALUE 100.

DATA: gt_outtab TYPE TABLE OF zpp_lotsize_calc.

*DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: wa_fieldcat TYPE lvc_s_fcat,
fieldcatalog TYPE lvc_t_fcat.


SELECTION-SCREEN BEGIN OF SCREEN 0090 AS SUBSCREEN.
SELECT-OPTIONS : s_werks FOR zpp_lotsize_calc-werks,
                 s_matnr FOR zpp_lotsize_calc-matnr,
                 s_date FOR zpp_lotsize_calc-datef.
SELECTION-SCREEN END OF SCREEN 0090.

INITIALIZATION.
*  gd_repid = sy-repid.

  s_date-sign = 'I'.
  s_date-option = 'BT'.
  s_date-low = ''.
  s_date-high = sy-datum.
  APPEND s_date.
  CALL SCREEN 0900.


*&---------------------------------------------------------------------*
*&      Module  STATUS_0900  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0900 OUTPUT.
  SET PF-STATUS 'ZMADHU'.
*  SET TITLEBAR 'xxx'.
  CASE sy-ucomm.
    WHEN 'BACK' OR
         'EXIT' OR
         'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " STATUS_0900  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  user_command_0900  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0900 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK' OR
         'EXIT' OR
         'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.


  IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
      EXPORTING
        container_name              = g_container.

    CREATE OBJECT g_grid
      EXPORTING
        i_parent          = g_custom_container.
    gs_layout-edit = 'X'.

    SELECT * FROM zpp_lotsize_calc INTO  TABLE gt_outtab
                                             WHERE werks IN s_werks AND
                                                   matnr IN s_matnr AND
                                                   datef IN s_date.
    PERFORM build_fieldcatalog.
    CALL METHOD g_grid->set_table_for_first_display
      EXPORTING
*    is_variant                    =
*    i_save                        =
    i_default                     = 'X'
    is_layout                     = gs_layout
*    is_print                      =
*    it_special_groups             =
*    it_toolbar_excluding          = GT_TOOLBAR
      CHANGING
        it_outtab                     = gt_outtab
        it_fieldcatalog               = fieldcatalog.
*§2.Use SET_READY_FOR_INPUT to allow editing initially.
*   (state "editable and ready for input").
    CALL METHOD g_grid->set_ready_for_input
      EXPORTING
        i_ready_for_input = 1.
  ENDIF.

ENDMODULE.                 " user_command_0900  INPUT
*&---------------------------------------------------------------------*
*&      Form  build_fieldcatalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .

*  werks
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'WERKS'.
  wa_fieldcat-seltext   = 'PLANT'.
  wa_fieldcat-col_pos     = 0.
  wa_fieldcat-outputlen   = 6.
*  wa_fieldcat-key         = 'X'.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.
*MATNR
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'MATNR'.
  wa_fieldcat-seltext   = 'Material'.
  wa_fieldcat-col_pos     = 1.
*  wa_fieldcat-key         = 'X'.

  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

*DATEF
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'DATEF'.
  wa_fieldcat-seltext   = 'Date Valid From'.
  wa_fieldcat-col_pos     = 2.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

*DATBT
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'DATBT'.
  wa_fieldcat-seltext   = 'Date Valid To'.
  wa_fieldcat-col_pos     = 3.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.
*AUFNR
  wa_fieldcat-tabname     = 'ZSD_SET_INV'.
  wa_fieldcat-fieldname   = 'AUFNR'.
  wa_fieldcat-seltext   = 'Order number'.
  wa_fieldcat-col_pos     = 4.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.
*ERFMG
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'ERFMG'.
  wa_fieldcat-seltext   = 'Quantity in unit of entry'.
  wa_fieldcat-col_pos     = 5.
*  wa_fieldcat-edit        = 'X'.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

*VRKME
  wa_fieldcat-tabname     = 'ZPP_LOTSIZE_CALC'.
  wa_fieldcat-fieldname   = 'MEINS'.
  wa_fieldcat-seltext   = 'Base Unit of Measure'.
  wa_fieldcat-col_pos     = 6.
*  fieldcatalog-edit        = 'X'.
  APPEND wa_fieldcat TO fieldcatalog.
  CLEAR  wa_fieldcat.

ENDFORM.                    " build_fieldcatalog

2 REPLIES 2
Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
410

Hi,

Please check the program BCALV_EDIT_02 in the package SLIS,

you can make the cell level editing using the following constants;

CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.

Regards,

Sesh

Read only

0 Likes
410

Thanks Sai,

what about the column txt. How do i get that?

Regards