显示属性设置

4645
1

xxxl 数据领袖Lv6

发表于2020-11-5 17:50

楼主
本帖最后由 xxxl 于 2021-2-4 15:21 编辑

一、需求场景描述
    针对不同的元素比如表格(包括表格中的某行某列或是单一表元)、统计图、参数组件等,需要设置计算时根据实际需求让元素隐藏、不打印可预览、不打印不可预览、不导出等。这些需求就需要用到属性中的显示属性了。


二、显示属性具体介绍
    以一个表格为例,只需要选中该表格然后在右边的属性框中招到显示下拉框进行选择设置即可:

    这些属性值的意义如下:
      1.隐藏:仅仅在设计界面上可见,在计算后显示,打印,预览,导出的时候均不可见。
      2.不打印可预览:在设计阶段,显示阶段,导出,预览均可见,但是在打印的时候隐藏。
      3.不打印不预览:在设计阶段,显示阶段,导出均可见,但是在打印和打印预览的时候隐藏。
      4.不导出:在设计阶段,显示阶段,打印和打印预览的时候均可见,仅仅不可导出。
    以上只是列出了一些较常用的组合,还有一些用的比较少的情况在此处没有列出,但是也可以支持,这个时候就需要直接在下拉框中输入一个整型值来设置,其实这上面的每个组合  也是代表的一个整型值,这些整型值是如何确定的呢?每种状态是否可见都是用一个二进制的某一位来确定的
    在我们的程序中定义如下:

属性
说明
整型值
html_View
显示
1,即将设置的整型值转换为二进制值,最低位代表的就是是否显示
printView_View
打印预览
2,即将设置的整型值转换为二进制值,从低位开始第二位代表的就是是否打印预览
print_View
打印
4,即将设置的整形值转换为二进制值,从低位开始第三位代表的就是是否打印
export_View
导出
8,即将设置的整形值转换为二进制值,从低位开始第四位代表的就是是否导出

    例子一:
    如果我们想要让一个元素在导出可见,在打印和打印预览的时候可见,计算后不显示的时候,那么就这样设置:不显示那么最低位就为0,打印预览则第二位为1,打印则第三位为1,导出则第四位为1,所以这个整型值用二进制表示就是1110,转换十进制后就是14。
    实际上,如果不理解二进制的话可以直接将他们的值相加就行,上面所说十进制值相加应该为8+4+2+0=14。可见则加,不可见则为0)
   例子二:
   我们需要一个元素在导出可见,打印预览不可见,打印不可见,计算后显示对应的二进制为1001转换十进制后为9,同时如果按值相加的话就应该为8+0+0+1=9
   不仅仅表头,包括表元,行列,背景图片等都支持设置它的显示属性,具体规则同上。


三、表达式设置
   显示属性中不止只写单纯的整数控制,也可以通过写宏表达式做判断这更适合做更复杂的应用场景。
  比如需要当某个表元为0的时候这一列不显示,就可以在显示属性中写宏表达式<#=if(GRID.A1=0,0,1)#>
  这里写的宏表达式可以灵活多变支持多种函数。

   补充例子:
   需求当维下拉不选择的时候,根据当前表格行数做显示隐藏判断,当前行数小于等于5则正常隐藏否则显示。当维下拉选择数据后则直接显示数据。
这里可在行显示属性中设置<#=if(len(@p9374)=0,if(GRID1.C1<=5,1,0),1)#>


最后效果默认为空的时候显示前五个

然后可以根据维下拉多选选择任意



这里行号这一列作为辅助列可以选中设置隐藏
例子来源:https://bbs.esensoft.com/thread-137360-1-1.html





最近看过此主题的会员

esen_4XMY0N6IMU

alimu

esen_4TUELCHD9M

chenzyd

esen_51G4KI33Q4

esen_4UIBLD8PRN4M

1个回答

只看楼主

zhang1h 初学数据Lv2

发表于2022-1-10 09:20

只看该作者

取消 关注该作者的回复

沙发

请问我设置了<#=IF(len(@managecom)=0,0,9)#>,也就是说这个参数不选择的时候隐藏否则展示,可是必须是点击查询后才生效,查询前还是没隐藏掉

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号