Crystal Reports字符串数据提取:如何获取最新季度股息金额
Crystal Reports提取指定股息金额的正确公式
你的{dp.div-amt}输出为0;0;3.50;0;0;4.75;0;0;6.50,需要提取第三个位置的3.50,之前的公式逻辑完全错误,以下是可直接使用的解决方案:
提取第三个元素(即目标值3.50)
Local StringVar inString := {dp.div-amt}; Local StringVar Array arr := Split(inString, ";"); // 数组索引从1开始,直接取第3个元素并转为数值 If Count(arr) >= 3 Then ToNumber(arr[3]) Else 0;
公式说明
Split(inString, ";"):把分号分隔的字符串拆成字符串数组,示例中得到的数组为["0", "0", "3.50", "0", "0", "4.75", "0", "0", "6.50"]- 检查数组长度≥3是为了避免索引越界报错
ToNumber将字符串转为数值类型,方便后续报表的计算或格式化展示;如果数组长度不足,返回0作为默认值
若需提取最后一组的第三个元素(比如示例中的6.50)
如果你的“最新第三个月”是指最后一个季度的第三个月金额,可使用以下公式:
Local StringVar inString := {dp.div-amt}; Local StringVar Array arr := Split(inString, ";"); Local NumberVar totalElements := Count(arr); // 取最后3个元素中的第三个(即数组最后一个元素) If totalElements >= 3 Then ToNumber(arr[totalElements]) Else 0;
内容的提问来源于stack exchange,提问作者user22009025
相关产品推荐
相关产品推荐

