2016-07-20 93 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