数据表格数据行行高自适应原理以及常见问题说明
本章主要介绍数据表格数据行的行高自适应,有设计的原理以及不同嵌套方式可能存在的问题以及对应解决方案的说明。
<0>前置名词定义
设计时高度:套打模板上对应控件的固定高度
运行时高度/输出高度:套打模板上对应控件的输出高度
剩余输出高度:当前控件位置距离可输出页面最下方边界的高度
<1>数据表格数据行行高自适应原理
数据表格的行高自适应逻辑:当输出行时,强制要求剩余输出高度大于设计时高度,否则该行无法输出,以下图为例解析,"最终剩余高度"小于"设计时高度显示控件"(等价于小于数据行的设计时高度),所以该行不输出
结论:
A、当剩余高度 < 设计时高度,无法输出
B、当剩余高度 > 设计时高度,可以输出该行。这时需要对是否换页做判断:
B-1、如果剩余高度 > 运行时高度,不需要换页,
B-2、如果剩余高度 < 运行时高度,那么需要该行需要申请换页。
最终剩余高度仅用作输出每页出现尾行(当每页出现尾行高度为0时,数据行贴下边界,如下图)
推论:
A:当一个数据表格数据行需要输出,他的输出高度≥数据行设计时高度
<2>嵌套控件
知识补充:行高自适应控件和纵向充满控件的区别
行高自适应控件:(在父容器支持调整行高的情况下)行高能够根据自己的内容调整的控件;
纵向充满控件:根据其父容器控件扩充高度的控件。
A、文本控件:
我们将文本放入数据表格数据行,放入同样的内容,文本是否会扩充数据行行高
在当前输出行没有其他单元格内容输出不完的情况下,其高度等于设计时高度,对应嵌套的文本控件即使内容输出不完也无法扩充数据行行高,调整其输出高度,所以我们称嵌套在数据表格下的文本控件仅为普通的纵向充满控件(依赖父容器调整高度,自身无法调整)
B、图片控件:
在当前输出行没有其他单元格内容输出不完的情况下,其高度等于设计时高度,但是由于图片过大,将当前行高度扩充为图片大小,也就是说图片(在父容器行高自适应下)能够针对自身的输出内容进行调整,同时调整父容器高度,图片是强制的行高自适应控件。
注意:
那么当图片比当前页面还要大,而且数据行设置了行高自适应后,会有什么效果呢?
对应会输出500页,当前图片在每一页都进行输出,同时由于剩余高度小于图片高度,导致其申请换页,换页后图片又重新输出(与文本不一样,文本是剩余内容继续输出,而图片是整个重新输出)。
针对嵌套图片控件输出500页如何解决?
PT136657 7.3.1310.2
数据表格数据行增加属性图片不参与行高自适应计算,具体运行逻辑如下:
1)原有逻辑,图片为行高自适应控件,(纵向充满下,拖入控件后默认设置)在数据行行高自适应下数据行行高受图片高度影响
2)需要输出图片控件本身大小:只需要设置取消纵向充满
3)数据行需要行高自适应,但是图片本身不干预数据行高度:需要设置图片纵向充满,对应数据行设置图片不参与行高自适应计算
C、简单数据表格
经常有客户会有只设置简单数据表格行高自适应,不设置数据表格数据行的设置,下面以简单数据表格讲解下为什么。
如果不设置行高自适应,套打会认为这个控件的运行时高度和设计时高度是一致的,也就是不会内容扩充,即使其子控件放置什么内容(生活示例:我们有一个足够结实的瓶子,里面有细菌,细菌每天增大一倍,假设现在细菌占了瓶子的一半,那么多久后占满整个瓶子?瓶子两天后会撑大吗?)
所以如果遇到以下情况,为什么会输出这样子?瓶子盖子封紧了。怎么解决?打开瓶盖就好了。
如果需要简单数据表格行高能完全输出完整,则同时需要设置数据表格行高自适应(等价于放权给子控件调整行高度)
D、布局表格
不建议在数据表格中嵌套布局表格而且启用行高自适应,有实现缺陷。
数据表格数据行行高自适应原理以及常见问题说明
本文2024-09-23 04:13:14发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163897.html