Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 10

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

*& Module Pool


ZHOSPITAL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
PROGRAM ZHOSPITAL.
TABLES: ZPATIENTDATA, ZDOCTORDATA, ZEMPLOYEEDATA, ZTESTDATA.
TYPES : BEGIN OF TY_ZPAT,
PATIENT_ID TYPE ZPATIENT_ID,
PATIENT_NAME TYPE ZPATIENT_NAME,
PATIENT_TYPE TYPE ZPATIENT_TYPE,
TELEPHONE TYPE ZTELEPHONEY,
ADDRESS TYPE ZADDRESSY,
END OF TY_ZPAT.
DATA
DATA
DATA
DATA

:
:
:
:

P_PATID TYPE ZPATIENTDATA-PATIENT_ID.


WA_PAT TYPE TY_ZPAT.
PAT_WA TYPE ZPATIENTDATA.
IT_PAT TYPE TABLE OF TY_ZPAT.

TYPES : BEGIN OF TY_ZDOC,


EMPID TYPE ZEMPIDY,
NAME TYPE ZEMPNAMEY,
DEPT TYPE ZDEPTY,
TELEPHONE TYPE ZTELEPHONEY,
ADDRESS TYPE ZADDRESSY,
END OF TY_ZDOC.
DATA
DATA
DATA
DATA

:
:
:
:

P_DOCID TYPE ZDOCTORDATA-EMPID.


WA_DOC TYPE TY_ZDOC.
DOC_WA TYPE ZDOCTORDATA.
IT_DOC TYPE TABLE OF TY_ZDOC.

TYPES : BEGIN OF TY_ZEMP,


EMPID TYPE ZEMPIDY,
EMPNAME TYPE ZEMPNAMEY,
DEPT TYPE ZDEPTY,
TELEPHONE TYPE ZTELEPHONEY,
ADDRESS TYPE ZADDRESSY,
END OF TY_ZEMP.
DATA
DATA
DATA
DATA

:
:
:
:

P_EMPID TYPE ZEMPLOYEEDATA-EMPID.


WA_EMP TYPE TY_ZEMP.
EMP_WA TYPE ZEMPLOYEEDATA.
IT_EMP TYPE TABLE OF TY_ZEMP.

TYPES : BEGIN OF TY_ZTEST,


BILL_ID TYPE ZBILL_ID,
PATIENT_ID TYPE ZPATIENT_ID,
TEST_NAME TYPE ZTEST_NAME,
CHARGES TYPE ZCHARGES,
END OF TY_ZTEST.
DATA
DATA
DATA
DATA

:
:
:
:

P_BILL_ID TYPE ZTESTDATA-BILL_ID.


WA_TEST TYPE TY_ZTEST.
TEST_WA TYPE ZTESTDATA.
IT_TEST TYPE TABLE OF TY_ZTEST.

