0% found this document useful (0 votes)
31 views8 pages

Sam Matthews March 29, 2013 ABAP Assignment #3

This program creates a prescription drug error report that writes data to an output report and/or external file. It selects data from a database table based on error level and stores, writes the data to the output or file, and displays totals for errors and affected stores. Forms are used to organize the various reporting and output tasks.

Uploaded by

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

Sam Matthews March 29, 2013 ABAP Assignment #3

This program creates a prescription drug error report that writes data to an output report and/or external file. It selects data from a database table based on error level and stores, writes the data to the output or file, and displays totals for errors and affected stores. Forms are used to organize the various reporting and output tasks.

Uploaded by

KIRAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Sam Matthews

29, 2013

March
ABAP Assignment #3

*&---------------------------------------------------------------------*
*& Report Z27_ASSIGMENT_3
*& Sam Matthews
*&---------------------------------------------------------------------*
*& This program will create a prescription drug error report program that
*& will write data to an output report and/or external file.
*&---------------------------------------------------------------------*
REPORT

Z27_ASSIGMENT_3.

* Establish the file path.


CONSTANTS CON_FIELD_TITLE(100) TYPE C VALUE ' EID
DIN
STORE NUM
BER
EMPLYEE ID
PATIENT ID
ERROR NUMBER
TEXT DISCRIPTION '.
CONSTANTS CON_STORE_TITLE(59) TYPE C VALUE ' PHARMACY 1 PHARMACY 2 PHARMAC
Y 3 PHARMACY 4 PHARMACY 5'.
CONSTANTS CON_LEVEL_TITLE(50) TYPE C VALUE ' NEAR MISS
SLIGHT
MODERATE
PROLONGED
DEATH'.
CONSTANTS CON_REC_SENT(34)
TYPE C VALUE ' DATA HAS BEEN WRITTEN SUCcESSFU
LLY'.
CONSTANTS CON_TOTAL_RECS(23)
TYPE C VALUE ' TOTAL NUMBER Of ERRORS'.
CONSTANTS DRUG_ERROR_FILE(10) TYPE c VALUE ' file1.dat'.

** DATA DECLORATION ----------------------------------------------DATA ERR_NUM_OPT(3)


TYPE P.
DATA ERROR_COUNTER(3) TYPE P.
DATA
DATA
DATA
DATA
DATA

STOR_COUNT1(3)
STOR_COUNT2(3)
STOR_COUNT3(3)
STOR_COUNT4(3)
STOR_COUNT5(3)

TYPE
TYPE
TYPE
TYPE
TYPE

P.
P.
P.
P.
P.

DATA
DATA
DATA
DATA
DATA

LEVEL_COUNT1(3)
LEVEL_COUNT2(3)
LEVEL_COUNT3(3)
LEVEL_COUNT4(3)
LEVEL_COUNT5(3)

TYPE
TYPE
TYPE
TYPE
TYPE

P.
P.
P.
P.
P.

* Declare the structure of the internal table and work area.


Parameters: Err_log

RADIOBUTTON GROUP rad1 DEFAULT 'X',

Insu_log
Both_log

RADIOBUTTON GROUP rad1,


RADIOBUTTON GROUP rad1.

SELECTION-SCREEN SKIP 1.
Parameters: ALL_ERR
NEAR_MIS
SLIGHT
MODERATE
PROLONG
DEATH

RADIOBUTTON
RADIOBUTTON
RADIOBUTTON
RADIOBUTTON
RADIOBUTTON
RADIOBUTTON

GROUP
GROUP
GROUP
GROUP
GROUP
GROUP

rad2 DEFAULT 'X',


rad2,
rad2,
rad2,
rad2,
rad2.

TYPES: BEGIN OF DRUG_ERROR_DATA,


