我的销售订单表单(SalesTable)中有一些字段需要在另一个字段设置为特定值时被禁用。要做到这一点,我覆盖了表单字段上的enter和gotFocus方法(我做了两个测试)。代码编译并没有任何问题。
我的问题是,当我单击相应网格列中的字段时,这些被覆盖的方法都不会被调用。什么会导致无法在网格字段上调用enter和gotFocus方法?
答案 0 :(得分:8)
请勿使用gotFocus
和enter
方法。
创建一个数据源方法来进行更改:
void setAllowEdit()
{
salesTable_ds.object(fieldnum(SalesTable, Name)).allowEdit(salesTable.SalesType == SalesType::Journal);
}
从active
方法调用方法:
public int active()
{
int ret = super();
...
this.setAllowEdit()
return ret;
}
从数据源字段(在本例中为SalesType
字段)调用方法:
public void modified()
{
super()
salesTable_ds.setAllowEdit()
element.changeType(); // standard code
}