请教老师:在窗体上建立了一个按钮,代码如下,单击后执行没有问题,但窗口执行完后自动关闭,没有关闭窗口的命令,请老师看看代码有什么问题,请指教!
Dim y As Integer = e.Form.Controls("年度").text
Dim m As Integer = e.Form.Controls("月份").text
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y,m)) '获取该月的最后一天
Dim Filter As String
Filter = "登记日期>= '" & dt1 & "' And 登记日期<= '" & dt2 & "'"
Tables("轧胶绩效_Table1").DataTable.LoadFilter = Filter
Tables("轧胶绩效_Table1").DataTable.Load
Dim dt As DataTable
Dim dtb As New DataTableBuilder("计件工资")
dtb.AddDef("年度", Gettype(String), 16)
dtb.AddDef("月份", Gettype(String), 16)
dtb.AddDef("姓名", Gettype(String), 16)
'dtb.AddDef("登记日期", Gettype(String), 16)
dtb.AddDef("小计", Gettype(Double))
dt = dtb.Build()
Dim lst As New Dictionary(of String ,DataRow) '定义一个字典,用于检索每个员工在统计表中对应的行
For Each dr1 As DataRow In Tables("轧胶绩效_Table1").DataTable.DataRows
If dr1.IsNull("姓名") = False Then '如果工号列不为空
Dim nms() As String = dr1("姓名").Split(",") '将工号列内容拆分成数组
Dim v As Double = dr1("小计") / nms.Length '获得平均之后每个工号的生产数量
For Each nm As String In nms '遍历参与加工此产品的每个工号
Dim dr2 As DataRow
If lst.ContainsKey(nm) '如果集合中包括此工号对应的行
dr2= lst(nm) '将此行赋值给变量dr2
Else
dr2 = dt.AddNew() '否则增加一行.
dr2("年度") = y
dr2("月份") = m
dr2("姓名") = nm '新增行的工号列设置为此工号
lst.add(nm,dr2) '将新增行添加到字典中,以便接下来检索
End If
dr2("小计") = dr2("小计") + v '加上平均后的产量
Next
End If
Next
Dim Cols1() As String = {"年度","月份","姓名","小计"}
Dim Cols2() As String = {"年度","月份","姓名","月绩效"}
For Each ddr1 As DataRow In DataTables("计件工资").Select("[小计] > 0")
Dim ddr2 As DataRow =Tables("轧胶绩效_Table2").DataTable.AddNew()
For i As Integer = 0 To Cols1.Length -1
ddr2(Cols2(i)) = ddr1(Cols1(i))
Next
Next
DataTables("绩效工资").Save()