如何在 table 记录中将 ToDate 保留在 FromDate 之后?
How can the ToDate be kept after the FromDate in a table record?
我有一个包含两个字段的 table:FromDate
和 ToDate
。我想确保 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
}
}
我有一个包含两个字段的 table:FromDate
和 ToDate
。我想确保 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
}
}