2010-08-16 52 views
0

問候, 裏面的專欄中,我有一個像下面的值之一:報告服務 - 自定義格式

9-7 
9-18 
9-142 

此刻,當我有點基於此專欄中,我有以下幾點:

9-142 
9-18 
9-7 

9-7 (so it would be 9-007) 
9-18 (so it would be 9-018) 
9-142 

我:

我想這些值排序,如下命令試圖遵循以下格式:

=Format(Fields!ShelfNumber.Value,"000-000") 

但它不起作用。有人能幫助我嗎?

+0

我建議您識別ShelfNumber字段的所有可能的格式。如果它是完全自由形式的,你只需要使用字符串排序(如現在),或者將其排序。 – 2010-08-17 13:58:05

回答

1

排序的以下表達式:

=Cint(IIf(InStr(Fields!shelfnumber.Value,"-")<=1,"0",Left((Fields!shelfnumber.Value & "-"), InStr((Fields!shelfnumber.Value & "-"),"-")-1))) 
=Cint(IIf(Fields!shelfnumber.Value="" or Len(Fields!shelfnumber.Value)=InStr(Fields!shelfnumber.Value,"-"),"0",Right(Fields!shelfnumber.Value, Len(Fields!shelfnumber.Value) - InStr(Fields!shelfnumber.Value,"-")))) 

第一轉換字符之前 - 爲數字,第二個字符轉換的後 - 爲一個數字。

EDITED,允許一個空字符串。

進一步編輯,以允許在字符串的開始或結束處使用-的ShelfNumbers。

進一步編輯後,進行測試。

+0

在對我的表應用此排序後,我得到以下錯誤:表'table1'的排序表達式包含一個錯誤:參數'長度'必須大於或等於零 – 2010-08-17 12:53:15

+0

@niao - 它聽起來好像有些架子數字中沒有'-'。除了像'# - #'格式化的字符串外,還可以使用其他格式的書架號碼? – 2010-08-17 13:01:52

+0

它也可以是一個空字符串 – 2010-08-17 13:08:54