7

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

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

提前致谢。

4

7 回答 7

7

尝试这个

totext(your_number, "000000");

第一个参数:嗯,这是输入。

第二个参数:输出中需要的位数。

例如,

数 = 1234;

totext(num, "000000");

输出:

001234

而且,如果要添加固定数量的零,则可以使用(添加 3 个前导零):

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

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

于 2014-10-24T09:53:25.673 回答
5

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

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

或用于通用字符串

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
于 2012-08-14T16:33:18.843 回答
1

如何在水晶报告中使用公式,将下面提到的公式放入(打开(字段资源管理器)->然后右键单击(公式字段)-->选择新的--->创建公式名称(xyz)-->然后放 ** ToText({DataTable1.Sr_No},"0000") **

复制/粘贴**之间的粗体文本,然后保存并关闭

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

Sr_No. 0001 0002 0003

于 2016-10-25T10:35:14.887 回答
0

只需输入您的字段 '0'+yourstringchar

于 2012-08-13T20:44:06.033 回答
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

于 2014-01-09T20:03:50.557 回答
0
Right("00000000"&ToText({Table.correla}),8)
于 2015-12-10T21:27:11.790 回答
0

我用这个:

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

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

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

于 2016-01-27T22:11:04.740 回答