Foxtable(狐表)用户栏目专家坐堂 → 窗口工具条 代码优化指导!谢谢!


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

主题:窗口工具条 代码优化指导!谢谢!

帅哥哟,离线,有人找我吗?
chen_sheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6101 威望:0 精华:0 注册:2018/5/10 9:05:00
窗口工具条 代码优化指导!谢谢!  发帖心情 Post By:2019/8/15 11:36:00 [只看该作者]

初学狐表  代码只是考虑实现功能  结果发现代码臃肿不堪
有些理念请教
1、自定义窗口按钮工具条和权限配合如何优化
2、每个窗口打开执行这个工具条的代码有没有好的方式  譬如自定义函数 或者变量什么的  咋样实现最优 效率更高

Dim gxz As Boolean '工具 新增
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "S ELECT 新增  FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gxz =cmd.ExecuteScalar()
If gxz = True Then
        e.Form.Controls("GFxz").Enabled= True
Else
        e.Form.Controls("GFxz").Enabled= False
End If

Dim gxg As Boolean '工具 修改
cmd.CommandText = "S ELECT 修改 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gxg =cmd.ExecuteScalar()
If gxg = True Then
       e.Form.Controls("GFxg").Enabled= True
Else
      e.Form.Controls("GFxg").Enabled= False
End If

Dim gbc As Boolean '工具 保存
cmd.CommandText = "S ELECT 保存 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gbc =cmd.ExecuteScalar()
If gbc = True Then
       e.Form.Controls("GFbc").Enabled= True
Else
       e.Form.Controls("GFbc").Enabled= False
End If
Dim gsx As Boolean '工具 刷新
cmd.CommandText = "S ELECT 刷新 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gsx =cmd.ExecuteScalar()
If gsx = True Then
       e.Form.Controls("GFsx").Enabled= True
Else
   e.Form.Controls("GFsx").Enabled= False
End If
Dim gsc As Boolean '工具 删除
cmd.CommandText = "S ELECT 删除 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gsc =cmd.ExecuteScalar()
If gsc = True Then
       e.Form.Controls("GFsc").Enabled= True
Else
       e.Form.Controls("GFsc").Enabled= False
End If
Dim gyl As Boolean '工具 预览
cmd.CommandText = "S ELECT 打印 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gyl =cmd.ExecuteScalar()
If gsc = True Then
       e.Form.Controls("GFyl").Enabled= True
Else
       e.Form.Controls("GFyl").Enabled= False
End If
Dim gdy As Boolean '工具 打印
cmd.CommandText = "S ELECT 打印 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gdy =cmd.ExecuteScalar()
If gdy = True Then
     e.Form.Controls("GFdy").Enabled= True
Else
    e.Form.Controls("GFdy").Enabled= False
End If
Dim gdc As Boolean '工具 导出
cmd.CommandText = "S ELECT 导出 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gdc =cmd.ExecuteScalar()
If gsc = True Then
       e.Form.Controls("GFdc").Enabled= True
Else
       e.Form.Controls("GFdc").Enabled= False
End If
Dim gtj As Boolean '工具 提交
cmd.CommandText = "S ELECT 提交 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gtj =cmd.ExecuteScalar()
If gtj = True Then
     e.Form.Controls("GFtj").Enabled= True
Else
    e.Form.Controls("GFtj").Enabled= False
End If
Dim gsh As Boolean '工具 审核
cmd.CommandText = "S ELECT 审核 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gsh =cmd.ExecuteScalar()
If gtj = True Then
     e.Form.Controls("GFsh").Enabled= True
Else
    e.Form.Controls("GFsh").Enabled= False
End If
Dim gja As Boolean '工具 结案
cmd.CommandText = "S ELECT 结案 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gja =cmd.ExecuteScalar()
If gja = True Then
     e.Form.Controls("GFja").Enabled= True
Else
    e.Form.Controls("GFja").Enabled= False
End If
Dim gft As Boolean '工具 反提
cmd.CommandText = "S ELECT 反提 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gft =cmd.ExecuteScalar()
If gft = True Then
     e.Form.Controls("GFft").Enabled= True
Else
    e.Form.Controls("GFft").Enabled= False
End If
Dim gfs As Boolean '工具 反审
cmd.CommandText = "S ELECT 反审 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gfs =cmd.ExecuteScalar()
If gfs = True Then
     e.Form.Controls("GFfs").Enabled= True
Else
    e.Form.Controls("GFfs").Enabled= False
End If
Dim gcq As Boolean '工具 重启
cmd.CommandText = "S ELECT 重启 FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
gcq =cmd.ExecuteScalar()
If gcq = True Then
     e.Form.Controls("GFcq").Enabled= True
Else
    e.Form.Controls("GFcq").Enabled= False
End If

 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6101 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2019/8/15 11:46:00 [只看该作者]

工具条样板请见下图
图片点击可在新窗口打开查看此主题相关图片如下:工具条窗口.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107847 积分:548592 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 11:58:00 [只看该作者]

比如

cmd.CommandText = "SELECT 新增,修改  FROM [test].[dbo].[userqx] where [账号]= '" & User.name & "' and [窗体名称]= '" & e.Form.Name & "'  "
Dim dt As DataTable =cmd.ExecuteReader()
If dt.DataRows.Count > 0 Then
    Dim dr As DataRow = dt.DataRows(0)
    e.Form.Controls("GFxz").Enabled= dr("新增")
    e.Form.Controls("GFxg").Enabled= dr("修改")
    Return
End If
e.Form.Controls("GFxz").Enabled= False
e.Form.Controls("GFxg").Enabled= False


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


加好友 发短信
等级:超级版主 帖子:107847 积分:548592 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 12:00:00 [只看该作者]

如果把控件名称设置的有规律一点,和列名对应起来,比如GFxz改为GF_新增,GFxg改为GF_修改

还可以

If dt.DataRows.Count > 0 Then
    Dim dr As DataRow = dt.DataRows(0)
    For Each dc As DataCol In dt.DataCols
        e.Form.Controls("GF_" & dc.Name).Enabled= dr(dc.Name)
    Next
    Return
End If

 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6101 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2019/8/15 13:39:00 [只看该作者]

非常感谢 

代码指导学会了  现在是每个窗口打开执行这个工具条的代码有没有好的方式  譬如自定义函数 或者变量什么的  咋样实现最优 效率更高

目前都是复杂臃肿的方式实现  渴望更加简洁的实现方式  谢谢!

狐表内如何实现类似下图  登录就获取了权限信息  打开窗口如何和窗体工具条按钮进行关联呢  这样是不是效率更高呢


图片点击可在新窗口打开查看此主题相关图片如下:权限设计.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107847 积分:548592 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 13:48:00 [只看该作者]

没有办法使用这种用法

 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6101 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2019/8/15 13:52:00 [只看该作者]

如何把表标题颜色跟窗体颜色风格一样你   看起来感受差点

想改颜色部分具体见下图箭头指示

图片点击可在新窗口打开查看此主题相关图片如下:表颜色.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6101 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2019/8/15 13:54:00 [只看该作者]

或者就实现这个风格的界面

图片点击可在新窗口打开查看此主题相关图片如下:操作日志设计.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:107847 积分:548592 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/15 13:55:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6101 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2019/8/15 14:03:00 [只看该作者]

假如想实现上图的配色  如何处理  开发的整个项目都想用这样类似的配色  感谢指导!

 回到顶部
总数 22 1 2 3 下一页