以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 共用窗口的动态加载 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=175575) |
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 11:26:00 -- 共用窗口的动态加载 我想做一个共用选单窗口,凭证的金额列做一个共用的选单窗口,当选单窗口在收款凭证中打开,选单窗口只加载出纳数据记账源的未审核的收款数据,我把选单窗口的表类型设为SQLTable,分别用SQLCommand方法(注识的代码),及现在的在Select语句中写入:Select [_Identify],前辍,出纳账安日期生成单号辅助列,摘要,会计科目,明细科目,币种,汇率,借方_外币金额,借方_金额,贷方_外币金额,贷方_金额 fr om {出纳数据记账源} Where [_Identify] Is Null,然后在窗口的Afterload事件写入下面的代码,均没生成加载数据,现在的方法还直接报错: With Tables("会计选出纳账数据_Table1") For a As Integer = .Rows.count - 1 To 0 Step -1 .Rows(a).Delete Next If e.Form.DropTable IsNot Nothing Then Select Case e.Form.DropTable.Name ...... Case "收款凭证_Table1" \'Dim cmd1 As New SQLCommand \'Dim dt1 As DataTable If (Forms("收款凭证").Controls("TextBox2").Text).SubString(0,2) = "现收" Then .DataTable.LoadFilter = "[前缀] = \'XS\' And ([已审核] = False Or [已审核] Is Null)" .DataTable.Load \'cmd1.CommandText = "Select [_Identify],前辍,出纳账安日期生成单号辅助列,摘要,会计科目,明细科目,币种,汇率,借方_外币金额,借方_金额 fr om {出纳数据记账源} Where [前辍] = \'现收\' And ([已审核] = False Or [已审核] Is Null)" \'dt1 = cmd1.ExecuteReader(True) \'.DataSource = dt .DataSource = DataTables("出纳数据记账源") ElseIf (Forms("收款凭证").Controls("TextBox2").Text).SubString(0,2) = "银收" Then .DataTable.LoadFilter = "[前缀] = \'YS\' And ([已审核] = False Or [已审核] Is Null)" .DataTable.Load \'cmd1.CommandText = "Select [_Identify],前辍,出纳账安日期生成单号辅助列,摘要,会计科目,明细科目,币种,汇率,借方_外币金额,借方_金额 fr om {出纳数据记账源} Where [前辍] = \'银收\' And ([已审核] = False Or [已审核] Is Null)" \'dt1 = cmd1.ExecuteReader(True) \'.DataSource = dt .DataSource = DataTables("出纳数据记账源") End If If DataTables("会计选出纳账数据_Table1").DataRows.Count > 0 Then Dim ckb As DataTable = e.Form.Controls("Table1").Table.DataTable If ckb.DataCols.Contains("外币未选余额") = False And ckb.DataCols.Contains("未选余额") = False And ckb.DataCols.Contains("本次外币录入金额") = False And ckb.DataCols.Contains("本次录入金额") = False Then ckb.DataCols.add("外币未选余额", Gettype(Double)) ckb.DataCols.add("未选余额", Gettype(Double)) ckb.DataCols.add("本次外币录入金额", Gettype(Double)) ckb.DataCols.add("本次录入金额", Gettype(Double)) End If DataTables("会计选出纳账数据_Table1").DataCols("借方_外币金额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("借方_金额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("贷方_外币金额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("贷方_金额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("外币未选余额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("未选余额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("本次外币录入金额").SetFormat("#,###.##") DataTables("会计选出纳账数据_Table1").DataCols("本次录入金额").SetFormat("#,###.##") If Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").Controls("ComboBox2").Items(0) Then .SetColVisibleWidth("前辍|40|出纳账安日期生成单号辅助列|100|摘要|250|会计科目|80|明细科目|150|借方_金额|80|未选余额|80|本次录入金额|80") .DataTable.DataCols("本次录入金额").AllowEdit = True ElseIf Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").Controls("ComboBox2").Items(1) Then .SetColVisibleWidth("前辍|40|出纳账安日期生成单号辅助列|100|摘要|250|会计科目|80|明细科目|150|币种|50|汇率|60|借方_外币金额|80|借方_金额|80|外币未选余额|80|未选余额|80|本次外币录入金额|80|本次录入金额|80") .DataTable.DataCols("本次外币录入金额").AllowEdit = True .DataTable.DataCols("本次录入金额").AllowEdit = True End If .AutoSizeRows .SetHeaderRowHeight(0,40) End If End Select End If End With [此贴子已经被作者于2022/3/10 13:00:59编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/3/10 11:44:00 -- 列名,表名有问题。放到执行sql窗口测试有没有问题?http://www.foxtable.com/webhelp/topics/1484.htm Select [_Identify],前辍,出纳账安日期生成单号辅助列,摘要,会计科目,明细科目,币种,汇率,借方_外币金额,借方_金额 from {出纳数据记账源} Where [前辍] = \'现收\' And ([已审核] = False Or [已审核] Is Null)
|
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 11:59:00 -- 把前缀的缀字改过来依然报错: .NET Framework 版本:4.0.30319.18063 Foxtable 版本:2022.1.30.2 错误所在事件:AfterLoad 详细错误信息: Object reference not set to an instance of an object. 关闭提示窗口后再弹一个提示窗口: 关闭这个提示显示: .NET Framework 版本:4.0.30319.18063 Foxtable 版本:2022.1.30.2 错误所在事件:DropDownOpened 详细错误信息: Object reference not set to an instance of an object. [此贴子已经被作者于2022/3/10 12:00:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/3/10 12:08:00 -- DataTables("会计选出纳账数据_Table1") 改为 Tables("会计选出纳账数据_Table1").datatable
|
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 14:15:00 -- 总是提示错,我看不出错在哪!眼都晕了! With Tables("会计选出纳账数据_Table1") For a As Integer = .Rows.count - 1 To 0 Step -1 .Rows(a).Delete Next If e.Form.DropTable IsNot Nothing Then Select Case e.Form.DropTable.Name ...... Case "收款凭证_Table1" If (Forms("收款凭证").Controls("TextBox2").Text).SubString(0,2) = "现收" Then .DataTable.LoadFilter = "[前缀] = \'XS\' And ([已审核] = False Or [已审核] Is Null)" .DataTable.Load .DataSource = DataTables("出纳数据记账源") ElseIf (Forms("收款凭证").Controls("TextBox2").Text).SubString(0,2) = "银收" Then .DataTable.LoadFilter = "[前缀] = \'YS\' And ([已审核] = False Or [已审核] Is Null)" .DataTable.Load .DataSource = DataTables("出纳数据记账源") End If If DataTables("会计选出纳账数据_Table1").DataRows.Count > 0 Then Dim ckb As DataTable = e.Form.Controls("Table1").Table.DataTable If ckb.DataCols.Contains("外币未选余额") = False And ckb.DataCols.Contains("未选余额") = False And ckb.DataCols.Contains("本次外币录入金额") = False And ckb.DataCols.Contains("本次录入金额") = False Then ckb.DataCols.add("外币未选余额", Gettype(Double)) ckb.DataCols.add("未选余额", Gettype(Double)) ckb.DataCols.add("本次外币录入金额", Gettype(Double)) ckb.DataCols.add("本次录入金额", Gettype(Double)) End If .DataTable.DataCols("借方_外币金额").SetFormat("#,###.##") .DataTable.DataCols("借方_金额").SetFormat("#,###.##") .DataTable.DataCols("贷方_外币金额").SetFormat("#,###.##") .DataTable.DataCols("贷方_金额").SetFormat("#,###.##") .DataTable.DataCols("外币未选余额").SetFormat("#,###.##") .DataTable.DataCols("未选余额").SetFormat("#,###.##") .DataTable.DataCols("本次外币录入金额").SetFormat("#,###.##") .DataTable.DataCols("本次录入金额").SetFormat("#,###.##") If Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").Controls("ComboBox2").Items(0) Then .SetColVisibleWidth("前辍|40|出纳账安日期生成单号辅助列|100|摘要|250|会计科目|80|明细科目|150|借方_金额|80|未选余额|80|本次录入金额|80") .DataTable.DataCols("本次录入金额").AllowEdit = True ElseIf Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").Controls("ComboBox2").Items(1) Then .SetColVisibleWidth("前辍|40|出纳账安日期生成单号辅助列|100|摘要|250|会计科目|80|明细科目|150|币种|50|汇率|60|借方_外币金额|80|借方_金额|80|外币未选余额|80|未选余额|80|本次外币录入金额|80|本次录入金额|80") .DataTable.DataCols("本次外币录入金额").AllowEdit = True .DataTable.DataCols("本次录入金额").AllowEdit = True End If .AutoSizeRows .SetHeaderRowHeight(0,40) End If End Select End If End Wit |
-- 作者:有点蓝 -- 发布时间:2022/3/10 14:27:00 -- 去掉.DataSource = DataTables("出纳数据记账源") 还有DataTables("会计选出纳账数据_Table1")没改
|
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 16:10:00 -- 改为这样没有数据显示 With Tables("会计选出纳账数据_Table1") For a As Integer = .Rows.count - 1 To 0 Step -1 .Rows(a).Delete Next If e.Form.DropTable IsNot Nothing Then Select Case e.Form.DropTable.Name ...... Case "收款凭证_Table1" If (Forms("收款凭证").Controls("TextBox2").Text).SubString(0,2) = "现收" Then .DataTable.LoadFilter = "[前缀] = \'XS\' And ([已审核] = False Or [已审核] Is Null)" .DataTable.Load ElseIf (Forms("收款凭证").Controls("TextBox2").Text).SubString(0,2) = "银收" Then .DataTable.LoadFilter = "[前缀] = \'YS\' And ([已审核] = False Or [已审核] Is Null)" .DataTable.Load End If If .DataTable.DataRows.Count > 0 Then Dim ckb As DataTable = e.Form.Controls("Table1").Table.DataTable If ckb.DataCols.Contains("外币未选余额") = False And ckb.DataCols.Contains("未选余额") = False And ckb.DataCols.Contains("本次外币录入金额") = False And ckb.DataCols.Contains("本次录入金额") = False Then ckb.DataCols.add("外币未选余额", Gettype(Double)) ckb.DataCols.add("未选余额", Gettype(Double)) ckb.DataCols.add("本次外币录入金额", Gettype(Double)) ckb.DataCols.add("本次录入金额", Gettype(Double)) End If .DataTable.DataCols("借方_外币金额").SetFormat("#,###.##") .DataTable.DataCols("借方_金额").SetFormat("#,###.##") .DataTable.DataCols("贷方_外币金额").SetFormat("#,###.##") .DataTable.DataCols("贷方_金额").SetFormat("#,###.##") .DataTable.DataCols("外币未选余额").SetFormat("#,###.##") .DataTable.DataCols("未选余额").SetFormat("#,###.##") .DataTable.DataCols("本次外币录入金额").SetFormat("#,###.##") .DataTable.DataCols("本次录入金额").SetFormat("#,###.##") If Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").Controls("ComboBox2").Items(0) Then .SetColVisibleWidth("前辍|40|出纳账安日期生成单号辅助列|100|摘要|250|会计科目|80|明细科目|150|借方_金额|80|未选余额|80|本次录入金额|80") .DataTable.DataCols("本次录入金额").AllowEdit = True ElseIf Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").Controls("ComboBox2").Items(1) Then .SetColVisibleWidth("前辍|40|出纳账安日期生成单号辅助列|100|摘要|250|会计科目|80|明细科目|150|币种|50|汇率|60|借方_外币金额|80|借方_金额|80|外币未选余额|80|未选余额|80|本次外币录入金额|80|本次录入金额|80") .DataTable.DataCols("本次外币录入金额").AllowEdit = True .DataTable.DataCols("本次录入金额").AllowEdit = True End If .AutoSizeRows .SetHeaderRowHeight(0,40) End If End Select End If End Wit |
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 16:18:00 -- 哦,明白了,刚才绑定表时把数据源的数据全删了! |
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 21:10:00 -- 我重新录入了一次出纳数据记账源表的数据,刚打开下拉选单窗口时看到有数据,紧跟着下拉窗口中的数据自动被删除了,连出纳数据记账源表的数据中的数据也被删了! |
-- 作者:采菊东篱下 -- 发布时间:2022/3/10 21:13:00 -- 是不是一开始的这段代码把所有数据删了?但这是SQLTable类型窗口,应该是副本,原表数据为什么被删除? With Tables("会计选出纳账数据_Table1") For a As Integer = .Rows.count - 1 To 0 Step -1 .Rows(a).Delete Next
[此贴子已经被作者于2022/3/11 11:33:16编辑过]
|