我的報告上列印時有一個欄位(字串),如下所示:「0000000840509001」。我希望它看起來像這樣:「84-05-090.01」。有沒有辦法在報表設計層面做到這一點?
基本上,我想去掉前導零並將剩餘的字串放入 ##-##-###.## 格式。
答案1
遺憾的是,沒有單一方法可以去除前導零......但這是我學到的一個小技巧......
format(replace(ltrim(replace([your-field-name],"0"," "))," ","0"),##-##-###.##)
壞了...
format(
replace(
ltrim(
replace(
[your-field-name],
"0",
" "
)
),
" ",
"0"
),
"##-##-###.##"
)
瘋狂的方法是將所有零替換為空格字符,然後僅在左側“修剪”它。 (我們不希望結尾的零消失)然後用零替換空格字元......最後按照您想要的方式格式化它。
或者...而不是嘗試修剪數字...您也可以使用 cint() 將其轉換為實際整數,然後將其格式化如下:
format(cint([your-field-name]),"##-##-###.##")
任何一種方法都可能無法以您想要的方式運作...只是因為沒有錯誤檢查所提供的輸入是否有效。即,如果您有 10 個(或更多)有效數字而不是 9 個...它會默默地截斷前導數字...也使用 cInt 不會接受“字符”,如“0000000ABCDEFGHI”或其他...
您可能想要在 vb 腳本中實際建立一個函數來正確進行格式化...然後在報表中使用它。但這是一個更加複雜的主題......所以我不會在這裡觸及它。