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

WRAP ALV HEADER.

0 Likes
619

Hi,

I need help to write a code to wrap the ALV header having long text in multiple lines.

I have been searching on forums to find a solution to fix this issue, but still not able to.

Can you please help me out here by guiding me about steps to solve this issue?

2 REPLIES 2
Read only

Former Member
0 Likes
569

what ALV are you using?

Are you using the OO Version?

Read only

0 Likes
569

Hi Markus,

Following is the code, please have a look on my code and help me to come out from this issue.

*&---------------------------------------------------------------------*
*& Report  ZHR_EMP_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZHR_EMP_REPORT.


TABLES: pernr.
INFOTYPES: 0000, 0001, 0002, 0008, 0022,0041, 9007,0167, 0105.
TYPE-POOLS: slis.

* Type Declarations
TYPES: BEGIN OF TY_output,
sno
(6) TYPE n,
werks
TYPE string,
btrtl
TYPE string,
persk
TYPE pktxt,
pernr
TYPE persno,
ENAME
TYPE P0001-ENAME,        " NAME
ptext
TYPE btext,
NAME1
type T500P-NAME1,
BTEXT
TYPE T001P-BTEXT,
ZZ_DESIGTEXT
TYPE ZHRTR_DESIG, " Designation
GSBER
type P0001-GSBER,        " Bussiness Area
GTEXT
TYPE TGSBT-GTEXT,         " Bussiness Area TEXT
GBDAT
TYPE P0002-GBDAT,        "Date of Birth
ANSVH
type P0001-ANSVH,        " Stream
ATX
TYPE T542T-ATX,            " Stream TEXT
Start_date
type P0022-BEGDA,
End_date
type P0022-ENDDA,
mobile
type p0105-usrid,       "Communication ID/Number
EMAIL
TYPE STRING,             " Email ID
EMP_GRP
TYPE STRING,           " employee group
EMP_GENDER
TYPE STRING,
END OF ty_output.


* Internal Table Declarations

DATA: it_output TYPE TABLE OF ty_output,
it_fieldcat
TYPE slis_t_fieldcat_alv,
it_layout
TYPE slis_layout_alv,
*      IT_CADRE TYPE TABLE OF ZHRTR_CADRE,
IT_DESIG
TYPE TABLE OF ZHRTR_DESIG,
IT_T503T
TYPE TABLE OF T503T,
IT_T001P
TYPE TABLE OF T001P,
IT_T500P
TYPE TABLE OF T500P,
IT_P0022
TYPE TABLE OF P0022 .


* Work Area Declarations

DATA: wa_output TYPE ty_output,
wa_fieldcat
TYPE slis_fieldcat_alv,
*      WA_CADRE TYPE zhrtr_cadre,
WA_DESIG
TYPE ZHRTR_DESIG,
WA_T503T
TYPE  T503T,
WA_T001P
TYPE  T001P,
WA_T500P
TYPE  T500P,
WA_P0105
type P0105,
WA_P0022
TYPE P0022,
SNO
(6) TYPE n .

* Instantiate the used component
DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.

* Selection Screen.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: r1 RADIOBUTTON GROUP gr1 DEFAULT 'X' USER-COMMAND flg.
SELECTION-SCREEN COMMENT 10(3) text-002 FOR FIELD r1.
PARAMETERS: r2 RADIOBUTTON GROUP gr1 .
SELECTION-SCREEN COMMENT 20(6) text-003 FOR FIELD r2.
PARAMETERS: r3 RADIOBUTTON GROUP gr1  .
SELECTION-SCREEN COMMENT 30(4) text-004 FOR FIELD r3.
PARAMETERS: r4 RADIOBUTTON GROUP gr1  .
SELECTION-SCREEN COMMENT 40(5) text-007 FOR FIELD r4.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b1.

SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-015.
SELECT-OPTIONS: s_date FOR sy-datum NO-EXTENSION NO INTERVALS OBLIGATORY. ".
SELECTION-SCREEN: END OF BLOCK b2"Selection Screen.




Initialization.



At selection-screen.

PERFORM check.

START-OF-SELECTION.


pn
-begda = '18000101'.
pn
-endda = s_date-low.           "s_date-high.


* TO GET THE DESIGNATION TEXT
SELECT * FROM ZHRTR_DESIG INTO TABLE IT_DESIG.
* SELECT TO GET EMPLOYEE SUBGROUP
select * from t503t into table IT_T503T where sprsl = sy-langu.
* SELECT TO GET PA (CIRCLE) CODE
SELECT * FROM T500P into table IT_T500P WHERE molga = '40'.
* SELECT TO GET PSA(SSA) CODE
SELECT * from t001p INTO TABLE IT_T001P where molga = '40'.


GET PERNR.

