0% found this document useful (0 votes)
18 views4 pages

SAP Table Record Counter Report

table count report

Uploaded by

rajesh.more
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views4 pages

SAP Table Record Counter Report

table count report

Uploaded by

rajesh.more
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

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

*& Report ZTABLE_COUNT


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

REPORT ZTABLE_COUNT.

* TABLES
TABLES CCTABSIZE.
* TYPE POOLS
TYPE-POOLS : SLIS, SSCR.

* DATA TYPE DECLARATION


TYPES : BEGIN OF TY_FINAL,
TABNAME TYPE TABNAME,
NBRINS TYPE AM_NUROW,
END OF TY_FINAL.

* DATA OBJECT DECLARATION


DATA : IT_ZTAB_INFO TYPE STANDARD TABLE OF ZTAB_INFO,
WA_ZTAB_INFO TYPE ZTAB_INFO,

IT_ZTAB_RECO TYPE STANDARD TABLE OF ZTAB_RECO,


WA_ZTAB_RECO TYPE ZTAB_RECO,

IT_FINAL TYPE STANDARD TABLE OF TY_FINAL,


WA_FINAL TYPE TY_FINAL,

G_REPID LIKE SY-REPID, " FOR PASSING REPORT ID


IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, " FOR PASSING FIELDCAT VALUE
LAYOUT TYPE SLIS_LAYOUT_ALV,

RESTRICT TYPE SSCR_RESTRICT,


SELOPT TYPE SSCR_ASS,
OPT_LIST TYPE SSCR_OPT_LIST. "BT,CP,EQ,GE,GT,LE,LT,NB,NE,NP

* SELECTION CRITERIA
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 NO INTERVALS.

SELECTION-SCREEN BEGIN OF LINE .


SELECTION-SCREEN COMMENT 1(17) TEXT-002 FOR FIELD S_TABNAM.
SELECT-OPTIONS S_TABNAM FOR CCTABSIZE-TABNAME .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE .


PARAMETERS P_TABD TYPE CHAR1 AS CHECKBOX USER-COMMAND CHK.
SELECTION-SCREEN COMMENT 5(30) TEXT-003 FOR FIELD P_TABD.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.

G_REPID = SY-REPID.

CLEAR SELOPT.
SELOPT-KIND = 'S'. " S-SELCT-OPTIONS, A-ALL, B-BLOCK
SELOPT-NAME = 'S_TABNAM'. " NAME OF THE SELECT-OPTIONS
SELOPT-SG_MAIN = 'I'. " I-INCLUSIVE, SPACE-BOTH
SELOPT-OP_MAIN = 'OBJ_1'.
APPEND SELOPT TO RESTRICT-ASS_TAB.

CLEAR OPT_LIST.
OPT_LIST-NAME = 'OBJ_1'.
OPT_LIST-OPTIONS-EQ = 'X'.
OPT_LIST-OPTIONS-NE = 'X'.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.

CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'


EXPORTING
RESTRICTION = RESTRICT
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
SELOPT_WITHOUT_OPTIONS = 5
SELOPT_WITHOUT_SIGNS = 6
INVALID_SIGN = 7
EMPTY_OPTION_LIST = 9
INVALID_KIND = 10
REPEATED_KIND_A = 11
OTHERS = 12.

AT SELECTION-SCREEN OUTPUT.
IF P_TABD = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'S_TABNAM-LOW' .
SCREEN-INPUT = 0.
MODIFY SCREEN.
CLEAR : S_TABNAM[].
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = 'S_TABNAM-LOW' .
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.

START-OF-SELECTION.
IF P_TABD = 'X'.
SELECT *
FROM ZTAB_INFO
INTO TABLE IT_ZTAB_INFO
ORDER BY PRIMARY KEY.

LOOP AT IT_ZTAB_INFO INTO WA_ZTAB_INFO.


SELECT COUNT(*)
FROM (WA_ZTAB_INFO-TABNAME) INTO WA_FINAL-NBRINS
WHERE MANDT = SY-MANDT.

MOVE WA_ZTAB_INFO-TABNAME TO WA_FINAL-TABNAME.

APPEND WA_FINAL TO IT_FINAL.


CLEAR : WA_FINAL, WA_ZTAB_INFO.
ENDLOOP.

ELSE.
LOOP AT S_TABNAM.
SELECT COUNT(*)
FROM (S_TABNAM-LOW) INTO WA_FINAL-NBRINS
WHERE MANDT = SY-MANDT.

MOVE S_TABNAM-LOW TO WA_FINAL-TABNAME.

APPEND WA_FINAL TO IT_FINAL.


CLEAR WA_FINAL.
ENDLOOP.
ENDIF.

IF IT_FINAL IS NOT INITIAL.


LOOP AT IT_FINAL INTO WA_FINAL.

WA_ZTAB_RECO-TABNAME = WA_FINAL-TABNAME.
WA_ZTAB_RECO-NBRINS = WA_FINAL-NBRINS.
WA_ZTAB_RECO-ZDATE = SY-DATUM.
WA_ZTAB_RECO-ZTIME = SY-UZEIT.

APPEND WA_ZTAB_RECO TO IT_ZTAB_RECO.


CLEAR : WA_ZTAB_RECO, WA_FINAL.
ENDLOOP.

MODIFY ZTAB_RECO FROM TABLE IT_ZTAB_RECO.


IF SY-SUBRC = 0.
COMMIT WORK AND WAIT.
MESSAGE 'Records Saved successfully.' TYPE 'S'.

PERFORM FIELD_CATALOG USING IT_FIELDCAT[].


PERFORM RESUSE_ALV_GRID_DISPLAY.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDIF.

*&---------------------------------------------------------------------*
*& Form field_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_FIELDCAT text
*----------------------------------------------------------------------*
FORM FIELD_CATALOG USING P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-FIELDNAME = 'TABNAME'.
WA_FIELDCAT-REF_TABNAME = 'CCTABSIZE'.
WA_FIELDCAT-OUTPUTLEN = '20'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-TABNAME = 'IT_FINAL'.
APPEND WA_FIELDCAT TO P_IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-FIELDNAME = 'NBRINS'.
WA_FIELDCAT-REF_TABNAME = 'CCTABSIZE'.
WA_FIELDCAT-OUTPUTLEN = '20'.
WA_FIELDCAT-TABNAME = 'IT_FINAL'.
APPEND WA_FIELDCAT TO P_IT_FIELDCAT.
CLEAR WA_FIELDCAT.

ENDFORM. "field_catalog
*&---------------------------------------------------------------------*
*& Form ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM RESUSE_ALV_GRID_DISPLAY.
DATA TITLE(70) TYPE C.

TITLE = 'Number of lines/records in a table'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IT_FIELDCAT = IT_FIELDCAT[]
I_GRID_TITLE = TITLE
TABLES
T_OUTTAB = IT_FINAL
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. "RESUSE_ALV_GRID_DISPLAY

You might also like