日期:2014-05-20  浏览次数:21046 次

水晶报表-捆数的计算
例: 某种钢材有 130000KG ,每6000KG捆成一捆。捆数为: 130000/6000 = 2.17 处理小数后,实际应该是捆 3 捆 。
根据这个数字 3 我要显示以下结果:
   
  01 
  02 
  03

总结:实质就是根据一个具体的数字显示具体的行数, 如果数字是 3 就显示 01 02 03 ,如果是 4 就显示 01 02 03 04 

注: 数字我已经算出来了 ,小数部分也处理好了,在不添加新字段数据的情况下如何实现? 

跪求高手解决...

此贴是处女贴,飘过请无痕。



------解决方案--------------------
刚开始想复杂了,最近思维不是很活跃,呵呵。

1:首先构造一个样本数据,注意,数据应该是有一个唯一性字段的。这里我假设“订单编号”就是唯一性的
因为我们要使用分组,这样才能对每个订单进行处理。而不会出现一些自动聚合的情况。


配件数目字段模拟了你的那个KG数目

2:设计模板,按订单编号增加一个分组,将需要显示的信息放在组页眉
注意详细资料节上我放了一个 捆数 的文本框,还有一个公式 x



3:公式x是这样的
C# code

Local NumberVar x1;//捆数计算
Local NumberVar i; //计数器
Local StringVar s1;  //返回一个字串

//注意,Local 为必须的,限定变量作用域为当前公式。默认为全局的。

//计算捆数
x1:=RoundUp({CSDN_20110916a.配件数量}/6000);

//返回垂直字符串,注意如果小于10,则前面需要补0,这里假设总捆数不会大于100,所以只是两位,补一个0即可
//一个数字占一行,chr(13)为换行符
for  i:=1  to x1 step  1 do 
(
If i=1 then  //这个逻辑是为了避免第一行出现一个回车
    s1:='01'
else
s1:=s1+ chr(13) + Right('0' + ToText(i,0),2) //注意这里进行了一个补0的操作
);

//返回,注意公式上点右键,设置字段格式,勾选“可以增大”即可
s1;