All pastes #899042 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-10 20:42 UTC
rendered paste body
Public Class Form1

    Dim dblresults(9) As Double
    Dim strtagindex(9) As String
    Dim strErrMsg As String = "Invalid Input" & vbCrLf & vbCrLf & "Please make sure you have filled in the values properly"
    Dim strFractional As String = "/"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer = 0
        Dim intarrGasLevel As Integer()
        Dim strarrGasLevel As String()
        Dim dblGasFraction As Double = 0
        ' Check for valid dates and fractions
        Try
            If Not IsDate(Me.txtStartDate.Text) Or Not IsDate(Me.txtEndDate.Text) Or Not IsNumeric(Me.txtStartMileage.Text) Or Not IsNumeric(Me.txtEndMileage.Text) Then
                MessageBox.Show(strErrMsg)
                Exit Sub
            End If
            'Check for negative mileage and negative date
            If CInt(Me.txtStartMileage.Text) > CInt(Me.txtEndMileage.Text) Or CDate(Me.txtStartDate.Text) > CDate(Me.txtEndDate.Text) Then
                MessageBox.Show(strErrMsg)
                Exit Sub
            End If
            If Me.txtGasGauge.Text.Contains(strFractional) Then
                'Gas Indicator is a fraction
                strarrGasLevel = Me.txtGasGauge.Text.Split(strFractional)
                ReDim intarrGasLevel(strarrGasLevel.GetUpperBound(0))
                For Each s As String In strarrGasLevel
                    'Check for multiple / values in the text and for non-numeric values
                    If i > 1 Or Not IsNumeric(strarrGasLevel(i)) Then
                        MessageBox.Show(strErrMsg)
                        Exit Sub
                    End If
                    intarrGasLevel(i) = CInt(strarrGasLevel(i))
                    i = i + 1
                Next
                'Check for a valid fraction
                If intarrGasLevel(0) > intarrGasLevel(1) Then
                    MessageBox.Show(strErrMsg)
                    Exit Sub
                End If
                dblGasFraction = intarrGasLevel(0) / intarrGasLevel(1)
            Else
                'Gas Indicator must not be a fraction
                If Not IsNumeric(Me.txtGasGauge.Text) Or CInt(Me.txtGasGauge.Text) <> 1 Then
                    MessageBox.Show(strErrMsg)
                    Exit Sub
                End If
                dblGasFraction = CDbl(Me.txtGasGauge.Text)
            End If
            dblresults = calcrates(CDate(Me.txtStartDate.Text), CDate(Me.txtEndDate.Text), CLng(Me.txtStartMileage.Text), CLng(Me.txtEndMileage.Text), dblGasFraction)
            displayresults()

        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End Sub
    Private Sub displayresults()
        For Each c As Control In Me.pnlResults.Controls
            If c.Tag <> "" Then
                If c.Tag.ToString.Contains("CHARGE") Or c.Tag.ToString.Contains("PRICE") Then
                    c.Text = dblresults(Array.IndexOf(strtagindex, c.Tag)).ToString("c")
                Else
                    c.Text = dblresults(Array.IndexOf(strtagindex, c.Tag))
                End If
            End If
        Next
    End Sub

    Private Sub buildindex()
        Dim i As Integer = 0
        For Each s As String In strtagindex
            Select Case i
                Case 0
                    strtagindex(i) = "WEEKS"
                Case 1
                    strtagindex(i) = "DAYS"
                Case 2
                    strtagindex(i) = "MILES"
                Case 3
                    strtagindex(i) = "OVERAGE"
                Case 4
                    strtagindex(i) = "GALTOFILL"
                Case 5
                    strtagindex(i) = "PRICEPERGAL"
                Case 6
                    strtagindex(i) = "BASECHARGE"
                Case 7
                    strtagindex(i) = "MILESCHARGE"
                Case 8
                    strtagindex(i) = "GASCHARGE"
                Case 9
                    strtagindex(i) = "TOTALCHARGE"
            End Select
            i = i + 1
        Next
    End Sub

    Public Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        buildindex()
        ' Add any initialization after the InitializeComponent() call.
    End Sub

End Class