-- 作者:蓝蚂蚁
-- 发布时间:2019/10/17 15:53:00
-- 未找到类型“Table”的公共成员“DataSource”。
窗口中有一按钮,其代码如下:
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掉提示错误窗口后,再次点击这个按钮则能正常生成数据,何解?
|
-- 作者:有点蓝
-- 发布时间:2019/10/17 15:55:00
--
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.buildDataSource() End If
|