水晶报表交叉表中的数字格式动态设置

xiezhiqu 2011-03-26 01:44:20
我现在做了一个交叉表,出来后的汇总数据小数位数是一位,我想实现的效果是:
如果小数点后的那个数字是0,那显示出来的就是整数;
如果小数点后的那个数字不是0,则显示原来的那个数。
我选择那个汇总的字段点击进行自定义格式的设置时,在十位那里写公式实现,我的公式代码是:

if Right (ToText ({Table.结果}, 1), 1) = "0" then 0
else 1

但是出来的结果变成了全部都是整数了,不知道怎么解决。是不是因为交叉表放在了报表头才会这样呢?

以前我也是用这个公式来设置小数点后位数的显示的,都是在详细资料节里面设置的,没出现过问题,现在换在报表头就有了问题,是交叉表里面不支持,还是把第一行数据的情况应用了到所有行,实在想不明白怎么解决。

在这里发贴求解!!
...全文
198 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿双2009 2011-03-27
  • 打赏
  • 举报
回复
将{Table.结果}改成currentfieldvalue,并且

if Right (ToText (currentfieldvalue , 1), 1) = "0" then
0 //小数点后的那个数字是0,显示整数
else
1 //小数点后的那个数字非0,显示原值


[Quote=引用]
交叉表中,因为数据已经聚合且进行了交叉,所以直接使用字段得不到你想要的值
关键字currentfieldvalue表示当前单元格的值
[/Quote]
xiezhiqu 2011-03-26
  • 打赏
  • 举报
回复
问题解决了,看到之前网友的一篇帖子,用设置字符串的公式可以解决。
水晶报表交叉表小数位0的显示问题

但我还想问为什么设置数字格式的小数位数在交叉表中就起不了作用,还是说以第一行数据的情况应用到了所有行的情况,因为我第一行的数据小数点后为0,如果我调整公式如下:
if Right (ToText ({Table.结果}, 1), 1) = "0" then 1
else 0
那所有的数字全部都是1位小数,这是为什么呢?

内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