订购日期的 Lotus 排序视图无法正常工作

Lotus sorting view on orderdate does not work properly

我创建了一个视图,其中还有一个包含日期的列。该列可以按升序和降序排序。这是我的列属性值:

但问题是视图没有正确排序日期:

这里是订单日期字段本身的屏幕截图:

这里是文档的屏幕截图,其中订单日期在视图中是乱序的:

更新

有些文档的订购日期是文本而不是日期。我通过 java 代理创建这些文档。字段orderdate我是这样填写的:

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

但它保存为文本而不是日期。有人知道为什么吗?

我不清楚为什么它对你不起作用,但你可以在列公式中用类似这样的东西强制执行它

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

此外:您的 Java 代码保存了一个文本值,因为 SimpleDateFormat returns 的 format() 方法是一个 StringBuffer。 ReplaceItemValue 方法在其输入为 String 或 StringBuffer 时生成一个文本项。假设您的表单将 OrderDatum 定义为 Time/Date 字段,您可以在代码中调用 Document.ComputeWithForm 以强制它将文本项转换为 Time/Date。另一种方法 - 考虑到调用 ComputeWithForm 的潜在副作用,可能更可取的是在 Java 代码中创建一个 DateTime 对象并将其传递给 ReplaceItemValue 方法。

这是因为 formatterDatumForField.format(currentDateForField) returns 字符串而不是 date/time 值。假设 currentDateForField 是一个 date/time 值,您应该更改

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

docOrder.replaceItemValue("Orderdatum",currentDateForField);

问题是 orderdate 字段是由后端代理设置的,而这个字段是用字符串设置的。

我知道将当前时间保存为 DateTime 对象,现在可以使用了:

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

 docOrder.replaceItemValue("Orderdatum",  timenow);