2017-01-10 92 views
1

我創建了一個視圖,其中還有一個包含日期的列。此列可以按升序和降序排序。這就是我的列屬性值:訂購日期的Lotus排序視圖無法正常工作

enter image description here

但問題是,這個視圖的日期正確不進行排序:

enter image description here

這裏訂購日期字段本身的一個截圖:

enter image description here

而這裏screensh與訂購日期的文檔失靈在視圖OT:

enter image description here

更新

有些文檔有訂購日期爲文本,而不是日期。我創建通過這些文件java代理。字段orderdate我填寫如下:

SimpleDateFormat formatterDatumForField=new SimpleDateFormat("dd-MM-yyyy"); 
docOrder.replaceItemValue("Orderdatum",formatterDatumForField.format(currentDateForField)); 

但它被保存爲文本而不是日期。有人知道爲什麼

+0

是您的訂購日期真的約會?顯示顯示您在視圖中使用的項目的其中一個文檔的屬性 –

+0

請從第一個文檔「失序」(19-12-2016)顯示相同的屏幕截圖 –

+0

好吧我再次更新我的問題 – YdB

回答

1

課題是,訂購日期字段是由後端代理設置和這個領域設定有字符串。

我知道保存在當前時間作爲DateTime對象,現在,它的工作原理:

DateTime timenow = session.createDateTime("Today"); 
timenow.setNow(); 

docOrder.replaceItemValue("Orderdatum", timenow); 
0

這不是很清楚,我爲什麼它不爲你工作,但你可以窮舉列公式

dateForSure := @TextToTime(OrderDatum); 
@Text(@Year(dateForSure)) + "-" + @Text(@Month(dateForSure)) + "-" + @Text(@Day(dateForSure)); 

此外,在像這樣的東西迫使它:你的Java代碼保存文本值,因爲格式( )SimpleDateFormat方法返回一個StringBuffer。當其輸入是String或StringBuffer時,ReplaceItemValue方法會生成一個文本項。假設您的表單將OrderDatum定義爲Time/Date字段,則可以在代碼中調用Document.ComputeWithForm以強制它將文本項轉換爲時間/日期。另一種方法 - 考慮到調用ComputeWithForm的潛在副作用可能更可取,那就是在Java代碼中創建一個DateTime對象,並將其傳遞給ReplaceItemValue方法。

0

這是因爲formatterDatumForField.format(currentDateForField)返回一個字符串,而不是日期/時間值。假設currentDateForField是日期/時間值,你應該改變

SimpleDateFormat formatterDatumForField=new SimpleDateFormat("dd-MM-yyyy"); 
docOrder.replaceItemValue("Orderdatum",formatterDatumForField.format(currentDateForField)); 

docOrder.replaceItemValue("Orderdatum",currentDateForField);