2016-07-20 98 views
1

我试图在字段前添加两个零占位符,而不改变涉及的实际值。该字段是从MOM提取的订单号。所以现在这个字段的公式是{cms.ORDERNO}删除号码字段中的逗号和小数点

当我尝试'00'+{cms.ORDERNO}该字段显示001,254.00。如何删除小数点和逗号,以便显示001254

回答

0

通常的诀窍是在左侧填充大量的额外数字,然后只从右边拿到你真正想要的六个数字。这将处理从1任何订单号999999

right("000000" + totext({cms.ORDERNO}, "0"), 6) 

当你不指定格式字符串,你尝试过,它使用通常来自于Windows的默认设置。顺便说一句,如果我记得正确cstr()totext()大部分是等价的,但totext()有更多的选择。

您还应该能够指定“000000”作为格式字符串以生成左填充的零。可悲的是我没有安装Crystal Reports,或者我会检查一下,以确保它安全。如果是这种情况,那么如果您只想在画布上使用字段的格式化选项,则可能不需要公式。如果你使用公式,它仍然很简单。

totext({cms.ORDERNO}, "000000") 
+1

文本工作完美..它使这么多感!谢谢你的帮助!!!!你太棒了 :) –

0

你一定要为此使用Replace公式几次。下面的公式转换ORDERNO成字符串,删除任何逗号和尾随小数位,然后添加两个零开头:

`00` + REPLACE(REPLACE(CSTR({cms.ORDERNO}),".00",""),",","") 

因此,举例来说,如果cms.ORDERNO1,254.00从这个公式的输出将001254

+0

我认为这会工作。但是订单数量通常是001254,但是当我尝试添加零就是它包括零,然后还增加了小数和逗号。我尝试使用你给我的公式,但它说它不是一个公式,我猜这是因为在我编辑它之前,没有小数或实际顺序字段中的任何内容。任何想法与这个额外的信息? –

+0

如果添加零后出现小数点/逗号,则可以始终翻转操作顺序。尝试'REPLACE(REPLACE(CSTR('00'+ {cms.ORDERNO}),“。00”,“”),“,”,“”)'而不是 – 4444