对话框事件

对话框事件

一,继承自AX 的runbase 框架类的dialog窗体上面所有控件都是动态产生的,那如果通过Field的事件去控制窗体其他控件的属性就需要做一些特殊处理

1.1 激活录入控件的时间处理

public object dialog()
{
   Dialog _dialog ;
   ;
   _dialog.allowUpdateOnSelectCtrl( true); 
   
   _fieldA = _dialog.AddField(ExtendedTypeStr("CustVendAC"));
   _fieldB = _dialog.AddField(ExtendedTypeStr("CustName"));
   _fieldB.Enabled(false);
}

1.2 重写 DialogSelectCtrl()事件,此事件在修改_fieldA值且光标离开后触发

public void DialogSelectCtrl()
{
       CustTable ct;
;
       ct = CustTable::find( _fieldA.value());
       _fieldB.Value = ct.name;
}

二, runbase 类 Dialog 的动态增加的Field的控件名虽然无法指定,但是其实是有安装固定的取名规则来做的。

       控件类型_编号; 

      因此在dialog控件设计好后再立刻info出控件名,一样可以重载控件的方法。

     eg:  _fieldA = _dialog.AddField(ExtendedTypeStr("CustVendAC"));

           立刻info:   info( _fieldA.name()); 取得控件名

          public void fld_100_modified()
          {

        //.....处理代码

   }

      

public void dialogPostRunbase( DialogRunbase dialog) 
{
// 通知窗体控件事件被重载 dialog.formrun().controlMethodOverload(
true); dialog.formrun().controlMethodOverloadObject( this); super(dialog); }