以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 获取选取页面集合的页面名称 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170226) |
-- 作者:采菊东篱下 -- 发布时间:2021/7/17 10:00:00 -- 获取选取页面集合的页面名称 如图,我想获取其中一个页面集合的名称,如何用通用代码显示,不用一个个列出。 比如希望这个TabControl1随选取页面不同而变化 Dim tc As WinForm.TabControl = e.Form.Controls("TabControl1") Dim dt As DataTable = DataTables(tc.SelectedPage.Name) |
-- 作者:有点蓝 -- 发布时间:2021/7/17 10:38:00 -- 还不如直接使用currenttable msgbox(currenttable.Name)
|
-- 作者:采菊东篱下 -- 发布时间:2021/7/17 10:57:00 -- Select Case e.StripItem.Name Case "删除行" Dim dt As DataRow = DataTables("资产").SQLFind("[科目名称] = \'" & CurrentTable.Current("科目名称") & "\' And [已审核] = True") Dim dr As DataRow = DataTables("财务数据源").SQLFind("[科目名称] = \'" & CurrentTable.Current("科目名称")) If dt Is Nothing And dr Is Nothing Then Dim Result As DialogResult Result = MessageBox.Show("是否确定要删除此单?","提示",MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.Yes Then CurrentTable.Current.Delete() Else Return End If Else MessageBox.show("该科目含已审核初始数据,不能删除该行.") End If End Select 我主要是不想重复红色代码,它的名称表名就是页面集合的页名,这里不能用CurrentTable。
|
-- 作者:采菊东篱下 -- 发布时间:2021/7/17 11:05:00 -- 删除行有点选动作还可以用这个,批量审核上面的所有表就不能用currenttable.Name这个了吧?因为根本没确定哪个表。 Select Case e.StripItem.Name Case "审核" \'保存代码 Dim r As DataRow = DataTables(CurrentTable.Name).Find("[初始余额] Is not null") If r IsNot Nothing Then If User.IsRole("审核") Then r("审核人") = User.Name r("已审核") = True Else MessageBox.show("你无权审批!") End If End If DataTables(CurrentTable.Name).Save() End Select |
-- 作者:有点蓝 -- 发布时间:2021/7/17 11:07:00 -- 窗口全局enter事件 If Typeof e.sender Is WinForm.TabControl Then \'判断控件是否是文本框 Dim t As WinForm.TabControl = e.sender \'使用特定类型的变量引用控件 vars("a") = t.SelectedPage.text End If 调用 if vars("a") > "" then Select Case e.StripItem.Name Case "删除行" Dim dt As DataRow = DataTables(vars("a")).SQLFind("[科目名称] = \'" & CurrentTable.Current("科目名称") & "\' And [已审核] = True") |
-- 作者:采菊东篱下 -- 发布时间:2021/8/26 10:31:00 -- 因为没有点选动作,在AfterClose事件这样写,能不能简化这段代码,不要重复。 DataTables("资产").AllowEdit = True DataTables("资产").DeleteFor("[科目代码] = \'资产总计\'") DataTables("资产").Save() DataTables("资产").AllowEdit = False DataTables("共同").AllowEdit = True DataTables("共同").DeleteFor("[科目代码] = \'共同总计\'") DataTables("共同").Save() DataTables("共同").AllowEdit = False DataTables("成本").AllowEdit = True DataTables("成本").DeleteFor("[科目代码] = \'成本总计\'") DataTables("成本").DeleteFor("[科目代码] = \'资产共同成本总计\'") DataTables("成本").Save() DataTables("成本").AllowEdit = False DataTables("负债").AllowEdit = True DataTables("负债").DeleteFor("[科目代码] = \'负债总计\'") DataTables("负债").Save() DataTables("负债").AllowEdit = False DataTables("所有者权益").AllowEdit = True DataTables("所有者权益").DeleteFor("[科目代码] = \'所有者权益总计\'") DataTables("所有者权益").Save() DataTables("所有者权益").AllowEdit = False DataTables("损益").AllowEdit = True DataTables("损益").DeleteFor("[科目代码] = \'损益总计\'") DataTables("损益").DeleteFor("[科目代码] = \'负债和所有者权益(或股东权益)总计\'") DataTables("损益").Save() DataTables("损益").AllowEdit = False
[此贴子已经被作者于2021/8/26 10:34:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/8/26 10:43:00 -- dim sr() as string = {"损益","所有者权益",.........} for each s as string in sr DataTables(s).DeleteFor("[科目代码] = \'" & s & "总计\'") DataTables(s).save next DataTables("成本").DeleteFor("[科目代码] = \'资产共同成本总计\'") DataTables("成本").save DataTables("损益").DeleteFor("[科目代码] = \'负债和所有者权益(或股东权益)总计\'") DataTables("损益").save
|
-- 作者:采菊东篱下 -- 发布时间:2021/8/26 10:46:00 -- 表是锁定的,不解锁能直解删除保存吗? |
-- 作者:有点蓝 -- 发布时间:2021/8/26 10:54:00 -- 测试一下不就知道了。AllowEdit 锁定只是不能直接到单元格编辑,不影响使用代码控制表格的数据 |