'************************************************************************************* '* Name: CS 100-01 * '* Program: Putting It All Together * '* Date: 3/25/03 * '* Description: This program is designed to demonstrate files, arrays, & printing * '* Adapted From: * '* Programming in Visual Basic 6.0, Bradley/Millspaugh, 2002, McGraw-Hill, Page 315* '************************************************************************************* Option Explicit 'Global variables Dim intInFileNum As Integer Dim intOutFileNum As Integer Private Sub Form_Load() Const strDATA_FILE = "\SalesRepsData.csv" Const strINFO_FILE = "\SalesInfo.txt" Dim strFilePath As String 'Open the Files strFilePath = App.Path & strDATA_FILE intInFileNum = FreeFile Open strFilePath For Input As #intInFileNum strFilePath = App.Path & strINFO_FILE intOutFileNum = FreeFile Open strFilePath For Output As #intOutFileNum End Sub Private Sub btnStart_Click() 'Constant Declarations Const intMAX_REPS = 15 Const intMAX_WKS = 4 Const intMAX_WIDTH = 15 'Variable Declarations Dim curSalesAmt(1 To intMAX_REPS, _ 1 To intMAX_WKS) As Currency Dim curSalesGrandTot As Currency Dim curSalesRepTot(1 To intMAX_REPS) As Currency Dim curWkSalesTot(1 To intMAX_WKS) As Currency Dim intCount As Integer Dim intFormattedLen As Integer Dim intNumReps As Integer Dim intPos As Integer Dim intRepIndx As Integer Dim intTabPos As Integer Dim intWkIndx As Integer Dim strFormatted As String Dim strSalesRep(1 To intMAX_REPS) As String 'Initialize the Variables For intRepIndx = 1 To intMAX_REPS curSalesRepTot(intRepIndx) = 0 Next intRepIndx For intWkIndx = 1 To intMAX_WKS curWkSalesTot(intWkIndx) = 0 Next intWkIndx curSalesGrandTot = 0 intNumReps = 0 'Read the Data Files Do Until EOF(intInFileNum) intNumReps = intNumReps + 1 Input #intInFileNum, strSalesRep(intNumReps) For intWkIndx = 1 To intMAX_WKS Input #intInFileNum, curSalesAmt(intNumReps, intWkIndx) Next intWkIndx Loop 'Calculate the Totals For intRepIndx = 1 To intNumReps For intWkIndx = 1 To intMAX_WKS curSalesRepTot(intRepIndx) = _ curSalesRepTot(intRepIndx) + _ curSalesAmt(intRepIndx, intWkIndx) curWkSalesTot(intWkIndx) = _ curWkSalesTot(intWkIndx) + _ curSalesAmt(intRepIndx, intWkIndx) curSalesGrandTot = curSalesGrandTot + _ curSalesAmt(intRepIndx, intWkIndx) Next intWkIndx Next intRepIndx 'Print The Report Headings strFormatted = "Sales Rep Name" intPos = intMAX_WIDTH picReport.Print strFormatted; Print #intOutFileNum, strFormatted; For intWkIndx = 1 To intMAX_WKS strFormatted = "Week " & intWkIndx intFormattedLen = Len(strFormatted) intPos = intPos + intMAX_WIDTH intTabPos = intPos - intFormattedLen picReport.Print Tab(intTabPos); strFormatted; Print #intOutFileNum, Tab(intTabPos); strFormatted; Next intWkIndx strFormatted = "Total Sales" intFormattedLen = Len(strFormatted) intPos = intPos + intMAX_WIDTH intTabPos = intPos - intFormattedLen picReport.Print Tab(intTabPos); strFormatted Print #intOutFileNum, Tab(intTabPos); strFormatted For intRepIndx = 1 To intNumReps strFormatted = strSalesRep(intRepIndx) intPos = intMAX_WIDTH picReport.Print strFormatted; Print #intOutFileNum, strFormatted; For intWkIndx = 1 To intMAX_WKS strFormatted = FormatCurrency(curSalesAmt(intRepIndx, intWkIndx)) intFormattedLen = Len(strFormatted) intPos = intPos + intMAX_WIDTH intTabPos = intPos - intFormattedLen picReport.Print Tab(intTabPos); strFormatted; Print #intOutFileNum, Tab(intTabPos); strFormatted; Next intWkIndx strFormatted = FormatCurrency(curSalesRepTot(intRepIndx)) intFormattedLen = Len(strFormatted) intPos = intPos + intMAX_WIDTH intTabPos = intPos - intFormattedLen picReport.Print Tab(intTabPos); strFormatted Print #intOutFileNum, Tab(intTabPos); strFormatted Next intRepIndx strFormatted = "Total Sales" intPos = intMAX_WIDTH picReport.Print strFormatted; Print #intOutFileNum, strFormatted; For intWkIndx = 1 To intMAX_WKS strFormatted = FormatCurrency(curWkSalesTot(intWkIndx)) intFormattedLen = Len(strFormatted) intPos = intPos + intMAX_WIDTH intTabPos = intPos - intFormattedLen picReport.Print Tab(intTabPos); strFormatted; Print #intOutFileNum, Tab(intTabPos); strFormatted; Next intWkIndx strFormatted = FormatCurrency(curSalesGrandTot) intFormattedLen = Len(strFormatted) intPos = intPos + intMAX_WIDTH intTabPos = intPos - intFormattedLen picReport.Print Tab(intTabPos); strFormatted Print #intOutFileNum, Tab(intTabPos); strFormatted End Sub Private Sub btnEnd_Click() Close ' Shell "C:\WinNT\notepad.exe " & App.Path & "\SalesInfo.txt" Shell "C:\Windows\notepad.exe " & App.Path & "\SalesInfo.txt" End End Sub