EID
LIKE Z27MEDERROR_DTL-EID,
DIN
LIKE Z27MEDERROR_DTL-DIN,
STOR_NUM LIKE Z27MEDERROR_DTL-STOR_NUM,
EMP_ID
LIKE Z27MEDERROR_DTL-EMP_ID,
PATI_NUM LIKE Z27MEDERROR_DTL-PATI_NUM ,
ERR_SEVR LIKE Z27MEDERROR_DTL-ERR_SEVR,
TEX_DISCP LIKE Z27MEDERROR_DTL-TEX_DISCP,
END OF DRUG_ERROR_DATA.
* INTERNAL TABLE AND WORK AREA
DATA: ITAB_DRUG_ERROR_DATA TYPE STANDARD TABLE OF DRUG_ERROR_DATA,
WA_DRUG_ERROR_DATA TYPE DRUG_ERROR_DATA.

* Main program
CASE 'X'.
WHEN ERR_LOG.
PERFORM WRITE_TITLE.
PERFORM LEVEL_SELECT.
WHEN Insu_log.
PERFORM GET_DATA.
PERFORM WRITE_FILE.
WHEN Both_log.
PERFORM WRITE_TITLE.
PERFORM LEVEL_SELECT.
PERFORM GET_DATA.
PERFORM WRITE_FILE.
ENDCASE.

FORM LEVEL_SELECT.
CASE 'X'.

WHEN NEAR_MIS.
ERR_NUM_OPT = 1.
PERFORM GET_DATA2.
PERFORM WRITE_DATA2.
PERFORM WRITE_STORE_TITLE.
PERFORM ERROR_STORE.
PERFORM NUM_ERROR.

WHEN SLIGHT.
ERR_NUM_OPT = 2.
PERFORM GET_DATA2.
PERFORM WRITE_DATA2.
PERFORM WRITE_STORE_TITLE.
PERFORM ERROR_STORE.
PERFORM NUM_ERROR.

WHEN MODERATE.
ERR_NUM_OPT = 3.
PERFORM GET_DATA2.
PERFORM WRITE_DATA2.
PERFORM WRITE_STORE_TITLE.
PERFORM ERROR_STORE.
PERFORM NUM_ERROR.

WHEN PROLONG.
ERR_NUM_OPT = 4.
PERFORM GET_DATA2.
PERFORM WRITE_DATA2.
PERFORM WRITE_STORE_TITLE.
PERFORM ERROR_STORE.
PERFORM NUM_ERROR.

WHEN DEATH.
ERR_NUM_OPT = 5.
PERFORM GET_DATA2.
PERFORM WRITE_DATA2.
PERFORM WRITE_STORE_TITLE.
PERFORM ERROR_STORE.
PERFORM NUM_ERROR.
WHEN ALL_ERR.
PERFORM GET_DATA.
PERFORM WRITE_DATA.
PERFORM WRITE_TITLE_LEVEL.
PERFORM WRITE_LEVEL_NUMBER.

PERFORM WRITE_STORE_TITLE.
PERFORM ERROR_STORE.
PERFORM NUM_ERROR.
ENDCASE.
ENDFORM.

*Get the data from the Z27DRUG_ERROR_DATA database


FORM GET_DATA2.
SELECT EID DIN STOR_NUM EMP_ID PATI_NUM ERR_SEVR TEX_DISCP
FROM Z27MEDERROR_DTL INTO TABLE ITAB_DRUG_ERROR_DATA
WHERE ERR_SEVR = ERR_NUM_OPT.
ENDFORM.
FORM GET_DATA.
SELECT EID DIN STOR_NUM EMP_ID PATI_NUM ERR_SEVR TEX_DISCP
FROM Z27MEDERROR_DTL INTO TABLE ITAB_DRUG_ERROR_DATA
ORDER BY ERR_SEVR DESCENDING DIN ASCENDING.
ENDFORM.
FORM WRITE_DATA2.
LOOP AT ITAB_DRUG_ERROR_DATA INTO WA_DRUG_ERROR_DATA.
ADD 1 TO ERROR_COUNTER.
CASE WA_DRUG_ERROR_DATA-STOR_NUM.
WHEN 1.
ADD 1 TO STOR_COUNT1.
WHEN 2.
ADD 1 TO STOR_COUNT2.
WHEN 3.
ADD 1 TO STOR_COUNT3.
WHEN 4.
ADD 1 TO STOR_COUNT4.
WHEN 5.
ADD 1 TO STOR_COUNT5.
ENDCASE.
WRITE: /,WA_DRUG_ERROR_DATA-EID, 10 WA_DRUG_ERROR_DATA-DIN, 30 WA_DRUG_ERR
OR_DATA-STOR_NUM,
44 WA_DRUG_ERROR_DATA-EMP_ID, 59 WA_DRUG_ERROR_DATA-PATI_NUM, 74 WA_DRUG_E
RROR_DATA-ERR_SEVR,
89 WA_DRUG_ERROR_DATA-TEX_DISCP.
ENDLOOP.