IF  r2 = 'X'.
if  PNPWERKS IS INITIAL.
Exit.
endif.
ELSEIF r1 = 'X' and PNPWERKS IS INITIAL and PNPBTRTL IS INITIAL.
Exit.
elseif r1 = 'X' and PNPWERKS IS not INITIAL and PNPBTRTL IS INITIAL.
exit.
elseif r4 = 'X' .
if  PNPpernr IS INITIAL.
Exit.
endif.

ENDIF.



RP
-PROVIDE-FROM-LAST P0000 SPACE PN-BEGDA PN-ENDDA.
"CHECK P0000-STAT2 for active employees
IF pnp-sw-found EQ 1.
" If to include the employees in active list whose separation was run in advance

IF P0000-BEGDA > SY-DATUM AND p0000-MASSN eq 'ZC'.                " Change Ist: replace P0000-ENDDA > SY-DATUM with p0000-MASSN eq'Zc'..
CHECK P0000-STAT2 EQ '0'.   " EMPLOYEE IS STILL ACTIVE
ELSEIF P0000-ENDDA < SY-DATUM AND p0000-MASSN eq 'ZC'.             " Change 2nd: adding P0000-MASSN eq'Zc'..
REJECT.
ELSE.
CHECK p0000-STAT2 EQ '3'. " CHECK THE ACTIVE STATUS
ENDIF.

RP
-PROVIDE-FROM-LAST P0001 SPACE PN-BEGDA PN-ENDDA.
if p0000-MASSN ne 'ZF'.                                                  " Change 3rd: if added for including Deputation employees
CHECK P0001-ABKRS NE '99'.     " CHECK TO EXCLUDE THE DUMMY ENTRIES.
endif.
CHECK P0001-WERKS IN PNPWERKS. "CHECK Personnel Area
CHECK P0001-BTRTL IN PNPBTRTL. "CHECK Personnel Subarea
CHECK P0001-PERSG IN PNPPERSG. "CHECK EMPLOYEE GROUP
CHECK P0001-PERSK IN PNPPERSK. "CHECK EMPLOYEE SUBGROUP.

* TO GET THE DESIGNATION TEXT
" SELECT * FROM ZHRTR_DESIG INTO TABLE IT_DESIG.
READ TABLE IT_DESIG INTO WA_DESIG WITH KEY ZZ_DESIG = P0001-ZZ_DESIG.
IF SY-SUBRC EQ 0.
WA_OUTPUT
-ZZ_DESIGTEXT WA_DESIG-ZZ_DESIGTEXT.
ENDIF.
MOVE: P0000-PERNR to WA_OUTPUT-PERNR.
MOVE: P0001-ENAME TO WA_OUTPUT-ENAME.
MOVE: P0002-GBDAT TO WA_OUTPUT-GBDAT.

* SELECT TO GET EMPLOYEE SUBGROUP
Read table IT_T503T into WA_T503T with key persk = p0001-PERSK.
IF SY-SUBRC EQ 0.
MOVE: WA_T503T-PTEXT TO WA_OUTPUT-PTEXT.
ENDIF.


* SELECT TO GET PA (CIRCLE) CODE
Read table IT_T500P into WA_T500P with key PERSA = P0001-WERKS.   " WERKS = PA CODE (CIRCLE)
IF SY-SUBRC EQ 0.
MOVE: WA_T500P-NAME1 TO WA_OUTPUT-NAME1.
ENDIF.

* SELECT TO GET PSA(SSA) CODE

   Read table IT_T001P into WA_T001P with key btrtl = p0001-btrtl.
IF SY-SUBRC EQ 0.
MOVE: WA_T001P-BTEXT TO WA_OUTPUT-BTEXT.
ENDIF.

*     IF TO GET GENDER TEXT
IF P0002-GESCH EQ '1'.
WA_OUTPUT
-EMP_GENDER = 'MALE'.
ELSEIF P0002-GESCH EQ '2'.
WA_OUTPUT
-EMP_GENDER = 'FEMALE'.
ENDIF.

*    IF TO GET  EMPLOYEE GROUP TEXT

IF P0001-PERSG EQ '1'.
WA_OUTPUT
-EMP_GRP = 'Unabsorbed'.
ELSEIF P0001-PERSG EQ '2'.
WA_OUTPUT
-EMP_GRP = 'Absorbed'.
ELSEIF P0001-PERSG EQ '3'.
WA_OUTPUT
-EMP_GRP = 'Deputaion In'.
ELSEIF P0001-PERSG EQ '4'.
WA_OUTPUT
-EMP_GRP = 'Direct Recruitee'.
ENDIF.


* TO GET THE MOBILE NO AND EMAIL ID..

LOOP AT P0105 INTO WA_P0105 .
IF WA_P0105-USRTY = '0002' AND WA_P0105-ENDDA > SY-DATUM.
WA_OUTPUT
-MOBILE = WA_P0105-USRID.
ELSEIF P0105-USRTY = '0010' AND WA_P0105-ENDDA > SY-DATUM.
WA_OUTPUT
-EMAIL = WA_P0105-USRID_LONG.
ENDIF.
ENDLOOP.







