从数字字段中删除逗号和小数位

时间:2016-07-20 15:50:38

标签: crystal-reports formula crystal-reports-2008

我正在尝试在字段前添加两个零占位符而不更改所涉及的实际值。该字段是从MOM中提取的订单号。现在,字段的公式为{cms.ORDERNO}

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

3 个答案:

答案 0 :(得分:0)

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

<ion-content ng-controller="Googleplacesuggestion">
 <h1>Search</h1>
 <label class = "item item-input">
 <input type ="text" ng-model="search" ng-change="getGooglePlaceSuggestionAutocomplete(search)"
        class="search-query" id="address_search" placeholder="Search">
 </label>
 <ul class="unstyled">
 <li ng-repeat="data in returnedData">
 <span> {{ data }} </span>
 </li>
 </ul> 

例如,如果.controller('Googleplacesuggestion',function($scope,$http){ $scope.getGooglePlaceSuggestionAutocomplete = function($scope){ console.log($scope); $scope.returnedData = [ {text:'learn angular', done:true}, {text:'build an angular app', done:false} ];`00` + REPLACE(REPLACE(CSTR({cms.ORDERNO}),".00",""),",","") ,则此公式的输出为cms.ORDERNO

答案 1 :(得分:0)

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

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

如果未按照您的尝试指定格式字符串,则它使用通常来自Windows的默认设置。顺便说一句,如果我没记错,cstr()totext()大部分是等效的,但totext()有更多选项。

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

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

答案 2 :(得分:0)

我知道这已经比较老了,但是存在更好的解决方案,因此我遇到了同样的问题。 ToText内置了您所需的内容。

“ 00” + ToText({cms.ORDERNO},0,“”)

从Crystal文档中:

ToText(x,y,z)

x是要转换为文本字符串的数字或货币值;它 可以是整数或小数值。

y是一个整数,指示要携带的小数位数 x中的值(此参数是可选的。)。

z是一个单字符文本字符串,表示要 用于分隔成千的x。默认是在中指定的字符 您的国际或区域设置控制面板。 (此论点 是可选的。)