TYPE-POOLS : slis.
DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA : gd_repid LIKE sy-repid.
*&---------------------------------------------------------------------*
*&
Module STATUS_8000 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_8000 OUTPUT.
SET PF-STATUS 'THP'.
SET TITLEBAR 'PHP'.
ENDMODULE.
" STATUS_8000 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_8000 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_8000 INPUT.
PERFORM TOOL.
CASE SY-UCOMM.
WHEN 'PDISPLAY'.
SELECT SINGLE PATIENT_ID PATIENT_NAME PATIENT_TYPE TELEPHONE ADDRESS
FROM ZPATIENTDATA
INTO WA_PAT
WHERE PATIENT_ID = P_PATID.
IF sy-subrc = 0.
MESSAGE 'Data Displayed' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
Endif.
WHEN 'PSAVE'.
SELECT PATIENT_ID PATIENT_NAME PATIENT_TYPE TELEPHONE ADDRESS
FROM ZPATIENTDATA
INTO CORRESPONDING FIELDS OF TABLE IT_PAT
WHERE PATIENT_ID = P_PATID.
If sy-subrc = 0.
MESSAGE 'Data is already exists.' type 'E'.
Else.
PAT_WA-PATIENT_ID = P_PATID.
PAT_WA-PATIENT_NAME = WA_PAT-PATIENT_NAME.
PAT_WA-PATIENT_TYPE = WA_PAT-PATIENT_TYPE.
PAT_WA-TELEPHONE = WA_PAT-TELEPHONE.
PAT_WA-ADDRESS = WA_PAT-ADDRESS.
INSERT INTO ZPATIENTDATA VALUES PAT_WA.
MESSAGE 'Data saved successfully' type 'S'.
Endif.
WHEN 'PMODIFY'.
SELECT PATIENT_ID PATIENT_NAME PATIENT_TYPE TELEPHONE ADDRESS
FROM ZPATIENTDATA
INTO CORRESPONDING FIELDS OF TABLE IT_PAT
WHERE PATIENT_ID = P_PATID.
If sy-subrc = 0.
PAT_WA-PATIENT_ID = P_PATID.
PAT_WA-PATIENT_NAME = WA_PAT-PATIENT_NAME.
PAT_WA-PATIENT_TYPE = WA_PAT-PATIENT_TYPE.
PAT_WA-TELEPHONE = WA_PAT-TELEPHONE.

PAT_WA-ADDRESS = WA_PAT-ADDRESS.
MODIFY ZPATIENTDATA FROM PAT_WA.
MESSAGE 'Data Modified successfully' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
Endif.
WHEN 'PCLEAR'.
P_PATID = ''.
WA_PAT-PATIENT_NAME = ''.
WA_PAT-PATIENT_TYPE = ''.
WA_PAT-TELEPHONE = ''.
WA_PAT-ADDRESS = ''.
WHEN 'PDELETE'.
SELECT PATIENT_ID PATIENT_NAME PATIENT_TYPE TELEPHONE ADDRESS
FROM ZPATIENTDATA
INTO CORRESPONDING FIELDS OF TABLE IT_PAT
WHERE PATIENT_ID = P_PATID.
If sy-subrc = 0.
DELETE ZPATIENTDATA FROM TABLE IT_PAT.
MESSAGE 'Data is successfully Deleted.' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
ENDIF.
WHEN 'FPATIENT'.
PERFORM psmart.
WHEN 'RPATIENT'.
PERFORM PGRID.
ENDCASE.
ENDMODULE.

" USER_COMMAND_8000 INPUT

*&---------------------------------------------------------------------*
*&
Module STATUS_8001 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_8001 OUTPUT.
SET PF-STATUS 'THP'.
SET TITLEBAR 'DHP'.
ENDMODULE.

" STATUS_8001 OUTPUT

*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_8001 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_8001 INPUT.
PERFORM TOOL.
CASE SY-UCOMM.
WHEN 'DDISPLAY'.
SELECT SINGLE EMPID NAME DEPT TELEPHONE ADDRESS
FROM ZDOCTORDATA
INTO WA_DOC
WHERE EMPID = P_PATID.
IF sy-subrc = 0.

MESSAGE 'Data Displayed' type 'S'.