SNO
SNO + 1.
WA_OUTPUT
-SNO = SNO.

if wa_outPUT is not initial.
APPEND WA_OUTPUT TO IT_OUTPUT.
CLEAR: WA_OUTPUT,
WA_T503T
,
WA_T500P
,
WA_DESIG
.
endif.
ENDIF.

END-OF-SELECTION.


IF IT_OUTPUT IS INITIAL.

MESSAGE 'No Data Found for the Selection Criteria' TYPE 'I'.

ELSE.

    PERFORM build_catalog.
PERFORM display.

ENDIF.





*&---------------------------------------------------------------------*
*&      Form  BUILD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_catalog .
REFRESH it_fieldcat.
PERFORM build_cat1 USING '1' 'SNO'          'IT_OUTPUT'  text-006.
PERFORM build_cat1 USING '2' 'ENAME'        'IT_OUTPUT'  text-008.
PERFORM build_cat1 USING '3' 'ZZ_DESIGTEXT' 'IT_OUTPUT'  text-010.
PERFORM build_cat1 USING '4' ''             'IT_OUTPUT'  text-010.     "grade
PERFORM build_cat1 USING '5' 'ZZ_DESIGTEXT' 'IT_OUTPUT'  text-010.   "PAYSCALE
PERFORM build_cat1 USING '6' 'GBDAT'        'IT_OUTPUT'  text-016.
PERFORM build_cat1 USING '7' ''             'IT_OUTPUT'  text-017.              "Date of positing in present circle
PERFORM build_cat1 USING '8' 'EMP_GRP'      'IT_OUTPUT'  text-014.   "absorbed  Y/N
PERFORM build_cat1 USING '9' 'PERNR'        'IT_OUTPUT'  text-007.
PERFORM build_cat1 USING '10' ''            'IT_OUTPUT'  text-018.   "Ending date currency of minor Punishment falling in last 5 years or minor penalty Imposed in last 3 years.
PERFORM build_cat1 USING '11' ''            'IT_OUTPUT'  text-019.   "Ending date of currency of major punishment falling in last 5 years or majorpenalty Imposed in last 5 years.
PERFORM build_cat1 USING '12' ''            'IT_OUTPUT'  text-020.   "Any disciplinary case contemplated/pending as per records.
PERFORM build_cat1 USING '13' ''            'IT_OUTPUT'  text-021.   "Any Complaint under investigation as per records. if yes (date of receipt of complaint).
PERFORM build_cat1 USING '14' ''            'IT_OUTPUT'  text-022.   "VC may be Granted/Withheld.
PERFORM build_cat1 USING '15' ''            'IT_OUTPUT'  text-023.   "Whether APR Submitted for the previous year ending on 31st December,



PERFORM build_cat1 USING '16' 'NAME1'        'IT_OUTPUT'  text-003.   "circle
PERFORM build_cat1 USING '17' 'BTEXT'        'IT_OUTPUT'  text-002.   "ssa
PERFORM build_cat1 USING '18' 'PTEXT'        'IT_OUTPUT'  text-009.   "emp subgrp
PERFORM build_cat1 USING '19' 'EMP_GENDER' 'IT_OUTPUT'  text-011.     "gender
PERFORM build_cat1 USING '20' 'MOBILE' 'IT_OUTPUT'  text-012.         " contact no.


it_layout
-colwidth_optimize = 'X'.
ENDFORM.                    "build_catalog



*&---------------------------------------------------------------------*
*&      Form  display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program      
= sy-repid
is_layout               
= it_layout
i_callback_pf_status_set
= 'PF_STATUS'
it_fieldcat             
= it_fieldcat
*      i_callback_user_command  = 'USER_COMMAND'
*      i_callback_top_of_page   = 'TOP_OF_PAGE'
i_default         
= 'X'
i_save            
= 'A'
*      is_variant         = lv_tmplt
*      I_GRID_TITLE       = LV_GRID_TITLE
TABLES
t_outtab                
= it_output
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




*&---------------------------------------------------------------------*
*&      Form  BUILD_CAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0572   text
*      -->P_0573   text
*      -->P_0574   text
*      -->P_TEXT_001  text
*----------------------------------------------------------------------*
FORM build_cat1  USING    value(p_0572)
value(p_0573)
value(p_0574)
p_text_001
.
wa_fieldcat
-col_pos = p_0572.
wa_fieldcat
-fieldname = p_0573.
wa_fieldcat
-tabname = p_0574.
wa_fieldcat
-seltext_l = p_text_001.
*  " wa_fieldcat-do_sum    = 'X'.
*  IF p_0573 = 'PERNR'.
*    wa_fieldcat-hotspot   =  'X'.
*  ENDIF.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR: wa_fieldcat.
ENDFORM.                    " BUILD_CAT



*&---------------------------------------------------------------------*
*&      Form  pf_status
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RT_EXTAB   text
*----------------------------------------------------------------------*
FORM pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD1'.

ENDFORM.                    "pf_status