窗口中有一按钮,其代码如下:
Dim s1 As String=e.Form.controls("TextBox7").text
If s1<>"" Then
If Tables.Contains("前计划未送临时表")=True Then
DataTables("前计划未送临时表").DataRows.Clear
e.Form.controls("Table3").Table.DataSource = DataTables("前计划未送临时表")
Else
Dim dt As New DataTableBuilder("前计划未送临时表")
dt.AddDef("计划日期", Gettype(Date))
dt.AddDef("中标号或编号", Gettype(String),12)
dt.AddDef("通用名称", Gettype(String), 50)
dt.AddDef("规格型号", Gettype(String), 50)
dt.AddDef("生产企业", Gettype(String), 50)
dt.AddDef("单位", Gettype(String), 6)
dt.addDef("相差辅助列", Gettype(Integer))
dt.addDef("配送公司", Gettype(String), 30)
dt.build()
e.Form.controls("Table3").DataSource =dt.build()
End If
Dim Filter As String
Filter ="isnull([数量],0)<>isnull([来货数量],0)"
If e.form.controls("Table2").Table.DataTable.DataCols.Contains("相差辅助列")=False Then
e.form.controls("Table2").Table.DataTable.DataCols.Add("相差辅助列", Gettype(Integer))
End If
Dim krk As String =e.Form.Controls("TextBox7").Text '入库日期
Dim zrk As String =e.Form.Controls("TextBox8").Text
Dim d1 As Date
Dim d2 As Date
If krk<>"" Then
If krk.Length=8 Then
d1 = new Date(krk.SubString(0,4), krk.SubString(4,2), krk.SubString(6,2)) '具体到某天开始
ElseIf krk.Length=6
d1 = new Date(krk.SubString(0,4), krk.SubString(4,2), 1) '月份的第一天开始
ElseIf krk.Length=4
d1 = new Date(krk.SubString(0,4),1, 1) '月份的第一天开始
End If
End If
If krk="" Then
zrk =""
Else
If zrk<>"" Then
If zrk.Length=8 Then
d2 = new Date(zrk.SubString(0,4), zrk.SubString(4,2),zrk.SubString(6,2)) '具体到某天开始
d2=d2.adddays(1)
ElseIf zrk.Length=6
d2 = new Date(zrk.SubString(0,4), zrk.SubString(4,2), 1) '月份的第一天开始
d2=d2.addmonths(1)
ElseIf zrk.Length=4
d2 = new Date(zrk.SubString(0,4),1, 1) '月份的第一天开始
d2=d2.addyears(1)
End If
Else
If krk.Length=8 Then
d2=d1.adddays(1)
ElseIf krk.Length=6
d2=d1.addmonths(1)
ElseIf krk.Length=4
d2=d1.addyears(1)
End If
End If
End If
If krk<>"" Then
If Filter > "" Then
Filter = Filter & " And "
End If
Filter = Filter & "(计划日期>=#" & d1 & "# and 计划日期<#" & d2 & "#)"
End If
With e.Form.Controls("DropBox1")
If .Value IsNot Nothing Then
If Filter > "" Then
Filter = Filter & " And "
End If
Filter = Filter & "配送公司 Like '%" & .Value & "%'"
End If
End With
Dim t As Table=e.Form.controls("Table2").Table
t.filter=filter
Dim dcs As List(Of DataRow) =DataTables("采购计划总表").Select(t.filter)
For Each dc As DataRow In dcs
If dc("相差")=Nothing Then
dc("相差辅助列")=-dc("数量")
ElseIf dc("相差")<0
dc("相差辅助列")=dc("相差")
End If
Next
e.form.controls("Table2").Table.Cols("相差辅助列").visible=True
e.form.controls("Table2").Table.Cols("相差辅助列").Move(13)
t.Filter =(iif(t.filter>"", t.filter, "1=1") & " And 相差辅助列 Is not null")
Dim drs As List(Of DataRow) =e.Form.controls("Table2").Table.DataTable.Select(t.filter)
For Each dr As DataRow In drs
Dim r As DataRow= DataTables("前计划未送临时表").AddNew()
'r("登记日期")=Today()
r("计划日期")=dr("计划日期")
r("中标号或编号")=dr("中标号或编号")
r("通用名称")=dr("通用名称")
r("规格型号")=dr("规格型号")
r("生产企业")=dr("生产企业")
r("单位")=dr("单位")
r("相差辅助列")=dr("相差辅助列")
r("配送公司")=dr("配送公司")
Next
e.Form.controls("Table3").Table.AutoSizeCols()
Forms("某计划未发登记主窗口").Controls("TabControl1").SelectedIndex = 2
Else
MessageBox.Show("开始日期未填写,故未能生成数据!","提示")
End If
打开项目后,第一次点击这个按钮提示:
.NET Framework 版本:4.0.30319.1
Foxtable 版本:2019.6.18.1
错误所在事件:窗口,某计划未发登记主窗口,Button6,Click
详细错误信息:
未找到类型“Table”的公共成员“DataSource”。
X掉提示错误窗口后,再次点击这个按钮则能正常生成数据,何解?