Axapta 更改查找列的宽度

Axapta 更改查找列的宽度,axapta,x++,dynamics-ax-2012,dynamics-ax-2012-r3,Axapta,X++,Dynamics Ax 2012,Dynamics Ax 2012 R3,我创建了一个包含两列的查找,第一列包含和integer,这很好,但是第二列的名称很长,这就是问题所在。用户应该水平滚动以检查整个字符串,即使在这种情况下,列的宽度也不足以显示整个数据 我发现: 但我不知道该在哪里补充什么 我不确定,但可能我必须补充一个事实,即在参数部分中,此查找用于指向SSRS报告的菜单项 更新1: 我使用了一个叫做这样的查找表单: Args args; FormRun formRun; ; args = new Args(); args.name(formstr(Loo

我创建了一个包含两列的查找,第一列包含和integer,这很好,但是第二列的名称很长,这就是问题所在。用户应该水平滚动以检查整个字符串,即使在这种情况下,列的宽度也不足以显示整个数据

我发现:

但我不知道该在哪里补充什么

我不确定,但可能我必须补充一个事实,即在参数部分中,此查找用于指向SSRS报告的菜单项

更新1:

我使用了一个叫做这样的查找表单:

Args args;
FormRun formRun;
;

args = new Args();

args.name(formstr(LookupOMOperatingUnit));
args.caller(_control);
formRun = classfactory.formRunClass(args);
formRun.init();
_control.performFormLookup(formRun);
在这种形式的init方法中,我添加了:

public void init()
{
    super();
    element.selectMode(OMOperatingUnit_OMOperatingUnitNumber);
}
意思是我真正需要的领域

我不确定我是否完全理解这个机制,但它似乎知道如何将这个确切的字段返回到它真正开始的DialogField


为了使它看起来像一个查找,我将设计风格保留为自动,但将窗口类型更改为弹出式,HideToolBarYesFrameBorder最好的方法可能是进行自定义查找,并更改关键字段的扩展数据类型以反映这一点。这样,变化就反映在所有地方。参见表格
FiscalLendaryEarlookup
和EDT
FiscalyEarlookup
作为示例

如果您只需要更改一个位置,那么简单的选择是覆盖调用表单上的
performFormLookup
。您还应该覆盖长字段的扩展数据类型的
DisplayLength
属性

public void performFormLookup(FormRun _form, FormStringControl _formControl)
{
    FormGridControl grid = _form.control(_form.controlId('grid'));
    grid.autoSizeColumns(false);
    super(_form,_formControl);
}
除非您有表单,否则这对您没有帮助,在本报告场景中可能不是这样


从AX2009开始,内核默认情况下会根据实际记录内容自动更新控件大小。这是一个令人沮丧的原因,因为当没有记录时,这些尺寸很小,并且这些尺寸已保存!此外,在某些情况下,自动更新最初的性能很差。事后,提供了grid control
autoSizeColumns
方法,但遗憾的是,该方法从未作为属性公开。

您可以扩展sysTableLookup类并覆盖buildFromGridDesign方法以设置网格控件宽度

protected void buildFormGridDesign(FormBuildGridControl _formBuildGridControl)
{
    if (gridWidth > 0)
    {
        _formBuildGridControl.allowEdit(true);
        _formBuildGridControl.showRowLabels(false);
        _formBuildGridControl.widthMode(2);
        _formBuildGridControl.width(gridWidth);
    }
    else
    {
        super(_formBuildGridControl);
    }

}

谢谢你的回复。。我是否有可能创建一个表单,从查找方法打开它,选择一行,然后返回所需的字段?也许是这样的:你为什么要这样做?如果可能的话,坚持标准的操作方式。只需将
Style
属性更改为LookupLook,查看表单
FiscalLendaryEarlookup
init
run
方法即可添加正确的行为。您可以为目标字段创建另一种扩展数据类型,然后您不需要任何调用代码。@JanB.Kjeldsen如果我将样式更改为Lookup,它的行为将与以前一样,当时我无法查看整个字符串或调整其大小。。我会看一看你的长卷。。。。