在Dialog上添加Dimension中的一个元素

在Form上如果想只添加Dimension的某一个是很很简单的事情,只需要指定Dimension[i]就可以了,但在如果想在Runbase的dialog上动态添加Dimension上的某个元素可就不那么简单了.试了半天都没办法加上去,最后只能曲线救国,想了如下三种办法:
1.新建一个EDT,该EDT只有一个元素,跟想要添加到Dialog上的Dimension中的那个元素相对应,与Dimension建立的关系也一样.
如下图所示:

然后重载Dialog,用如下代码添加就可以了

_dialog.addField(typeId(Dimension1));
2.依然用扩展数据类型Dimension添加,把不想要的隐藏掉.如下面代码所示:
  fieldCAFrom  =  _dialog.addFieldValue(typeid(Dimension),strCAFrom);
    d 
=   new  Dictionary();
    dt 
=   new  DictType(d.typeName2Id( " Dimension " ));

    
for (i = 1 ;i <= dt.arraySize();i ++ )
    
{
        
if(i!=1)
        
{
            controlName 
= fieldCAFrom.fieldname(i);
            _dialog.formBuildDesign().control(controlName).visible(
false);
         }

    }

3.添加一个string类型的控件,然后重载其Lookup方法,自己写一个窗体出来.

你可能感兴趣的:(dialog)