Sorting orderdate上的Lotus排序视图无法正常工作

Sorting orderdate上的Lotus排序视图无法正常工作,sorting,lotusscript,lotus,Sorting,Lotusscript,Lotus,我创建了一个视图,其中还有一列保存日期。此列可以按升序和降序排序。这是我的列属性值: 但问题是该视图没有正确排序日期: 这里是orderdate字段本身的屏幕截图: 下面是视图中orderdate不符合顺序的文档的屏幕截图: 更新 某些文档将orderdate作为文本而不是日期。。我通过java代理创建这些文档。我填写的字段orderdate如下所示: SimpleDateFormat formatterDatumForField=new SimpleDateFormat("dd-MM-

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

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

这里是orderdate字段本身的屏幕截图:

下面是视图中orderdate不符合顺序的文档的屏幕截图:

更新

某些文档将orderdate作为文本而不是日期。。我通过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代码保存一个文本值,因为SimpleDataFormat的format()方法返回一个StringBuffer。当其输入为字符串或StringBuffer时,ReplaceItemValue方法生成文本项。假设表单将OrderDatum定义为时间/日期字段,则可以在代码中调用Document.ComputeWithForm以强制其将文本项转换为时间/日期。另一种方法——鉴于调用ComputeWithForm的潜在副作用,可能更可取的方法是在Java代码中创建DateTime对象,并将其传递给ReplaceItemValue方法。

这是因为
formatterDatumForField.format(currentDateForField)
返回字符串而不是日期/时间值。假设currentDateForField是一个日期/时间值,您应该更改

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


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

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

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

 docOrder.replaceItemValue("Orderdatum",  timenow);

你的订单日期真的是一个日期吗?显示其中一个文档的属性,该文档显示您在视图中使用的项目请显示与第一个文档相同的屏幕截图,该文档为“无序”(19-12-2016)确定我更新我的问题again@bboni它是视图中的第一列吗?@bboni它可能与第一列中的排序有关。如果您单击列标题以对文档进行排序,会发生什么情况(这样行吗?)?
 DateTime timenow = session.createDateTime("Today");
 timenow.setNow();

 docOrder.replaceItemValue("Orderdatum",  timenow);