ELSE.
MESSAGE 'No Data.' type 'E'.
Endif.
WHEN 'DSAVE'.
SELECT EMPID NAME DEPT TELEPHONE ADDRESS
FROM ZDOCTORDATA
INTO CORRESPONDING FIELDS OF TABLE IT_PAT
WHERE EMPID = P_PATID.
If sy-subrc = 0.
MESSAGE 'Data is already exists.' type 'E'.
Else.
DOC_WA-EMPID = P_PATID.
DOC_WA-NAME = WA_DOC-NAME.
DOC_WA-DEPT = WA_DOC-DEPT.
DOC_WA-TELEPHONE = WA_DOC-TELEPHONE.
DOC_WA-ADDRESS = WA_DOC-ADDRESS.
INSERT INTO ZDOCTORDATA VALUES DOC_WA.
MESSAGE 'Data saved successfully' type 'S'.
Endif.
WHEN 'DMODIFY'.
SELECT EMPID NAME DEPT TELEPHONE ADDRESS
FROM ZDOCTORDATA
INTO CORRESPONDING FIELDS OF TABLE IT_PAT
WHERE EMPID = P_PATID.
If sy-subrc = 0.
DOC_WA-EMPID = P_PATID.
DOC_WA-NAME = WA_DOC-NAME.
DOC_WA-DEPT = WA_DOC-DEPT.
DOC_WA-TELEPHONE = WA_DOC-TELEPHONE.
DOC_WA-ADDRESS = WA_DOC-ADDRESS.
MODIFY ZDOCTORDATA FROM DOC_WA.
MESSAGE 'Data Modified successfully' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
Endif.
WHEN 'DCLEAR'.
P_PATID = ''.
WA_DOC-NAME = ''.
WA_DOC-DEPT = ''.
WA_DOC-TELEPHONE = ''.
WA_DOC-ADDRESS = ''.
WHEN 'DDELETE'.
SELECT EMPID NAME DEPT TELEPHONE ADDRESS
FROM ZDOCTORDATA
INTO CORRESPONDING FIELDS OF TABLE IT_PAT
WHERE EMPID = P_PATID.
If sy-subrc = 0.
DELETE ZDOCTORDATA FROM TABLE IT_PAT.
MESSAGE 'Data is successfully Deleted.' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
ENDIF.
WHEN 'FPATIENT'.
PERFORM psmart.

WHEN 'RPATIENT'.
PERFORM PGRID.
ENDCASE.
ENDMODULE.

" USER_COMMAND_8001 INPUT

*&---------------------------------------------------------------------*
*&
Module STATUS_8002 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_8002 OUTPUT.
SET PF-STATUS 'THP'.
SET TITLEBAR 'EHP'.
ENDMODULE.
" STATUS_8002 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_8002 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_8002 INPUT.
PERFORM TOOL.
CASE SY-UCOMM.
WHEN 'EDISPLAY'.
SELECT SINGLE EMPID EMPNAME DEPT TELEPHONE ADDRESS
FROM ZEMPLOYEEDATA
INTO WA_EMP
WHERE EMPID = P_EMPID.
IF sy-subrc = 0.
MESSAGE 'Data Displayed' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
Endif.
WHEN 'ESAVE'.
SELECT EMPID EMPNAME DEPT TELEPHONE ADDRESS
FROM ZEMPLOYEEDATA
INTO CORRESPONDING FIELDS OF TABLE IT_EMP
WHERE EMPID = P_EMPID.
If sy-subrc = 0.
MESSAGE 'Data is already exists.' type 'E'.
Else.
EMP_WA-EMPID = P_EMPID.
EMP_WA-EMPNAME = WA_EMP-EMPNAME.
EMP_WA-DEPT = WA_EMP-DEPT.
EMP_WA-TELEPHONE = WA_EMP-TELEPHONE.
EMP_WA-ADDRESS = WA_EMP-ADDRESS.
INSERT INTO ZEMPLOYEEDATA VALUES EMP_WA.
MESSAGE 'Data saved successfully' type 'S'.
Endif.
WHEN 'EMODIFY'.
SELECT EMPID EMPNAME DEPT TELEPHONE ADDRESS
FROM ZEMPLOYEEDATA
INTO CORRESPONDING FIELDS OF TABLE IT_EMP
WHERE EMPID = P_EMPID.
If sy-subrc = 0.
EMP_WA-EMPID = P_EMPID.

