在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);
}
}
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方法,自己写一个窗体出来.