Dim lviCurrentPort As New ListViewItem
Dim dblTotalValue As Double = 0
Dim strTicker, strPrice, strShares, strBasis, strValue, strTotalValue, strTickerList As String
Dim dblPrice, dblshares, dblBasis, dblValue As Double
Dim intStockCOunt, intListCount As Integer
Dim exactMatch As Boolean
Dim intRow As Integer = 0
' If the user leaves one of the fields blank, it will produce an error and give focus to that specific
' field.
Private Sub btnAddStock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddStock.Click
If txtTicker.Text = "" Then
MessageBox.Show("Oops.. you left Ticker blank", "Ticker Blank")
txtTicker.Focus()
ElseIf txtShares.Text = "" Then
MessageBox.Show("Oops..you left Shares blank", "Shares Blank")
txtShares.Focus()
ElseIf txtPrice.Text = "" Then
MessageBox.Show("Oops..you left Price blank", "Price Blank")
txtPrice.Focus()
End If
'Line 510 ensures that the three fields are not blank.
Do While txtTicker.Text <> "" And txtShares.Text <> "" And txtPrice.Text <> ""
' Converts the number entered in the Price field to a double data type.
dblPrice = Convert.ToDouble(txtPrice.Text)
' Converts the number entered in the Shares field to a double data type.
dblshares = Convert.ToDouble(txtShares.Text)
' Creates a variable by multiplying Price * Shares
dblBasis = dblPrice * dblshares
' Creates a variable by multiplying Price & Shares
dblValue = dblPrice * dblshares
' Creates a variable by adding Total Value & Value
dblTotalValue = dblTotalValue + dblValue
' Converts the Basis field to a string
strBasis = Convert.ToString(dblBasis)
' Converts the Value field to a string
strValue = Convert.ToString(dblValue)
' Converts the Total Value field to a string
strTotalValue = Convert.ToString(dblTotalValue)
' Creates a new list view item called lviCurrentPort with the first item
' being the Ticker field.
lviCurrentPort = New ListViewItem(txtTicker.Text)
' Adds the Basis subitem and converts it to a Currency.
lviCurrentPort.SubItems.Add(Format$(strBasis, "Currency"))
' Adds the Shares sub item.
lviCurrentPort.SubItems.Add(txtShares.Text)
' Adds the Price sub item and converts it to a Currency.
lviCurrentPort.SubItems.Add(Format$(txtPrice.Text, "Currency"))
' Adds the Value sub item and converts it to a Currency.
lviCurrentPort.SubItems.Add(Format$(strValue, "Currency"))
' Loop that check each item in the list view box.
intListCount = Convert.ToInt32(lstCurrentPort.Items.Count)
For intRow = 0 To intListCount - 1
' If the text in the Ticker field matches any Item in the list view box, an error
' message will display and focus will be given to the Ticker field.
strTicker = Convert.ToString(txtTicker.Text)
strTickerList = Convert.ToString(lstCurrentPort.Items(intRow).Text)
If strTicker = strTickerList Then
exactMatch = True
Else
exactMatch = False
End If
Next
If exactMatch = True Then
MessageBox.Show("Duplicate Detected")
txtTicker.Focus()
End If
If exactMatch = False Then
' Takes the listviewitem created with all the items & subitems and adds it to the
' List View Box called lstCurrentPort
lstCurrentPort.Items.Add(lviCurrentPort)
' Once a duplicate is not found, these lines of code will run.
txtTotalValue.Text = Format$(strTotalValue, "Currency")
txtTicker.Text = ""
txtShares.Text = ""
txtPrice.Text = ""
' If the lines of code is greater than 10, an error message will display.
If lstCurrentPort.Items.Count > 10 Then
MessageBox.Show("Trial Version only allows 10 entries")
End If
End If
Loop
End Sub