11-23-2007 10:06 AM
Hello!
How can I sum up in 'REUSE_ALV_DISPLAY_LIST' CHARS or STRINGS? I need to know how many entries I have in the table.
Thank you!
11-23-2007 10:10 AM
HI
see this report you can know very easily
**************DATA TYPES DECLARATION **********************
TABLES: HRP1001, HRP1026, HRP1000,PCHDY.
TYPE-POOLS SLIS.
TYPES :BEGIN OF ST_OUTPUT,
COUNT TYPE STRING,
OBJID TYPE HRP1001-OBJID,
STEXT TYPE HRP1000-STEXT,
BEGDA TYPE HRP1000-BEGDA,
ENDDA TYPE HRP1000-ENDDA,
CANCRT TYPE T77CRT-CANCRT,
AEDTM TYPE HRP1026-AEDTM,
UNAME TYPE HRP1026-UNAME,
LSTEXT TYPE HRP1000-STEXT,
RINVT TYPE T777V-RINVT,
END OF ST_OUTPUT.
TYPES: BEGIN OF ST_HRP1000,
OBJID TYPE HRP1001-OBJID,
STEXT TYPE HRP1000-STEXT,
END OF ST_HRP1000.
TYPES : BEGIN OF ST_HRP1001,
OTYPE TYPE HRP1001-OTYPE,
OBJID TYPE HRP1001-OBJID,
RELAT type hrp1001-RELAT,
BEGDA TYPE HRP1001-BEGDA,
ENDDA TYPE HRP1001-ENDDA,
SCLAS TYPE HRP1001-SCLAS,
SOBID TYPE HRP1001-SOBID,
END OF ST_HRP1001.
TYPES : BEGIN OF ST_HRP1026,
OTYPE TYPE HRP1026-OTYPE,
OBJID TYPE HRP1001-OBJID,
AEDTM TYPE HRP1026-AEDTM,
UNAME TYPE HRP1026-UNAME,
DELET TYPE HRP1026-DELET,
CANCR TYPE HRP1026-CANCR,
END OF ST_HRP1026.
TYPES : BEGIN OF ST_REASON,
CANCR TYPE HRP1026-CANCR,
CANCRT TYPE T77CRT-CANCRT,
END OF ST_REASON.
TYPES : BEGIN OF ST_SOBID,
OTYPE TYPE HRP1001-OTYPE,
OBJID TYPE HRP1001-OBJID,
RELAT type hrp1001-OBJID,
BEGDA TYPE HRP1001-BEGDA,
ENDDA TYPE HRP1001-ENDDA,
SCLAS TYPE HRP1001-SCLAS,
SOBID TYPE HRP1001-OBJID,
END OF ST_SOBID.
TYPES : BEGIN OF ST_OBJID,
OBJID TYPE HRP1001-OBJID,
END OF ST_OBJID.
TYPES : BEGIN OF ST_LOCATION,
OTYPE TYPE HRP1001-OTYPE,
OBJID TYPE HRP1001-OBJID,
RSIGN TYPE HRP1001-RSIGN,
RELAT TYPE HRP1001-RELAT,
SCLAS TYPE HRP1001-SCLAS,
SOBID TYPE HRP1001-SOBID,
END OF ST_LOCATION.
TYPES : BEGIN OF ST_LOCATION1,
OTYPE TYPE HRP1001-OTYPE,
OBJID TYPE HRP1001-OBJID,
RSIGN TYPE HRP1001-RSIGN,
RELAT TYPE HRP1001-RELAT,
SCLAS TYPE HRP1001-SCLAS,
SOBID TYPE HRP1001-OBJID,
END OF ST_LOCATION1.
TYPES : BEGIN OF ST_LSTEXT,
OTYPE TYPE HRP1000-OTYPE,
OBJID TYPE HRP1000-OBJID,
LSTEXT TYPE HRP1000-STEXT,
END OF ST_LSTEXT.
TYPES : BEGIN OF ST_OBJID_SH,
OTYPE TYPE HRP1000-OTYPE,
OBJID TYPE HRP1000-OBJID,
END OF ST_OBJID_SH.
DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.
DATA : WA_OBJID_SH TYPE ST_OBJID_SH.
DATA : IT_LSTEXT TYPE STANDARD TABLE OF ST_LSTEXT. "TOS STORE THE TEXT OF COURCE LOCATION
DATA : WA_LSTEXT TYPE ST_LSTEXT.
DATA : IT_LOCATION TYPE STANDARD TABLE OF ST_LOCATION. " TO STORE THE LOCATION OF COURCE
DATA : WA_LOCATION TYPE ST_LOCATION.
DATA : IT_LOCATION1 TYPE STANDARD TABLE OF ST_LOCATION1. " TO CONVERT SOBID INTO OBJID FOR COURCE LOCATION
DATA : WA_LOCATION1 TYPE ST_LOCATION1.
DATA : IT_SOBID TYPE STANDARD TABLE OF ST_SOBID. " TO CHANGE THE SOBID OF HRP1001 TO OBJID OF HRP1026
DATA : WA_SOBID TYPE ST_SOBID. " BY USING FOR ALL ENTRIES
DATA : IT_REASON TYPE STANDARD TABLE OF ST_REASON. "TO STORE T HE REASON FOR CANCELL TEXT
DATA : WA_REASON TYPE ST_REASON.
DATA : IT_OUTPUT TYPE STANDARD TABLE OF ST_OUTPUT. "OUTPUT FEILDS OF REPORT.
DATA : WA_OUTPUT TYPE ST_OUTPUT.
DATA : IT_OUTPUT_1 TYPE STANDARD TABLE OF ST_OUTPUT. " TEMP OUTPUT FEILDS OF REPORT.
DATA : WA_OUTPUT_1 TYPE ST_OUTPUT.
DATA : IT_HRP1000 TYPE STANDARD TABLE OF ST_HRP1000. "DATA FROM HRP1000 TABLE
DATA : WA_HRP1000 TYPE ST_HRP1000.
DATA : IT_HRP1001 TYPE STANDARD TABLE OF ST_HRP1001. "DATA FROM HRP1001 TABLE
DATA : WA_HRP1001 TYPE ST_HRP1001.
DATA : IT_HRP1026 TYPE STANDARD TABLE OF ST_HRP1026. "DATA FROM HRP1026 TABLE
DATA : WA_HRP1026 TYPE ST_HRP1026.
DATA : IT_OBJID TYPE STANDARD TABLE OF ST_OBJID. " TO STORE THE OBJID OF HRP1001
DATA : WA_OBJID TYPE ST_OBJID.
DATA: WS_FCAT TYPE SLIS_FIELDCAT_ALV . " FEILDCATALOG FOR ALV REPORT
DATA: IN_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: W_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA : LV_COUNT TYPE I. "FEILD FOR SERIAL NUMBER
***************************END OF DATA DECLARATION******************************************
***********SELECTION SCREEN DESIGN***********************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
*SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .
SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .
SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
**********END OF SELECTION SCREEN DESIGN*****************
*********VALIDATION FOR SCREEN FIELDS********************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.
IF S_OBJID IS NOT INITIAL.
SELECT OTYPE OBJID FROM HRP1000
INTO TABLE IT_OBJID_SH
WHERE OTYPE = 'D'.
IF SY-SUBRC EQ 0.
SEARCH HELP FOR QUALIFICATION.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'OBJID'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_OBJID'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = IT_OBJID_SH
FIELD_TAB =
RETURN_TAB = RETURN_TAB
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
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.
.
IF SY-SUBRC NE 0.
MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA.' TYPE 'E'.
ENDIF.
*
ENDIF.
REFRESH IT_OBJID.
***************VALIDATION OF SCREEN FIELDS ENDS***********
*****************START OF SELECTION ************************
START-OF-SELECTION.
SELECT OTYPE
OBJID
RELAT
BEGDA
ENDDA
SCLAS
SOBID FROM HRP1001 INTO TABLE IT_HRP1001
WHERE OTYPE = 'D'
AND OBJID IN S_OBJID
AND BEGDA GE DATE-LOW
AND ENDDA LE DATE-HIGH
AND ( SCLAS = 'E' OR SCLAS = 'ET' ).
IF SY-SUBRC NE 0.
MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
ENDIF.
LOOP AT IT_HRP1001 INTO WA_HRP1001.
WA_SOBID-OTYPE = WA_HRP1001-OTYPE.
WA_SOBID-OBJID = WA_HRP1001-OBJID.
WA_SOBID-RELAT = WA_HRP1001-RELAT.
WA_SOBID-BEGDA = WA_HRP1001-BEGDA.
WA_SOBID-ENDDA = WA_HRP1001-ENDDA.
WA_SOBID-SCLAS = WA_HRP1001-SCLAS.
WA_SOBID-SOBID = WA_HRP1001-SOBID.
APPEND WA_SOBID TO IT_SOBID.
ENDLOOP.
SELECT OTYPE
OBJID
AEDTM
UNAME
DELET
CANCR
NCONT
FROM HRP1026
INTO TABLE IT_HRP1026
FOR ALL ENTRIES IN IT_SOBID
WHERE OBJID = IT_SOBID-SOBID
AND ( OTYPE = 'E' OR OTYPE = 'ET' )
AND DELET = 'X' AND
BEGDA GE DATE-LOW AND
ENDDA LE DATE-HIGH.
IF SY-SUBRC EQ 0.
SELECT OBJID
STEXT
FROM HRP1000
INTO TABLE IT_HRP1000
FOR ALL ENTRIES IN IT_SOBID
WHERE OBJID = IT_SOBID-SOBID AND
BEGDA GE DATE-LOW AND
ENDDA LE DATE-HIGH.
SELECT CANCR
CANCRT
FROM T77CRT
INTO TABLE IT_REASON
FOR ALL ENTRIES IN IT_HRP1026
WHERE CANCR = IT_HRP1026-CANCR
AND LANGU = 'E' .
********PERFORM FOR GETTING T HE LOCATION OF THE COURCE**
PERFORM GET_LOCATION.
**************END OF LOCATION OF COURCE ******************
ELSE.
MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
ENDIF.
*****PERFORM FOR GETTING DATA INTO THE FINAL INTERNAL TABLE IT_OUTPUT**
PERFORM GET_DATA.
*********************************END OF PERFORM ET DATA ***************
<b>***********LOGIC FOR PRONTING NUMBER OF RECORDS ***********************
LV_COUNT = 0.
LOOP AT IT_OUTPUT INTO WA_OUTPUT.
LV_COUNT = LV_COUNT + 1.
WA_OUTPUT-COUNT = LV_COUNT.
APPEND WA_OUTPUT TO IT_OUTPUT_1.
ENDLOOP.
REFRESH IT_OUTPUT.
IT_OUTPUT = IT_OUTPUT_1.
********************END OF LOGIC FOR NUMBER OF RECORDS ***************</b>
****************DISPLAYING OUTPUT BY USEING GRID DISPLAY**********
PERFORM ALV_DISPLAY.
****************************END OF PERFORM FOR DISPLAYING **********
&----
*& Form PERFORM_ALV
&----
DISPLAY THE RECORDS IN ALV GRID FORMAT.
----
FORM ALV_DISPLAY.
PERFORM FIELD_CATALOG USING 'COUNT' 'Sr. No.'.
PERFORM FIELD_CATALOG USING 'OBJID' 'COURCE ID.'.
PERFORM FIELD_CATALOG USING 'STEXT' 'COURCE NAME'.
PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.
PERFORM FIELD_CATALOG USING 'BEGDA' 'BEGIN DATE '.
PERFORM FIELD_CATALOG USING 'ENDDA' 'END DATE '.
PERFORM FIELD_CATALOG USING 'CANCRT' 'REASON'.
PERFORM FIELD_CATALOG USING 'AEDTM' 'DATE Of CANCEL'.
PERFORM FIELD_CATALOG USING 'NCONT' 'NUMBER OF BOOKINGS'.
PERFORM FIELD_CATALOG USING 'LOCTX' 'COURCE LOCATION'.
PERFORM FIELD_CATALOG USING 'UNAME' 'WHO CANCELLED'.
PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'IT_OUTPUT'
I_GRID_TITLE = ' Cancelled courses with reason '
IT_FIELDCAT = IN_FCAT
TABLES
T_OUTTAB = IT_OUTPUT.
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. "PERFORM_ALV
&----
*& Form FIELD_CATALOG
&----
text
----
-->FIELD_NAME text
-->DIS_TEXT text
----
FORM FIELD_CATALOG USING FIELD_NAME DIS_TEXT.
CLEAR WS_FCAT.
WS_FCAT-TABNAME = 'IT_OUTPUT'.
WS_FCAT-FIELDNAME = FIELD_NAME.
WS_FCAT-SELTEXT_M = DIS_TEXT.
APPEND WS_FCAT TO IN_FCAT .
ENDFORM. "FIELD_CATALOG
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA .
*sort it_sobid by objid.
LOOP AT IT_SOBID INTO WA_SOBID." where otype eq s_otype and objid eq s_objid.
READ TABLE IT_HRP1026 WITH KEY OBJID = WA_SOBID-SOBID OTYPE = WA_SOBID-SCLAS INTO WA_HRP1026.
IF SY-SUBRC EQ 0.
READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.
READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.
WA_OUTPUT-OBJID = WA_HRP1026-OBJID.
WA_OUTPUT-BEGDA = WA_SOBID-BEGDA.
WA_OUTPUT-ENDDA = WA_SOBID-ENDDA.
WA_OUTPUT-AEDTM = WA_HRP1026-AEDTM.
WA_OUTPUT-UNAME = WA_HRP1026-UNAME.
WA_OUTPUT-NCONT = WA_HRP1026-NCONT.
READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.
WA_OUTPUT-STEXT = WA_HRP1000-STEXT.
READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.
WA_OUTPUT-CANCRT = WA_REASON-CANCRT.
CLEAR WA_REASON-CANCRT.
READ TABLE IT_LOCATION1 WITH KEY OBJID = WA_HRP1026-OBJID INTO WA_LOCATION1..
READ TABLE IT_LSTEXT WITH KEY OBJID = WA_LOCATION1-SOBID OTYPE = 'F' INTO WA_LSTEXT.
WA_OUTPUT-LSTEXT = WA_LSTEXT-LSTEXT.
CLEAR WA_LSTEXT-LSTEXT.
APPEND WA_OUTPUT TO IT_OUTPUT.
CLEAR WA_OUTPUT.
CLEAR WA_OUTPUT-CANCRT.
ENDIF.
ENDLOOP.
ENDFORM. " GET_DATA
&----
*& Form GET_LOCATION
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_LOCATION .
SELECT OTYPE
OBJID
RSIGN
RELAT
SCLAS
SOBID
FROM HRP1001
INTO TABLE IT_LOCATION
FOR ALL ENTRIES IN IT_HRP1026
WHERE OTYPE = 'E' AND OBJID = IT_HRP1026-OBJID
AND RSIGN = 'A' AND RELAT = '024' AND SCLAS = 'F'
AND BEGDA GE DATE-LOW AND ENDDA LE DATE-HIGH.
IF SY-SUBRC NE 0.
MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
ENDIF.
LOOP AT IT_LOCATION INTO WA_LOCATION.
WA_LOCATION1-OTYPE = WA_LOCATION-OTYPE.
WA_LOCATION1-OBJID = WA_LOCATION-OBJID.
WA_LOCATION1-RSIGN = WA_LOCATION-RSIGN.
WA_LOCATION1-RELAT = WA_LOCATION-RELAT.
WA_LOCATION1-SCLAS = WA_LOCATION-SCLAS.
WA_LOCATION1-SOBID = WA_LOCATION-SOBID.
APPEND WA_LOCATION1 TO IT_LOCATION1.
CLEAR WA_LOCATION1.
ENDLOOP.
SELECT OTYPE
OBJID
STEXT
FROM HRP1000
INTO TABLE IT_LSTEXT
FOR ALL ENTRIES IN IT_LOCATION1
WHERE OBJID = IT_LOCATION1-SOBID
AND OTYPE = 'F'.
AND BEGDA GE DATE-LOW
AND ENDDA LE DATE-HIGH.
ENDFORM. " GET_LOCATION
<b>Reward if usefull</b>