0% found this document useful (0 votes)
14 views

Table Count

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)
14 views

Table Count

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
You are on page 1/ 4

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

*& 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