Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9041

Re: displaying long text in alv report

$
0
0

Hi Vinay,

 

Try  Word Wrap Functionality in ALV.

*&---------------------------------------------------------------------

*& Report ZTEST_WRAP

*&---------------------------------------------------------------------

*& Wrap the column into multiple lines incase Column width is less

*&---------------------------------------------------------------------

REPORT ZTEST_WRAP.

TYPE-POOLS: SLIS.

TYPES: BEGIN OF TY_DATA,

        EMP       TYPE CHAR10,

        EMP_NAME  TYPE CHAR100,

        EMP_NAME1 TYPE CHAR20,

       END OF TY_DATA.

TYPES: BEGIN OF TY_WRD,

         EMP TYPE CHAR20,

       END OF TY_WRD.

CONSTANTS: C_LEN TYPE I VALUE 100.

DATA: REPORT_ID LIKE SY-REPID,

      IT_SENTENCE TYPE TABLE OF TY_WRD,

      WA_WORD TYPE TY_WRD,

      V_REPID TYPE SYST-REPID,

      V_TABIX TYPE SYST-TABIX.

DATA: WS_TITLE TYPE LVC_TITLE VALUE 'An ALV Report'.

DATA: IT_EVT TYPE SLIS_T_EVENT,

      IT_FLD TYPE SLIS_T_FIELDCAT_ALV,

      WA_FLD TYPE SLIS_FIELDCAT_ALV,

      WA_EVT TYPE SLIS_ALV_EVENT,

      WA_LAY TYPE SLIS_LAYOUT_ALV.

DATA: WATAB TYPE TY_DATA,

      I_DATA TYPE STANDARD TABLE OF TY_DATA,

      COUNT TYPE I VALUE 0.

* Number of records

DO 4 TIMES.

  COUNT = COUNT + 1.

  CASE COUNT.

    WHEN 1.

      WATAB-EMP = '10'.

      WATAB-EMP_NAME = 'Purpose of this tutorial is to provide an easy 

                        and quick reference which may be used as a            

                        guide'.

      APPEND WATAB TO I_DATA.

      CLEAR WATAB.

    WHEN 2.

      WATAB-EMP = '20'.

      WATAB-EMP_NAME = 'Coding is done for ALV List Display'.

      APPEND WATAB TO I_DATA.

      CLEAR WATAB.

    WHEN 3.

      WATAB-EMP = '30'.

      WATAB-EMP_NAME = 'Same functionality can be implemented for ALV

                        Grid Display also'.

      APPEND WATAB TO I_DATA.

      CLEAR WATAB.

  ENDCASE.

ENDDO.

REPORT_ID = SY-REPID.

CLEAR WA_FLD.

  WA_FLD-FIELDNAME = 'EMP'.

  WA_FLD-REF_TABNAME = 'I_DATA'.

  WA_FLD-SELTEXT_L = 'EMP. ID'.

  WA_FLD-REF_FIELDNAME = 'EMP'.

  APPEND WA_FLD TO IT_FLD.

  CLEAR WA_FLD.

  WA_FLD-FIELDNAME = 'EMP_NAME1'.

  WA_FLD-INTTYPE = 'CHAR'.

  WA_FLD-OUTPUTLEN = 20.

  WA_FLD-INTLEN = 20.

  WA_FLD-SELTEXT_L = 'EMP. NAME'.

  WA_FLD-DDICTXT = 'L'.

  APPEND WA_FLD TO IT_FLD.

* Word Wrap the text in multiple lines

LOOP AT I_DATA INTO WATAB.

  V_TABIX = SY-TABIX.

  CLEAR: IT_SENTENCE [].

  CALL FUNCTION 'RKD_WORD_WRAP'

   EXPORTING

     TEXTLINE                  = WATAB-EMP_NAME

     OUTPUTLEN                 = C_LEN

   TABLES

     OUT_LINES                 = IT_SENTENCE

   EXCEPTIONS

     OUTPUTLEN_TOO_LARGE       = 1

     OTHERS                    = 2

            .

  IF SY-SUBRC eq 0.

    IF NOT IT_SENTENCE IS INITIAL.

      READ TABLE IT_SENTENCE INTO WA_WORD INDEX 1.

        WATAB-EMP_NAME1 = WA_WORD-EMP.

        MODIFY I_DATA FROM WATAB INDEX V_TABIX.

    ENDIF.

  ENDIF.

ENDLOOP.

* Get event. We will handle BEFORE and AFTER line output

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  IMPORTING

    ET_EVENTS = IT_EVT.

READ TABLE IT_EVT INTO WA_EVT WITH KEY NAME = SLIS_EV_AFTER_LINE_OUTPUT.

WA_EVT-FORM = SLIS_EV_AFTER_LINE_OUTPUT.

MODIFY IT_EVT FROM WA_EVT INDEX SY-TABIX.

WA_LAY-EDIT = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  EXPORTING

    I_CALLBACK_PROGRAM = REPORT_ID

    IS_LAYOUT          = WA_LAY

    IT_FIELDCAT        = IT_FLD

    IT_EVENTS          = IT_EVT

  TABLES

    T_OUTTAB           = I_DATA

  EXCEPTIONS

    PROGRAM_ERROR      = 1

    OTHERS             = 2.

IF SY-SUBRC <> 0.

* Exceptions will be handled as per requirement

ENDIF.

*---------------------------------------------------------------------*

* FORM AFTER_LINE_OUTPUT                                              *

*---------------------------------------------------------------------*

FORM AFTER_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO.

  CLEAR: IT_SENTENCE, WATAB.

  READ TABLE I_DATA INTO WATAB INDEX RS_LINEINFO-TABINDEX.

  CHECK SY-SUBRC = 0.

  CALL FUNCTION 'RKD_WORD_WRAP'

    EXPORTING

      TEXTLINE = WATAB-EMP_NAME

      OUTPUTLEN = C_LEN

    TABLES

      OUT_LINES = IT_SENTENCE.

  DESCRIBE TABLE IT_SENTENCE LINES V_TABIX.

  CHECK V_TABIX > 1.

  LOOP AT IT_SENTENCE INTO WA_WORD FROM 2.

    WRITE: / SY-VLINE,

    12 SY-VLINE,

    13 WA_WORD-EMP,

    33 SY-VLINE.

  ENDLOOP.

ENDFORM. "after_line_output

 

 

Hope it helpful.

 

Regards,

Venkat.

 

 




Viewing all articles
Browse latest Browse all 9041

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>