以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  锁定隐藏列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188817)

--  作者:1234567
--  发布时间:2023/10/20 21:16:00
--  锁定隐藏列
通过代码,显示第一列,第二列,Tables("窗口_Table1").SetColVisibleWidth("第一列|40|第二列")
希望对隐藏列进行锁定,求代码.

--  作者:有点蓝
--  发布时间:2023/10/21 8:51:00
--  
无法锁的。如果不想用户自己显示隐藏列,把所有的隐藏列菜单去掉,类似:http://www.foxtable.com/webhelp/topics/2438.htm
--  作者:1234567
--  发布时间:2023/10/21 10:12:00
--  
Select Case e.DataCol.Name
    Case "重量" , "材料单价"
        e.DataRow("材料价格") = e.DataRow("重量") * e.DataRow("材料单价")
End Select

Select Case e.DataCol.Name
    Case "重量" , "加工单价"
        e.DataRow("加工价格") = e.DataRow("重量") * e.DataRow("加工单价")
End Select

当某行有重量、材料单价、加工单价、材料价格、加工价格内容时,会出现材料价格加工价格同时出现的问题。造成重复计算。
现数据结构为,当工序为备料时,隐藏加工类内容,当工序为价格时,隐藏材料类内容。
希望对隐藏列予以清零并不可编辑。


--  作者:1234567
--  发布时间:2023/10/21 10:14:00
--  

\'With CurrentTable

  

        \'For c As Integer = .LeftCol To .RightCol

         \' If .Cols(c).Visible = False Then

          

           \' e.Row(c) = Nothing

            \'    End If

      \'  Next

    

\'End With


这样,隐藏列确实可以不被编辑,但从父表继承的数据以及从目录树录入的数据 还是存在。


--  作者:1234567
--  发布时间:2023/10/21 10:16:00
--  

\'With CurrentTable

  

        \'For c As Integer = .LeftCol To .RightCol

         \' If .Cols(c).Visible = False Then

          \'e.Cancel = True

           \' e.Row(c) = Nothing

            \'    End If

      \'  Next

    

\'End With


--  作者:有点蓝
--  发布时间:2023/10/21 10:45:00
--  
3楼代码改为
Select Case e.DataCol.Name
    Case "重量" , "材料单价","加工单价","工序"
if e.DataRow("工序") = "备料"
        e.DataRow("材料价格") = e.DataRow("重量") * e.DataRow("材料单价")
        e.DataRow("加工价格") = nothing
elseif e.DataRow("工序") = "价格"
        e.DataRow("加工价格") = e.DataRow("重量") * e.DataRow("加工单价")
        e.DataRow(""材料价格") = nothing
end if
End Select