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

Report

Former Member
0 Likes
570

Hi,

In my report, I want to separate employees..who had taken LTA and not taken LTA employees..

I take a condition for it..

IF TKN = 'X'.

SELECT M1PERNR M1ENDDA M1BEGDA M1BETRG M2ENAME M2Z_DESIGNATION INTO CORRESPONDING FIELDS OF TABLE ITAB FROM PA0015 AS M1 INNER JOIN PA0001 AS M2 ON M1PERNR = M2PERNR WHERE M1PERNR IN PERNR AND M1SUBTY EQ '4004' AND M2ENDDA EQ '99991231' AND M1BEGDA GE ENDDA-LOW AND M1~ENDDA LE ENDDA-HIGH .

IF SY-SUBRC <> 0 .

MESSAGE 'DATA NOT FOUND.' TYPE 'I' .

ELSE.

SORT ITAB BY PERNR ASCENDING.

DELETE ADJACENT DUPLICATES FROM ITAB COMPARING PERNR.

ENDIF.

ELSEIF NTKN = 'X'.

SELECT DISTINCT PERNR ENAME Z_DESIGNATION INTO CORRESPONDING FIELDS OF ITAB1 FROM PA0001 WHERE ENDDA EQ '99991231' AND PERSG = '1' AND PERNR NE ITAB-PERNR.

  • IF ITAB1-PERNR = ITAB-PERNR.

  • DELETE ITAB WHERE PERNR = ITAB-PERNR.

  • CLEAR ITAB1.

  • ELSE.

APPEND ITAB1.

*CLEAR ITAB.

  • ENDIF .

ENDSELECT.

ENDIF.

But not working, LTA Taken employess list is correct, but when i click on Not LTA taken employees, it shows the whole list of employees....but i want NOT TAKEN LTA employees list..

Plz tell...

6 REPLIES 6
Read only

former_member156446
Active Contributor
0 Likes
549

Hi..

SELECT DISTINCT PERNR ENAME Z_DESIGNATION 
INTO CORRESPONDING FIELDS OF ITAB1 
FROM PA0001 
WHERE ENDDA EQ '99991231' AND 
PERSG = '1' AND 
PERNR NE ITAB-PERNR.  "<<< ur not using for all entries here..you need to check this part..

Read only

0 Likes
549

Hi,

this line (PERNR NE ITAB-PERNR) has not effect on this code...problem is other.....

Read only

0 Likes
549

SELECT DISTINCT PERNR ENAME Z_DESIGNATION

INTO CORRESPONDING FIELDS OF ITAB1

FROM PA0001

WHERE ENDDA EQ '99991231' AND

PERSG eq '1' .

try this way... else looks gud to me..

Read only

0 Likes
549

Hi,

I do whole things...but not work...

Plz check my code and examine...

********************************

TABLES : PA0015, "HR Master Record: Infotype 0008 (Basic Pay)

PA0001 , "HR Master Record: Infotype 0001 (Org. Assignment)

PA0002 , "HR Master Record: Infotype 0002 (Personal Data)

T001P . "Personnel Area/Subarea

TYPE-POOLS : SLIS .

DATA : BEGIN OF ITAB OCCURS 0 ,

PERNR LIKE PA0001-PERNR , "Personel no.

ENAME LIKE PA0001-ENAME , "Employee name

Z_DESIGNATION LIKE PA0001-Z_DESIGNATION , "Designation

BEGDA LIKE PA0015-BEGDA , "LTA VALID DATE

ENDDA LIKE PA0015-ENDDA , " LTA VALID DATE

BETRG LIKE PA0015-BETRG , " LTA Amount

END OF ITAB .

DATA : BEGIN OF ITAB1 OCCURS 0 ,

PERNR LIKE PA0001-PERNR , "Personel no.

ENAME LIKE PA0001-ENAME , "Employee name

Z_DESIGNATION LIKE PA0001-Z_DESIGNATION , "Designation

END OF ITAB1 .

************************************************************************

DATA : W_CONTAINER TYPE SCRFNAME VALUE 'CL_GRID',

W_CPROG TYPE LVC_S_LAYO,

G_REPID LIKE SY-REPID,

W_SAVE TYPE C,

W_EXIT TYPE C,

CL_GRID TYPE REF TO CL_GUI_ALV_GRID,

CL_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

IT_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV,

WA_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE ,