ENDFORM.
FORM WRITE_DATA.
LOOP AT ITAB_DRUG_ERROR_DATA INTO WA_DRUG_ERROR_DATA.
ADD 1 TO ERROR_COUNTER.
CASE WA_DRUG_ERROR_DATA-STOR_NUM.
WHEN 1.
ADD 1 TO STOR_COUNT1.
WHEN 2.
ADD 1 TO STOR_COUNT2.
WHEN 3.
ADD 1 TO STOR_COUNT3.
WHEN 4.
ADD 1 TO STOR_COUNT4.
WHEN 5.
ADD 1 TO STOR_COUNT5.
ENDCASE.
CASE WA_DRUG_ERROR_DATA-ERR_SEVR.
WHEN 1.
ADD 1 TO LEVEL_COUNT1.
WHEN 2.
ADD 1 TO LEVEL_COUNT2.
WHEN 3.
ADD 1 TO LEVEL_COUNT3.
WHEN 4.
ADD 1 TO LEVEL_COUNT4.
WHEN 5.
ADD 1 TO LEVEL_COUNT5.
ENDCASE.
WRITE: /,WA_DRUG_ERROR_DATA-EID, 10 WA_DRUG_ERROR_DATA-DIN, 30 WA_DRUG_ERR
OR_DATA-STOR_NUM,
44 WA_DRUG_ERROR_DATA-EMP_ID, 59 WA_DRUG_ERROR_DATA-PATI_NUM, 74 WA_DRUG_E
RROR_DATA-ERR_SEVR,
89 WA_DRUG_ERROR_DATA-TEX_DISCP.
ENDLOOP.
ENDFORM.

FORM NUM_ERROR.
ULINE.
WRITE:CON_TOTAL_RECS, ERROR_COUNTER.
ULINE.
ENDFORM.

FORM ERROR_STORE.
ULINE.
WRITE: 4 STOR_COUNT1, 16 STOR_COUNT2, 28 STOR_COUNT3, 40 STOR_COUNT4, 52 STO
R_COUNT5.
ULINE.
ENDFORM.
FORM WRITE_LEVEL_NUMBER.
ULINE.
WRITE: LEVEL_COUNT1, 12 LEVEL_COUNT2, 23 LEVEL_COUNT3, 34 LEVEL_COUNT4, 45 L
EVEL_COUNT5.
ULINE.
ENDFORM.
FORM WRITE_STORE_TITLE.
ULINE.
WRITE:/, CON_STORE_TITLE.
ULINE.
ENDFORM.
FORM WRITE_TITLE.
ULINE.
WRITE CON_FIELD_TITLE.
ULINE.
ENDFORM.
FORM WRITE_TITLE_LEVEL.
ULINE.
WRITE:/, CON_LEVEL_TITLE.
ULINE.
ENDFORM.
*Write the data to the external file *----------------------------------------------------------------FORM write_file.
* open the dataset.
OPEN DATASET DRUG_ERROR_FILE FOR OUTPUT IN BINARY MODE.
* write the data to the file.
LOOP AT ITAB_DRUG_ERROR_DATA INTO WA_DRUG_ERROR_DATA.
TRANSFER WA_DRUG_ERROR_DATA TO DRUG_ERROR_FILE.
ENDLOOP.

MESSAGE S000(/AIN/ACTVT_HELPER) WITH CON_REC_SENT.


CLOSE DATASET DRUG_ERROR_FILE.

ENDFORM.

You might also like