以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 左导航权限问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148731) |
||||
-- 作者:manyifuwu -- 发布时间:2020/4/14 12:44:00 -- 左导航权限问题 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=122493 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/14 13:50:00 -- 比如: Dim zaj As List(of String) If user.Group = "行政分组" Then zaj = DataTables("导航").GetValues("分组","分组 not in (\'工程管理部\',\'财务审计部\')","序号") ElseIf user.Group = "录入分组" Then zaj = DataTables("导航").GetValues("分组","分组 not in (\'质量安全部\')","序号") Else zaj = DataTables("导航").GetValues("分组","","序号") End If |
||||
-- 作者:manyifuwu -- 发布时间:2020/4/14 14:06:00 -- 请问,放在哪个位置呢? |
||||
-- 作者:manyifuwu -- 发布时间:2020/4/14 14:16:00 -- 我放在:AfterOpenProject 和左导航:AfterLoad 都无效。 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/14 15:00:00 -- 放到窗口afterload 替换原来的这一句 Dim zaj As List(of String) = DataTables("导航").GetValues("分组","","序号")
|
||||
-- 作者:manyifuwu -- 发布时间:2020/4/14 15:15:00 --
老师:按照这样弄了,还是不行呢?
|
||||
-- 作者:有点蓝 -- 发布时间:2020/4/14 16:16:00 -- 都说了替换掉原来的代码,单独放一段代码后面有啥用啊 Dim o As new C1.Win.C1Command.C1OutBar o.name="o" o.dock=5 \'锚定 o.VisualStyle=5 \'主题 o.pagetitleheight=30 \'页面高度 Dim zaj As List(of String) If user.Group = "行政" Then zaj = DataTables("导航").GetValues("分组","分组 not in (\'工程管理部\',\'财务审计部\',\'质量安全部\')","序号") ElseIf user.Group = "录入" Then zaj = DataTables("导航").GetValues("分组","分组 not in (\'质量安全部\')","序号") Else zaj = DataTables("导航").GetValues("分组","","序号") End If For Each za As String In zaj Dim p1 As new C1.Win.C1Command.C1OutPage \'新建页面 p1.name=za p1.text=za o.Pages.add(p1) Dim ajm As List(of DataRow) = DataTables("导航").Select("分组=\'" & za & "\'","序号 Desc") For Each aj2 As DataRow In ajm Dim aj As String = aj2("名称") Dim jpg As String = aj2("图标") Dim hsmc As String =aj2("名称") \' "a" & aj2("分组") & aj & aj2("序号") …… |
||||
-- 作者:manyifuwu -- 发布时间:2020/4/14 16:49:00 -- 谢谢! 主窗口:怎么改呢? Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'停止绘制 lvw.Groups.Clear() \'清除原来的分组 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 lvw.TitleSize = New Size(130,80) \'设置平铺区域大小 lvw.GridLines = True \'显示网格线 Dim cls() As String = {"名称"} \'定义列名 Dim wds() As Integer = {100} \'定义列宽 For i As Integer = 0 To cls.Length - 1 \'增加列 Dim c As WinForm.ListViewColumn = lvw.Columns.Add() c.Name = cls(i) \'指定列名 c.Text = cls(i) \'指定标题,这里标题和列名相同 c.Width = wds(i) \'指定列宽 Next \'lvw.Columns("人口").TextAlign = HorizontalAlignment.Right \'lvw.Columns("面积").TextAlign = HorizontalAlignment.Right For Each zh As String In DataTables("导航").GetValues("分组","","序号") \'增加分组 Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() grp.Name = zh grp.Text = zh Next For Each dr As DataRow In DataTables("导航").DataRows Dim Key As String = dr("图标") Dim r As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 lvw.Images.AddImage(Key, Key, Key) \'添加代表这个名称的一对图标 r.ImageKey = Key \'指定图标键值 r.Group = dr("分组") \'指定所属分组 r.Tag = dr For Each cl As String In cls \'逐列取值 \'Select Case cl \'Case "人口" \'r(cl) = format(dr(cl),"#,000") & "万" \'Case "面积" \'r(cl) = format(dr(cl),"#,000") & "k㎡" \'Case Else r(cl) = dr(cl) \'End Select Next Next lvw.ResumeRedraw() \'恢复绘制 lvw.View = ViewMode.LargeIcon \'显示模式切换为大图标 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/14 19:56:00 -- 完全一样的用法,根据条件获取自己能够看到的分组 |
||||
-- 作者:manyifuwu -- 发布时间:2020/4/14 21:18:00 -- 自己始终看不知道错在哪,麻烦您。帮忙改改吧! 谢谢! Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'停止绘制 lvw.Groups.Clear() \'清除原来的分组 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 lvw.TitleSize = New Size(130,80) \'设置平铺区域大小 lvw.GridLines = True \'显示网格线 Dim cls() As String = {"名称"} \'定义列名 Dim wds() As Integer = {100} \'定义列宽 For i As Integer = 0 To cls.Length - 1 \'增加列 Dim c As WinForm.ListViewColumn = lvw.Columns.Add() c.Name = cls(i) \'指定列名 c.Text = cls(i) \'指定标题,这里标题和列名相同 c.Width = wds(i) \'指定列宽 Next Dim zaj As List(of String) If user.Group = "行政" Then zaj = DataTables("导航").GetValues("分组","分组 not in (\'预算\',\'设置\')","序号") ElseIf user.Group = "录入" Then zaj = DataTables("导航").GetValues("分组","分组 not in (\'财务\')","序号") Else zaj = DataTables("导航").GetValues("分组","","序号") End If \'\'For Each zh As String In zaj \'\'Dim grp As List(of String) = DataTables("导航").GetValues("分组","","序号") \'\' Dim grp As String In DataTables("导航").GetValues("分组","","序号") \'增加分组 \'Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() \'\'Dim grp As WinForm.ListViewGroup = DataTables("导航").GetValues("分组","","序号") \'grp.Name = zh \'grp.Text = zh \'Next For Each zh As String In zaj Dim zh As String In DataTables("导航").GetValues("分组","","序号") \'增加分组 Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() grp.Name = zh grp.Text = zh Next For Each dr As DataRow In DataTables("导航").DataRows Dim Key As String = dr("图标") Dim r As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 lvw.Images.AddImage(Key, Key, Key) \'添加代表这个名称的一对图标 r.ImageKey = Key \'指定图标键值 r.Group = dr("分组") \'指定所属分组 r.Tag = dr For Each cl As String In cls \'逐列取值 \'Select Case cl \'Case "人口" \'r(cl) = format(dr(cl),"#,000") & "万" \'Case "面积" \'r(cl) = format(dr(cl),"#,000") & "k㎡" \'Case Else r(cl) = dr(cl) \'End Select Next Next lvw.ResumeRedraw() \'恢复绘制 lvw.View = ViewMode.LargeIcon \'显示模式切换为大图标 自己始终看不知道错在哪,麻烦您。帮忙改改吧! 谢谢!
[此贴子已经被作者于2020/4/14 21:19:53编辑过]
|