如何在 table 记录中将 ToDate 保留在 FromDate 之后?

How can the ToDate be kept after the FromDate in a table record?

我有一个包含两个字段的 table:FromDateToDate。我想确保 ToDate 值始终晚于 FromDate 值。

为此,我想将 ToDate 值设置为 FromDate 值 + 1。为此,我在 validateField 方法中实现了以下代码table:

boolean ret;

ret = super(_fieldIdToCheck);

if (ret)
{
    switch (_fieldIdToCheck)
    {
        case fieldNum(MyTable, FromDate):
            this.ToDate = this.FromDate + 1;
    }
}

return ret;

此实现效果很好,但 ToDate 的值可以更改为 FromDate 之前的值。如何预防?

正如 Alex 所说,使用 table 方法 modifiedField 进行字段相关修改。

如果您通过代码更改字段,请记住自己调用该方法。

也许您应该将分配设置为有条件的,以避免覆盖用户输入的日期。如果 ToDate 最初为 null,这也适用。

public void modifiedField(FieldId _fieldId)
{
    super(_fieldId);
    switch(_fieldId)
    {
        case fieldNum(MyTable, FromDate): 
        case fieldNum(MyTable, ToDate): 
            if (this.ToDate < this.FromDate) // mostly first time
                this.ToDate = this.FromDate + 1;
            break; // don't forget the break
    }
}