** PROGRAMMING SECTION: [ GLOBAL CODE ] [] ** #Include sbasic_include.sbas Subroutine PopulateCompanyComboBox() Var vCompanies as String //Populate the combo Box with list of customers vCompanies = @XListValues(@FN, "InsCo_Maint!Company Name") vCompanies = @SortstringArray(vCompanies,0) PopulateListElement(Company, vCompanies) End Subroutine PopulateCompanyComboBox() ** PROGRAMMING SECTION: [File_Name] [On Element Entry] ** Var Vresult as string vresult = @LocalFileDialog("Chouse the Import File","*.CSV") file_name = Vresult ** PROGRAMMING SECTION: [File_Name] [On Element Exit] ** /* Set vDelim variable below to appropriate delimiter */ var n as int Var Fcomm_Amt as Double Var FMode_Premium as Double var vDelim as String = "," var vFileHandle as Int var vLine as String var Agent_name as string Var Agent_No As String var Policy_no as string var company0 as string var Type0 as string var PHFName as string var PHLName as string var Due_Date as Date var New_Due_Date as Date Var Comm_amt as Double var Commission_Amt as Double var Note as string Var Open_file as string Var Agent_Short as String Var AFName as String Var ALName as String var vinfo2 as string Var LN as int var Mode_Percent as Double Var lastfirst as string VAR vInfo3 as String Var vName as string var vError as Int var Issue_date as date var mode as string var Mode_Premium as double var Commission_Pct as double var t as array[32] of string var plan as string var Annual_Premium as Double //================================================================================= Subroutine parseline() var i as Int = 1 // WriteLn(vLine) while @Len(vLine) > 0 { t[i] = Split(vLine, vDelim) // writeLn(@str(i) + " " + t[i]) i = i + 1 } End Subroutine //================================================================================= Subroutine PrintHeader() NewPage(850,1100) Printstring("Agent Commission Report", 200, 100, 0, "Arial", 20, 0) PrintString(Company, @PageExtentx() + 15, -1, 0, "Arial", 20, 0) PrintString("Statement Date", 50, 150, 0, "Arial", 12, 0) PrintString("First Name", 175, -1, 0, "Arial", 12, 0) PrintString("Last Name", 285, -1, 0, "Arial", 12, 0) PrintString("Policy No", 420, -1, 0, "Arial", 12, 0) PrintString("Issue Date", 540, -1, 0, "Arial", 12, 0) Printstring("Comm Base", 600, -1, 0, "Arial", 12, 0) PrintString("Comm AMount", 675, -1, 0, "Arial", 12, 0) PrintString("FLAG", 780, -1, 0, "Arial", 12, 0) End Subroutine //================================================================================= Subroutine PrintStringR(vData as String, vX as Int, vY as Int, vWidth as Int, vFont as String, vFontSize as Int, vMeasureOnly as Int) Var vPrintedWidth as Int PrintString(vData, 0, vY, 0, vFont, vFontSize, 1) vPrintedWidth = @PageExtentX() PrintString(vData, vx - vPrintedWidth, vY, 0, vFont, vFontSize, vMeasureOnly) End Subroutine //================================================================================= //========= Start of Program ================================== vFileHandle = fileOpen(File_Name) // @msgbox(File_name,"","") If vFileHandle < 0 then goto Error PrintHeader() fileSeek(vFileHandle, 0) While FilePos(vFileHandle) < FileSize(vFileHandle) { readNext: fileReadLn(vFileHandle, vLine) If vLine = "" Then goto Thats_ALL // WriteLN(Vline) parseline() If t[Commission_Column] = 0 Then goto ReadNext Policy_No = "" Due_Date = "" Comm_Amt = 0 Note = "" Policy_No = t[Policy_no_Column] // 6 Due_Date = t[Due_Date_Column] // 17 Comm_amt = t[CommissIon_Column] // 25 Note = t[note_Column] // 26 // @MsgBOX(Policy_no, "PointA","") If Policy_No <> "" Then { // @MsgBOX(Policy_no, "PointB","") // Get Policy Info for selected Policy vinfo2 = @XLookupSourceList(@FN, Policy_No, "PIview!Policy_no", "Agent_no;Company;Date_Issued:;Type;Mode Premium:;CommissIon_base;Percent:;Policy_Holder_Name;Due_date;Plan:;Annual_Premium") } If @Error { vError = @ErrorType // @MsgBox((@ErrorString(vError)),"","") @MSGBOX("Policy Number not on file", Policy_No, (@ErrorString(vError))) PrintString(Policy_no, 420, @PageExtentY() + 5, 0, "Arial", 12, 0) PrintString("Policy-No Not on file", 600, -1, 0, "Arial", 12, 0) GOTO readnext } // Writeln(vinfo2) // If @XLookupSourceList was successful then put values in elements Agent_no = @AccessStringArray(vInfo2, 1) Company0 = @AccessStringArray(vInfo2, 2) Issue_Date = @AccessStringArray(vInfo2, 3) Type0 = @AccessStringArray(vInfo2, 4) Mode = @AccessStringArray(vInfo2, 5) Mode_Premium = @AccessStringArray(vInfo2, 6) Commission_Pct = @AccessStringArray(vInfo2, 7) LastFirst = @AccessStringArray(vInfo2, 8) Due_date = @AccessStringArray(vInfo2, 9) Plan = @AccessStringArray(vInfo2, 10) Annual_Premium = @AccessStringArray(vInfo2, 11) If @IsBlank(Agent_no) = False Then { //Get Agent Name vinfo3 = @XLookupSourceList(@FN, Agent_no, "Agent!Agent Number", "First_name;last_name") If Not @Error Then { // If @XLookupSourceList was successful then put values in elements Agent_name = @AccessStringArray(vInfo3, 1) + " " + @AccessStringArray(vInfo3, 2) } } // Split Name First Last vName = Lastfirst If @Instr(vName, ",")=0 and @Instr(vName, " ")=0 //No Commas, no spaces { PHLName = vName } Else { If @Instr(vName, ",")>0 // comma indicates last, first { PHLName = @left(vName, @Instr(vName, ",")-1) PHFName = @Mid(vName, @Instr(vName, ",")+1, @len(vName)-@Instr(vName, ",")) } Else { If @Instr(vName, " ")>0 // no commas, just a space { PHFName = @left(vName, @Instr(vName, " ")) PHlName = @Mid(vName, @Instr(vName, " ")+1, @len(vName)-@Instr(vName, " ")) } } } // Calculate percent Mode_Percent = Comm_Amt * Commission_Pct Commission_Amt = Mode_Percent New_Due_Date = Due_Date + 30 // Print the Info line PrintString(Statement_Date, 50, @PageExtentY() + 5, 0, "Arial", 12, 0) PrintString(PHFName, 175, -1, 0, "Arial", 12, 0) PrintString(PHLName, 285, -1, 0, "Arial", 12, 0) PrintString(Policy_no, 420, -1, 0, "Arial", 12, 0) PrintString(Issue_Date, 540, -1, 0, "Arial", 12, 0) PrintStringR(@decimals(Mode_Premium,2), 690, -1, 0, "Arial", 12, 0) PrintStringR(@decimals(Comm_Amt,2), 760, -1, 0, "Arial", 12, 0) If Comm_Amt <> Mode_Premium Then { // Change in Commission_Base flag the line print PrintString("****", 780, -1, 0, "Arial", 12, 0) } If (@PageExtentY() >= 1000) { FinishPage() PrintHeader() } // Writeln(Policy_NO) // FormFieldValue(formName, name, instance,newval) formfieldvalue("Commission_Entry", "Statement_Date", 0, Statement_Date) formfieldvalue("Commission_Entry", "Date_Paid", 0, Date_Paid) formfieldvalue("Commission_Entry", "PolicyNum", 0, Policy_no) formfieldvalue("Commission_Entry", "Policy_Holder_Last_Name", 0, PHLName) formfieldvalue("Commission_Entry", "First_Name", 0, PHFName) formfieldvalue("Commission_Entry", "Agent_No", 0, Agent_No) formfieldvalue("Commission_Entry", "Agent_Name", 0, Agent_name) formfieldvalue("Commission_Entry", "Company0", 0, Company0) formfieldvalue("Commission_Entry", "Due_Date", 0, Due_Date) formfieldvalue("Commission_Entry", "Entry_Code", 0, "1") formfieldvalue("Commission_Entry", "Commission_Amt", 0, Commission_Amt) formfieldvalue("Commission_Entry", "Commission_Note", 0, Note) formfieldvalue("Commission_Entry", "Issue_Date", 0, Issue_Date) formfieldvalue("Commission_Entry", "Type0", 0, Type0) formfieldvalue("Commission_Entry", "Annual_Premium", 0, Annual_Premium) formfieldvalue("Commission_Entry", "Mode", 0, Mode) formfieldvalue("Commission_Entry", "Mode_Premium", 0, Mode_Premium) formfieldvalue("Commission_Entry", "Commission_Pct", 0, Commission_Pct) formfieldvalue("Commission_Entry", "Mode_Percent", 0, Mode_Percent) formfieldvalue("Commission_Entry", "New_Due_Date", 0, New_Due_Date) // @msgbox("check Commission_Entry Screen","","") XPost(@FN, Policy_No, "PIVIEW!Policy_no", New_Due_Date, "Due_Date","") // n = @SelectTreeItem("Commission_Entry!Add Data Menu!Navigation!Save Record") // writeln(n) FormCommit("Commission_Entry") // @msgBox(" Check Comm_Entry","","") } Thats_All: fileClose(vFileHandle) FinishPage() @Exit goto Jump_Error Error: @MsgBox("File Not Found", "", "") @Exit Jump_Error: