‎2008 Jun 07 6:34 AM
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...
‎2008 Jun 07 6:59 AM
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..
‎2008 Jun 07 7:07 AM
Hi,
this line (PERNR NE ITAB-PERNR) has not effect on this code...problem is other.....
‎2008 Jun 07 7:10 AM
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..
‎2008 Jun 07 7:59 AM
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....
‎2008 Jun 07 7:12 AM
‎2008 Jun 07 7:21 AM
Try this
1.check with this where condition AND PERSG = '1'
2.Use for all entries