Foxtable(狐表)用户栏目专家坐堂 → 关于列设置


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

主题:关于列设置

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
关于列设置  发帖心情 Post By:2019/3/17 23:14:00 [只看该作者]

在列设置此窗体的保存设置按钮写了如下代码,运行后怎么不保存相对应的表呢?

Dim clist As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
For i As Integer = clist.Items.Count - 1 To 0 Step -1
    CurrentTable.Cols(i).Visible = not clist.GetItemChecked(i)
Next
Dim t As WinForm.Table = e.Form.Controls("Table1")
Dim fdr As DataRow = DataTables("列设置").Find("表名 = '" & t.Table.DataTable.Name & "'")
If fdr Is Nothing Then
    fdr = DataTables("列设置").AddNew
    fdr("表名") =t.Table.DataTable.Name
 End If
fdr("列设置") = CurrentTable.GetColVisibleWidth

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列设置 (1).rar



[此贴子已经被作者于2019/3/17 23:15:15编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/18 9:30:00 [只看该作者]

1、你设置了以后,就保存了啊。去你的表格那里看数据;

 

2、你把表名写错了啊

 

Dim bm As String = ""
If sjdcxzb="客户资料窗体" Then
   
ElseIf sjdcxzb="销售窗体" Then
    bm = "入库表"
ElseIf sjdcxzb="出库窗体" Then
    bm = "出库表"
End If

Dim clist As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
For i As Integer = clist.Items.Count - 1 To 0 Step -1
    CurrentTable.Cols(i).Visible = not clist.GetItemChecked(i)
Next
Dim t As Table = Tables(bm)
Dim fdr As DataRow = DataTables("列设置").Find("表名 = '" & t.DataTable.Name & "'")
If fdr Is Nothing Then
    fdr = DataTables("列设置").AddNew
    fdr("表名") =t.DataTable.Name
End If

fdr("列设置") = CurrentTable.GetColVisibleWidth

 

3、各个窗口,在afterload事件,要写设置代码啊,认认真真看懂实例

 

下载信息  [文件大小:328.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:显示隐藏列.table


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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/3/18 22:09:00 [只看该作者]

Dim szldkdysx As WinForm.RadioButton = e.Form.Controls("szldkdysxRadioButton")
Dim liexz As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
Dim t As WinForm.Table = e.Form.Controls("Table1")
If szldkdysx.Checked=True Then
e.Form.Controls("tzlsxGroupBox").Enabled=True
e.Form.Controls("ycyxslGroupBox").Enabled=False
e.Form.Controls("sjldczGroupBox").Enabled=False
 liexz.Value =""
    liexz.SelectedValue=""
End If
Dim s As String
s = ""
For Each c As Col In t.Table.cols
    If c.Visible Then
        s &= c.name & "|"
    End If
Next

liexz.Items.Clear
liexz.ComboList=s

在单选框的CheckedChanged事件中写了如上代码运行后窗体表闪屏的特别厉害怎么处理?
如果改为下面的代码会弹出
SystemReady False
For Each c As Col In t.Table.cols
    If c.Visible Then
        s &= c.name & "|"
    End If
Next
SystemReady = True


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


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

[此贴子已经被作者于2019/3/18 22:19:14编辑过]

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


加好友 发短信
等级:超级版主 帖子:110787 积分:563867 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/18 22:45:00 [只看该作者]

检查,itemcheck事件代码。看那一句代码出错。


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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/3/19 9:28:00 [只看该作者]

不同角色进去后指定列不加载怎么设置?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/19 9:40:00 [只看该作者]

以下是引用裴保民在2019/3/19 9:28:00的发言:
不同角色进去后指定列不加载怎么设置?

 

你的列设置表那里,加入一个【用户】列,填入对应的用户。

 

查找对应用户的数据,设置,即可。

 

不然,你就参考这里处理,如 http://www.foxtable.com/webhelp/scr/1600.htm

 


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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/3/20 0:20:00 [只看该作者]

出现错误对话框看看是哪的错误呢?在单选框的CheckedChanged事件中写了如下代码
Dim ldsxyyc As WinForm.RadioButton = e.Form.Controls("ldxsyycRadioButton")
Dim liexz As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
Dim t As WinForm.Table = e.Form.Controls("Table1")
Dim str As String = ""
If ldsxyyc .Checked=True Then
    e.Form.Controls("tzlsxGroupBox").Enabled=False
    e.Form.Controls("ycyxslGroupBox").Enabled=True
    e.Form.Controls("sjldczGroupBox").Enabled=True
    liexz.Value =""
    liexz.SelectedValue=""
End If
liexz.CheckOnClick=True
Dim dtshb As WinForm.Table = e.Form.Controls("Table1")
For Each c As Col In t.Table.Cols
    If t.Table.DataTable.Name ="客户资料" Then
        If _UserGroup = "数据操作员" Then
            If c.name <> "身份证号" AndAlso c.name <> "客户主手机号" AndAlso  c.name <>"第二手机号" AndAlso c.name <> "第三手机号"  Then
                str &= c.Name & "(" & c.Caption & ")|"
            End If
        ElseIf _UserGroup = "系统管理员" OrElse _UserGroup = "数据管理员"
            If c.name <>"身份证号掩码显示" AndAlso c.name <> "客户主手机号掩码显示" AndAlso c.name <> "第二手机号掩码显示"  AndAlso  c.name <> "第三手机号掩码显示" Then
                str &= c.Name & "(" & c.Caption & ")|"
            End If
          End If
   Else
   str &= c.Name & "(" & c.Caption & ")|"
 End If
Next
e.Form.Controls("lieCheckedListBox").ComboList = str.Trim("|")
'Dim clist As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
   For Each c As Col In t.Table.Cols
   If t.Table.DataTable.Name ="客户资料" Then
        If _UserGroup = "数据操作员" Then
            If c.name <> "身份证号" AndAlso c.name <> "客户主手机号" AndAlso  c.name <>"第二手机号" AndAlso c.name <> "第三手机号"  Then
                liexz .SetItemChecked(c.Index, not c.Visible)
               End If
        ElseIf _UserGroup = "系统管理员" OrElse _UserGroup = "数据管理员"
            If c.name <>"身份证号掩码显示" AndAlso c.name <> "客户主手机号掩码显示" AndAlso c.name <> "第二手机号掩码显示"  AndAlso  c.name <> "第三手机号掩码显示" Then
                 liexz .SetItemChecked(c.Index, not c.Visible)
              End If
        End If
   Else
 liexz .SetItemChecked(c.Index, not c.Visible)
End If
Next


如果操作的表是“客户资料"就会错误的

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190320001117.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190320001139.png
图片点击可在新窗口打开查看





操作“客户资料”表时,重新打开后除了那几个列外所有的隐藏列都加上了,按“全选按钮”后隐藏列时,有两个列不隐藏,不知道什么原因
其他表都正常


[此贴子已经被作者于2019/3/20 9:10:08编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 9:26:00 [只看该作者]

上传对应的实例测试

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/3/20 15:21:00 [只看该作者]

(1)进去后选择“客户资料窗体”在选择用户类别组合框选择用户类别“数据操作员”后 ,单击设置列按钮;
(2)交替选择"设置列宽度与顺序"和“显示与隐藏列”就会弹出错误提示框如下

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190320150530.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190320150513.png
图片点击可在新窗口打开查看

(3)我想实现当不同用户类别时,电话1、电话2、电话3、电话4、电话5、电话6 在列表框中显示或不显示
当选择“数据操作员”时电话1、电话2、电话3在列表框中不显示,只在列表框中显示电话4、电话5、电话6列
当选择“数据管理员和系统管理员”时电话4、电话5、电话6在列表框中不显示,只在列表框中显示电话1、电话2、电话3列
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列设置 (1).rar


[此贴子已经被作者于2019/3/20 15:23:13编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 15:46:00 [只看该作者]

Dim xsyyc As WinForm.RadioButton = e.Form.Controls("xianshiyuyincanglie")
Dim liexz As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
Dim t As WinForm.Table = e.Form.Controls("Table1")
Dim str As String = ""
If xsyyc .Checked=True Then
    e.Form.Controls("xiangyouButton").Enabled=False
    e.Form.Controls("xiangzuoButton").Enabled=True
    e.Form.Controls("yincangsuoxuanlie").Enabled=True
    liexz.Value =""
    liexz.SelectedValue=""
End If
liexz.CheckOnClick=True
Dim dtshb As WinForm.Table = e.Form.Controls("Table1")
For Each c As Col In t.Table.Cols
    If t.Table.DataTable.Name ="客户资料" Then
        If y Then
            If c.name <> "电话1" AndAlso c.name <> "电话2" AndAlso  c.name <>"电话3"  Then
                str &= c.name & "|"
            End If
        ElseIf y OrElse y Then
            If c.name <>"电话4" AndAlso c.name <> "电话5" AndAlso c.name <> "电话6" Then
                str &= c.name & "|"
            End If
            ''Return
        End If
    Else
        str &= c.name & "|"
    End If
Next


e.Form.Controls("lieCheckedListBox").ComboList = str.trim("|")
Dim ary = str.split("|")
Dim clist As WinForm.CheckedListBox = e.Form.Controls("lieCheckedListBox")
For Each c As Col In t.Table.Cols
    If t.Table.DataTable.Name ="客户资料" Then
        If y Then
            If c.name <> "电话1" AndAlso c.name <> "电话2" AndAlso c.name <>"电话3" Then
                Dim i = array.Indexof(ary, c.name)
                liexz .SetItemChecked(i, not c.Visible)
            End If
        ElseIf y OrElse y
            If c.name <> "电话4" AndAlso c.name <> "电话5" AndAlso c.name <>"电话6" Then
                Dim i = array.Indexof(ary, c.name)
                liexz .SetItemChecked(i, not c.Visible)
            End If
        End If
    Else
        Dim i = array.Indexof(ary, c.name)
        If i >= 0 Then
            liexz .SetItemChecked(c.Index, not c.Visible)
        End If
    End If
Next


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