import AEP_MY_FRST_PDF:*; rem global variables used in event functions; Global number &gbl_net, &gbl_basic, &gbl_allow, &gbl_ded, &gbl_tax; Function InputLineToRecord(&AEP_RPT As AEP_MY_FRST_PDF:AEP_MY_FRST_PDF, &InpLine As string, &Rec As Record) &Rec.GetField(Field.AEP_COMPANY).Value = &AEP_RPT.getFieldByNum(&InpLine, 1, ","); &Rec.GetField(Field.AEP_PAYGROUP).Value = &AEP_RPT.getFieldByNum(&InpLine, 2, ","); &Rec.GetField(Field.AEP_DEPTID).Value = &AEP_RPT.getFieldByNum(&InpLine, 3, ","); &Rec.GetField(Field.AEP_KEY_DETAIL).Value = &AEP_RPT.getFieldByNum(&InpLine, 4, ","); &Rec.GetField(Field.EFFDT).Value = %Date; &Rec.GetField(Field.AEP_ER_DD_CODE).Value = &AEP_RPT.getFieldByNum(&InpLine, 6, ","); &Rec.GetField(Field.AEP_AMOUNT).Value = Value(&AEP_RPT.getFieldByNum(&InpLine, 7, ",")); End-Function; Function ConsolidateDetailsRows(&AEP_RPT As AEP_MY_FRST_PDF:AEP_MY_FRST_PDF, &InpRec As Record, &RowNumber As number) Local string &ErnDedCd, &ErrMessage; Local number &Amount; &ErnDedCd = &InpRec.GetField(Field.AEP_ER_DD_CODE).Value; &Amount = &InpRec.GetField(Field.AEP_AMOUNT).Value; Evaluate &ErnDedCd When = "E01" &gbl_basic = &gbl_basic + &Amount; Break; When = "E02" &gbl_allow = &gbl_allow + &Amount; Break; When = "D01" &gbl_ded = &gbl_ded + &Amount; Break; When = "D02" &gbl_tax = &gbl_tax + &Amount; Break When-Other &ErrMessage = "Invalid Earning/Deduction Code: " | &ErnDedCd | " - input ignored at record number: " | &RowNumber; &AEP_RPT.ToLog("E", &ErrMessage); Break; End-Evaluate; &gbl_net = &gbl_basic + &gbl_allow - &gbl_ded - &gbl_tax; End-Function; Local AEP_MY_FRST_PDF:AEP_MY_FRST_PDF &my_rpt; Local File &fMYFILE; Local Record &Rec; Local number &rownum; Local string &Line, &RptAetRecName, &RptDatRecName, &ArgList; &my_rpt = create AEP_MY_FRST_PDF:AEP_MY_FRST_PDF(""); rem build argument list; &RptAetRecName = "AEP_MY_FRST_PDF"; &RptDatRecName = "AEP_MY_FRST_DAT"; &ArgList = "rpt_aet_rec=" | &RptAetRecName | ","; &ArgList = &ArgList | "rpt_dat_rec=" | &RptDatRecName | ","; &ArgList = &ArgList | "PageFooterSize=25"; If &my_rpt.InitReport(&ArgList) = True Then &Rec = CreateRecord(Record.AEP_MY_FRST_DAT); &rownum = 0; &fMYFILE = GetFile("c:\sqrplus\sqr\demo05.csv", "R", %FilePath_Absolute); If &fMYFILE.IsOpen Then While &fMYFILE.ReadLine(&Line); &rownum = &rownum + 1; If &rownum > 1 Then /* ignore header row in file */ InputLineToRecord(&my_rpt, &Line, &Rec); &my_rpt.SubmitData(&Rec, &Rec.GetField(Field.AEP_KEY_DETAIL).Value); ConsolidateDetailsRows(&my_rpt, &Rec, &rownum); /* not required if every input row should appear in the report */ End-If; End-While; &fMYFILE.Close(); &my_rpt.FinalizeReport("NoDataMsg=*** No Data to Report ***", &Rec); End-If; End-If; &my_rpt.ToLog("", "End");