I need help creating a batch of Grand Totals each time enter my value and click Calculate.
The code below gives me my Grand Total, now I would like to enter a new set of values and store the previous amount(s) until I'm ready to populate them in a Message Box. Any Suggestions! Thanks!

Public Class frmTotalDailySales
    Dim ItemCost() As Decimal = {12D, 17.95D, 95D, 86.5D, 78D}

    Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click

        Dim SoldItems(,) As Integer = New Integer(,) {{txtS1I1.Text, txtS1I2.Text, txtS1I3.Text, txtS1I4.Text, txtS1I5.Text}, _
                                {txtS2I1.Text, txtS2I2.Text, txtS2I3.Text, txtS2I4.Text, txtS2I5.Text}, _
                                {txtS3I1.Text, txtS3I2.Text, txtS3I3.Text, txtS3I4.Text, txtS3I5.Text}}

        Dim totals(,) As Decimal = Calculate(SoldItems, ItemCost)
    End Sub

    Private Function Calculate(ByVal SoldItems(,) As Integer, ByVal itemCost() As Decimal) As Decimal(,)

        Dim SalesRevenue(SoldItems.GetUpperBound(0), SoldItems.GetUpperBound(1)) As Decimal
        Dim strItemsSold As String = ""
        Dim totals(SoldItems.GetUpperBound(0)) As Decimal

        For r As Integer = 0 To SoldItems.GetUpperBound(0)
            For c As Integer = 0 To SoldItems.GetUpperBound(1)
                SalesRevenue(r, c) = CDec(SoldItems(r, c) * itemCost(c))
                strItemsSold &= FormatCurrency(SalesRevenue(r, c), 2) & vbTab
                totals(r) += SalesRevenue(r, c)
            strItemsSold &= vbCrLf & vbCrLf
            txtTotalStoreSales1.Text = FormatCurrency(totals(0).ToString, 2)
            txtTotalStoreSales2.Text = FormatCurrency(totals(1).ToString, 2)
            txtTotalStoreSales3.Text = FormatCurrency(totals(2).ToString, 2)

        Dim sum As Decimal = 0
        For Each total As Decimal In totals
            sum += total
        txtDailyTotal.Text = FormatCurrency(sum, 2)

        MessageBox.Show(strItemsSold, "Daily Sales Revenue")

        Return SalesRevenue
    End Function

A suggestion:
Add a class variable of type List(Of Object).
For each time you press the btnCalculate button you add totals(,) to that variable.
Then iterate through the list and add it's content to a string variable that you display in a MessageBox.


Private Sub example()
            Dim values As New List(Of Object)
            Dim text As String = ""

            For Each item As Decimal In values
                text &= item.ToString & vbCrLf
        End Sub
This article has been dead for over six months. Start a new discussion instead.