Foxtable(狐表)用户栏目专家坐堂 → 获取选取页面集合的页面名称


  共有2785人关注过本帖树形打印复制链接

主题:获取选取页面集合的页面名称

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
获取选取页面集合的页面名称  发帖心情 Post By:2021/7/17 10:00:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210717095230.png
图片点击可在新窗口打开查看
  如图,我想获取其中一个页面集合的名称,如何用通用代码显示,不用一个个列出。
比如希望这个TabControl1随选取页面不同而变化
Dim tc As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim dt As DataTable = DataTables(tc.SelectedPage.Name)

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108865 积分:553868 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/17 10:38:00 [只看该作者]

还不如直接使用currenttable

msgbox(currenttable.Name)

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By: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。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By: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

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108865 积分:553868 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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")

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108865 积分:553868 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/8/26 10:46:00 [只看该作者]

表是锁定的,不解锁能直解删除保存吗?

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108865 积分:553868 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/26 10:54:00 [只看该作者]

测试一下不就知道了。AllowEdit 锁定只是不能直接到单元格编辑,不影响使用代码控制表格的数据

 回到顶部