EMP_WA-EMPNAME = WA_EMP-EMPNAME.
EMP_WA-DEPT = WA_EMP-DEPT.
EMP_WA-TELEPHONE = WA_EMP-TELEPHONE.
EMP_WA-ADDRESS = WA_EMP-ADDRESS.
MODIFY ZEMPLOYEEDATA FROM EMP_WA.
MESSAGE 'Data Modified successfully' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
Endif.
WHEN 'ECLEAR'.
P_EMPID = ''.
WA_EMP-EMPNAME = ''.
WA_EMP-DEPT = ''.
WA_EMP-TELEPHONE = ''.
WA_EMP-ADDRESS = ''.
WHEN 'EDELETE'.
SELECT EMPID EMPNAME DEPT TELEPHONE ADDRESS
FROM ZEMPLOYEEDATA
INTO CORRESPONDING FIELDS OF TABLE IT_EMP
WHERE EMPID = P_EMPID.
If sy-subrc = 0.
DELETE ZEMPLOYEEDATA FROM TABLE IT_EMP.
MESSAGE 'Data is successfully Deleted.' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'E'.
ENDIF.
WHEN 'FPATIENT'.
PERFORM psmart.
WHEN 'RPATIENT'.
PERFORM PGRID.
ENDCASE.
ENDMODULE.

" USER_COMMAND_8002 INPUT

*&---------------------------------------------------------------------*
*&
Form STRUCT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Module STATUS_8003 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_8003 OUTPUT.
SET PF-STATUS 'THP'.
SET TITLEBAR 'THP'.
ENDMODULE.
" STATUS_8003 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_8003 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_8003 INPUT.

PERFORM TOOL.
CASE SY-UCOMM.
WHEN 'TDISPLAY'.
SELECT SINGLE BILL_ID PATIENT_ID TEST_NAME CHARGES
FROM ZTESTDATA
INTO WA_TEST
WHERE BILL_ID = P_BILL_ID.
IF sy-subrc = 0.
MESSAGE 'Data Displayed' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'T'.
Endif.
WHEN 'TSAVE'.
SELECT BILL_ID PATIENT_ID TEST_NAME CHARGES
FROM ZTESTDATA
INTO CORRESPONDING FIELDS OF TABLE IT_TEST
WHERE BILL_ID = P_BILL_ID.
If sy-subrc = 0.
MESSAGE 'Data is already exists.' type 'T'.
Else.
TEST_WA-BILL_ID = P_BILL_ID.
TEST_WA-PATIENT_ID = WA_TEST-PATIENT_ID.
TEST_WA-TEST_NAME = WA_TEST-TEST_NAME.
TEST_WA-CHARGES = WA_TEST-CHARGES.
INSERT INTO ZTESTDATA VALUES TEST_WA.
MESSAGE 'Data saved successfully' type 'S'.
Endif.
WHEN 'TMODIFY'.
SELECT BILL_ID PATIENT_ID TEST_NAME CHARGES
FROM ZTESTDATA
INTO CORRESPONDING FIELDS OF TABLE IT_TEST
WHERE BILL_ID = P_BILL_ID.
If sy-subrc = 0.
TEST_WA-BILL_ID = P_BILL_ID.
TEST_WA-PATIENT_ID = WA_TEST-PATIENT_ID.
TEST_WA-TEST_NAME = WA_TEST-TEST_NAME.
TEST_WA-CHARGES = WA_TEST-CHARGES.
MODIFY ZTESTDATA FROM TEST_WA.
MESSAGE 'Data Modified successfully' type 'S'.
ELSE.
MESSAGE 'No Data.' type 'T'.
Endif.
WHEN 'TCLEAR'.
P_BILL_ID = ''.
WA_TEST-PATIENT_ID = ''.
WA_TEST-TEST_NAME = ''.
WA_TEST-CHARGES = ''.
WHEN 'TDELETE'.
SELECT BILL_ID PATIENT_ID TEST_NAME CHARGES
FROM ZTESTDATA
INTO CORRESPONDING FIELDS OF TABLE IT_TEST
WHERE BILL_ID = P_BILL_ID.
If sy-subrc = 0.
DELETE ZTESTDATA FROM TABLE IT_TEST.
MESSAGE 'Data is successfully Deleted.' type 'S'.

ELSE.
MESSAGE 'No Data.' type 'T'.
ENDIF.
WHEN 'FPATIENT'.
PERFORM psmart.
WHEN 'RPATIENT'.
PERFORM PGRID.
ENDCASE.
ENDMODULE.

" USER_COMMAND_8003 INPUT

