' Load Purchasing screen
    Dim SenderFilter As Object = sqlDB.ExecQueryAsync("SQL", "SELECT * FROM Purchasing", Null)
    Wait For (SenderFilter) SQL_QueryComplete (Success As Boolean, rs As ResultSet)
    If Success Then
        Dim iTag As Int = 1
        Do While rs.NextRow
            Dim PurchaseItem As typPurchase
            PurchaseItem.UnitName = rs.GetString("unitname")
' cost = 30, 12, 15, 15, 3, 4, 4, 6, 5, 10, 11, 12, 20, 16, 12, 8, 6, 7
            PurchaseItem.Cost = rs.GetString("cost")
            lsvPurchasing.Add(CreatePurItem(iTag, lsvPurchasing.AsView.Width, 70dip), PurchaseItem)
            mapIPCExpended.Put(iTag, PurchaseItem.Cost)
            iTag = iTag + 1
        Loop
        rs.Close
    Else
        Log(LastException)
    End If
...
Sub Purchasing_ValueChanged(Value As Object)
    Dim pm As B4XPlusMinus = Sender
    If *increment* Then
         iIPCExpended = iIPCExpended + mapIPCExpended.Get(pm.Tag)
    Else If *decrement* Then
         iIPCExpended = iIPCExpended - mapIPCExpended.Get(pm.Tag)
    End If
    lblIPCExpended.Text = iIPCExpended 
End Sub