LAYOUT TYPE SLIS_LAYOUT_ALV,

COL_POS LIKE SY-CUCOL ,

ALVFC TYPE SLIS_T_FIELDCAT_ALV.

************************************************************************

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .

SELECT-OPTIONS : PERNR FOR PA0001-PERNR .

SELECT-OPTIONS : ENDDA FOR PA0015-ENDDA . "OBLIGATORY.

SELECTION-SCREEN : END OF BLOCK B1 .

PARAMETER : TKN RADIOBUTTON GROUP A,

NTKN RADIOBUTTON GROUP A.

************************************************************************

IF TKN = 'X'.

PERFORM FILL_CATALOG1 USING:

'PERNR' 'ITAB' 'Personal No.',

'ENAME' 'ITAB' 'Emp Name',

'Z_DESIGNATION' 'ITAB' 'Designation',

'BEGDA' 'ITAB' 'Valid from',

'ENDDA' 'ITAB' 'End Date',

'BETRG' 'ITAB' 'Amount'.

ELSE.

PERFORM FILL_CATALOG1 USING:

'PERNR' 'ITAB1' 'Personal No.',

'ENAME' 'ITAB1' 'Emp Name',

'Z_DESIGNATION' 'ITAB1' 'Designation'.

ENDIF.

*************************************************************************************

IF TKN = 'X'.

SELECT M1PERNR M1ENDDA M1BEGDA M1BETRG M2ENAME M2Z_DESIGNATION INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM PA0015 AS M1 INNER JOIN PA0001 AS M2 ON M1PERNR = M2PERNR

WHERE M1PERNR IN PERNR AND M1SUBTY EQ '4004' AND M2~ENDDA EQ '99991231'

AND M1BEGDA GE ENDDA-LOW AND M1ENDDA LE ENDDA-HIGH .

IF SY-SUBRC <> 0 .

MESSAGE 'DATA NOT FOUND.' TYPE 'I' .

ELSE.

SORT ITAB BY PERNR ASCENDING.

DELETE ADJACENT DUPLICATES FROM ITAB COMPARING PERNR.

ENDIF.

ELSEIF NTKN = 'X'.

SELECT DISTINCT PERNR ENAME Z_DESIGNATION INTO CORRESPONDING FIELDS OF ITAB1

FROM PA0001

WHERE PERNR IN PERNR AND ENDDA EQ '99991231' AND PERSG = '1' .

  • THERE SHOULD BE ANY CONDITION FOR SEGREGATE LTA TAKEN AND LTA NOT TAKEN EMPLOYEES.

  • IF ITAB1-PERNR = ITAB-PERNR.

  • DELETE ITAB WHERE PERNR = ITAB-PERNR.

  • CLEAR ITAB1.

  • ELSE.

APPEND ITAB1.

*CLEAR ITAB.

  • ENDIF .

ENDSELECT.

*ENDLOOP.

ENDIF.

IF TKN = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZHR_LTA'

IS_LAYOUT = LAYOUT

IT_FIELDCAT = IT_FLD_CATALOG

I_DEFAULT = 'X'

I_SAVE = 'A'

TABLES

T_OUTTAB = ITAB

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.

********************

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZHR_LTA'

IS_LAYOUT = LAYOUT

IT_FIELDCAT = IT_FLD_CATALOG

I_DEFAULT = 'X'

I_SAVE = 'A'

TABLES

T_OUTTAB = ITAB1

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.

ENDIF.

*ENDFORM.

FORM FILL_CATALOG1 USING P_FIELDNAME TYPE ANY

P_REF_TABLE TYPE ANY

P_SCRTEXT TYPE ANY.

CLEAR : WA_FLD_CATALOG.

WA_FLD_CATALOG-FIELDNAME = P_FIELDNAME.

WA_FLD_CATALOG-TABNAME = P_REF_TABLE.

WA_FLD_CATALOG-SELTEXT_S = P_SCRTEXT.

WA_FLD_CATALOG-SELTEXT_M = P_SCRTEXT.

WA_FLD_CATALOG-SELTEXT_L = P_SCRTEXT.

APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.

ENDFORM. " fill_catalog1

********************************

Plz. tell soon....

Read only

Former Member
0 Likes
549

SELECT DISTINCT PERNR

This wil work

Read only

Former Member
0 Likes
549

Try this

1.check with this where condition AND PERSG = '1'

2.Use for all entries