*&---------------------------------------------------------------------*
*&
Form PGRID
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM PGRID .
SELECT PATIENT_ID PATIENT_NAME PATIENT_TYPE TELEPHONE ADDRESS
FROM ZPATIENTDATA
INTO TABLE IT_PAT.
fieldcatalog-fieldname = 'PATIENT_ID'.
fieldcatalog-seltext_m = 'PATIENT ID'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'PATIENT_NAME'.
fieldcatalog-seltext_l = 'PATIENT NAME'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'PATIENT_TYPE'.
fieldcatalog-seltext_m = 'PATIENT TYPE'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'TELEPHONE'.
fieldcatalog-seltext_m = 'TELEPHONE'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ADDRESS'.
fieldcatalog-seltext_m = 'ADDRESS'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog.
CLEAR fieldcatalog.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*
I_INTERFACE_CHECK
= ' '

*
*

I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
I_CALLBACK_PROGRAM
= gd_repid
*
I_CALLBACK_PF_STATUS_SET
= ' '
*
I_CALLBACK_USER_COMMAND
= ' '
I_CALLBACK_TOP_OF_PAGE
= 'TOP-OF-PAGE'
*
I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
*
I_CALLBACK_HTML_END_OF_LIST
= ' '
*
I_STRUCTURE_NAME
=
*
I_BACKGROUND_ID
= ' '
*
I_GRID_TITLE
=
*
I_GRID_SETTINGS
=
*
IS_LAYOUT
=
IT_FIELDCAT
= fieldcatalog[]
*
IT_EXCLUDING
=
*
IT_SPECIAL_GROUPS
=
*
IT_SORT
=
*
IT_FILTER
=
*
IS_SEL_HIDE
=
*
I_DEFAULT
= 'X'
I_SAVE
= 'X'
*
IS_VARIANT
=
*
IT_EVENTS
=
*
IT_EVENT_EXIT
=
*
IS_PRINT
=
*
IS_REPREP_ID
=
*
I_SCREEN_START_COLUMN
= 0
*
I_SCREEN_START_LINE
= 0
*
I_SCREEN_END_COLUMN
= 0
*
I_SCREEN_END_LINE
= 0
*
I_HTML_HEIGHT_TOP
= 0
*
I_HTML_HEIGHT_END
= 0
*
IT_ALV_GRAPHICS
=
*
IT_HYPERLINK
=
*
IT_ADD_FIELDCAT
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
*
E_EXIT_CAUSED_BY_CALLER
=
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
T_OUTTAB
= IT_PAT
* 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.
" PGRID
*&---------------------------------------------------------------------*
*&
Form psmart
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM psmart .

CALL FUNCTION '/1BCDWB/SF00000341'


* EXPORTING
* ARCHIVE_INDEX
=
* ARCHIVE_INDEX_TAB
=
* ARCHIVE_PARAMETERS
=
* CONTROL_PARAMETERS
=
* MAIL_APPL_OBJ
=
* MAIL_RECIPIENT
=
* MAIL_SENDER
=
* OUTPUT_OPTIONS
=
* USER_SETTINGS
= 'X'
* IMPORTING
* DOCUMENT_OUTPUT_INFO
=
* JOB_OUTPUT_INFO
=
* JOB_OUTPUT_OPTIONS
=
* EXCEPTIONS
* FORMATTING_ERROR
= 1
* INTERNAL_ERROR
= 2
* SEND_ERROR
= 3
* USER_CANCELED
= 4
* OTHERS
= 5
.
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.
" psmart
*&---------------------------------------------------------------------*
*&
Form TOOL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM TOOL .
CASE SY-UCOMM.
WHEN 'TPATIENT'.
CALL SCREEN 8000.
WHEN 'TDOCTOR'.
CALL SCREEN 8001.
WHEN 'TEMPLOYEE'.
CALL SCREEN 8002.
WHEN 'TTEST'.
CALL SCREEN 8003.
ENDCASE.
ENDFORM.
" TOOL

You might also like