在表单的init方法中初始化edit方法的值

问题描述

我想在表单的init方法内部初始化一个edit方法的值,我这样写:

[Form]
public class foo extends FormRun
{
    str                                      paymTermId;


   public void init()
   {
      
       CustTable custTable = CustTable::find("DE-001");

       paymTermId = custTable.paymTermId;                          
       super();
   }

    edit str edtpaymTermId(boolean set,str _paymTermId)
    {

        if (set)
        {
             paymTermId= _paymTermId;
        }
        return paymTermId ;
    }
 }

但是当我打开表格时,控件仍然为空。

有什么建议吗?

解决方法

我试图重现该问题,但未成功。对我来说,打开表单时,控件会显示一个值。

它对您不起作用的可能原因是您在错误的公司中打开了表格。在代码中,您从客户DE-001的付款条件中检索要显示在控件中的值。此客户存在于Contoso演示数据中的USMF公司中,付款期限为Net10。如果在该公司中打开表格,则该值将显示在控件中。如果您在另一家公司(例如DAT),则不会显示任何值。

enter image description here

,

我发现有两件事是错误的:

  1. 您是在 super() 之前设置值。应该在之后。
  2. 你不应该通过字段初始化值,你应该调用编辑方法来初始化。编辑方法有一个布尔 SET 参数,它可以模拟设置值的调用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...