Sam Matthews March 29, 2013 ABAP Assignment #3
Sam Matthews March 29, 2013 ABAP Assignment #3
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.
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.
Insu_log
Both_log
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
* 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.
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.
ENDFORM.