如何将前导零添加到水晶报表中的文本字段

时间:2012-08-13 20:40:57

标签: crystal-reports formula leading-zero crystal-reports-formulas

我正在考虑一种向字符串字段值添加前导零的方法。 例如,我有12345,但需要一个公式,将其转换为012345.我是Crystal的新手,因为我知道这可能是一个简单的公式,但似乎无法让它工作。

12345 => 012345  (add leading zero to make it 6 chars)

提前致谢。

7 个答案:

答案 0 :(得分:5)

试试这个

  

totext(your_number," 000000");

1st arg。:嗯,这是输入。

2nd arg。:输出中需要的位数。

对于前,

  

num = 1234;

     

totext(num," 000000");

输出:

  

001234

并且,如果你想添加固定数量的零,那么你可以使用(添加3个前导零):

  

" 000" + totext(your_number,0); //添加3个前导零

注意:最终输出是字符串而不是数字。

答案 1 :(得分:4)

使用零填充数字字符串值到一定长度:

local numbervar yournum := tonumber({table.your_string}); //convert to number
totext(yournumnum, '000000') //convert back to padded string of length 6

OR表示通用字符串

local stringvar yourstring:= {table.your_string};
local numbervar LENGTH := 10; //The desired padded string length

if length(yourstring) >= LENGTH then yourstring else
  replicatestring('0',LENGTH-length(yourstring)) + yourstring

答案 2 :(得分:1)

如何在水晶报告中使用该公式, 下面提到公式(open(field explorer) - >然后右键单击(公式字段) - >选择新的--->创建公式名称(xyz) - >然后把 ** ToText({DataTable1.Sr_No},“0000”) **

在**之间仅复制/过去粗体文本,然后保存并关闭

在您添加到水晶报告并运行的公式后,您需要的答案就在那里,

Sr_No。 0001 技术 0003

答案 3 :(得分:0)

只需将你的字段'0'+ yourstringchar

加上

答案 4 :(得分:0)

逻辑上面的工作及其左边填充的通用公式

如果你想要正确的填充使用这个

  local stringvar yourstring:= {table.your_string};
  local numbervar LENGTH := 10; //The desired padded string length

  if length(yourstring) >= LENGTH 
        then yourstring 
  else
        yourstring + replicatestring('0',LENGTH-length(yourstring)) 

- kanthi

答案 5 :(得分:0)

Right("00000000"&ToText({Table.correla}),8)

答案 6 :(得分:0)

我用这个:

replace((space((20)-len({Table.Field}))+({Table.Field}))," ","0")

基本上它会生成前导空格,但随后用零替换这些空格。通过从添加的空格中减去字段的长度,该字段将始终是空格中指定的字符数((XX) ...

它看起来过于复杂,但它实际上简化了需要大量固定长度字段的报表。在我开发报告时,我可以将此代码复制粘贴到新公式,更改空格数以匹配所需的字段长度,然后更改我的字段名称。