每个人,
我一直致力于管理家庭财务的计划。这是我正在编写的一个程序,用于进一步了解VB.NET。到目前为止,一切都很顺利,但我一度陷入困境。我的主窗体中有一个选项卡式视图设置。标签为Bills
,Income
和Summary
。我在最后一个标签上(summary
)。现在我将账单写入文本文件,以下项目由|
分隔。放在文件中的项目是:
Paid To | Date | Amount | Paid By | Confirmation Number | Notes
我的摘要标签上有一个ListView设置。第一列是列出我们支付的账单。剩下的几个月是最后一个月的总数(不用担心那些)。我遇到的问题是在文本文件中搜索当前年份的记录,并列出ListView第一列中的Pay To
。
这是在函数中运行的代码。我调用第二个函数来填充ListView列。
Try
sr = New StreamReader(MainBillsFile, True)
Dim ListBills As New List(Of String)
While (sr.Peek() > -1)
BillitmsSum = sr.ReadLine().Split("|")
Dim dateValue As Date = Date.Parse(BillitmsSum(1))
Dim DateYear As String = dateValue.Year
If DateYear = CurrentYear Then
BillitmPayTo = BillitmsSum(0)
End If
Output_On_Launch_BillSum()
End While
sr.Close()
sr.Dispose()
Catch ex As Exception
MessageBox.Show("Error Reading From File." & ex.Message)
End Try
当程序加载时运行时如下:
假设我在文件2中有4个项目有2015年日期,2个有2014年日期。根据我想要展示的内容(2015年),我得到以下内容
2015 item 1
2015 item 2
2015 item 2
2015 item 2
我认为正在发生的是代码正在查看所有项目(总共4项)并拉动2015年的项目,但填充所有内容都是复制最后一项以匹配文件中的总项目4。
我希望这一切都有道理。这是我在这里的第一篇文章,到目前为止,搜索对我有很大的帮助,但我尝试了很多不同的代码,他们都给出了同样的结果。
这是另一种方法:
Sub Output_On_Launch_BillSum()
Dim LVItem3 As ListViewItem = LVBillSum.Items.Add(BillitmPayTo)
End Sub
答案 0 :(得分:0)
乍一看,只有当账单年份是当前日期时,您才需要调用Output_On_Launch_BillSum()。我需要确定这种方法。
If DateYear = CurrentYear Then
BillitmPayTo = BillitmsSum(0)
Output_On_Launch_BillSum()
End If