更改查阅列的宽度

问题描述 投票:2回答:1

我创建了一个包含两列的查找,第一列包含和整数,它们工作正常,但第二列有一个长名称,这就是问题出现的地方。用户应该水平滚动以检查整个字符串,即使在这种情况下,列的宽度也不足以显示整个数据。

我发现了这个:

Adjusting column width on form control lookup

但我不明白究竟要添加的位置和内容。

我不确定,但也许我必须在参数部分添加这个查找用于指向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);
}

意思是我真正需要的领域。

enter image description here

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

为了使它看起来像查找,我将Design的样式保持为自动,但将WindowType更改为Popup,将HideToolBar更改为Yes和Frame to Border。

axapta x++ dynamics-ax-2012 dynamics-ax-2012-r3
1个回答
4
投票

可能最好的路径是进行自定义查找并更改关键字段的扩展数据类型以反映这一点。通过这种方式,变化反映在所有地方。请参阅表格FiscalCalendarYearLookup和EDT FiscalYearName作为示例。

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

public void performFormLookup(FormRun _form, FormStringControl _formControl)
{
    FormGridControl grid = _form.control(_form.controlId('grid'));
    grid.autoSizeColumns(false);
    super(_form,_formControl);
}

除非您有表单,否则这对您没有帮助,在本报告方案中可能不是这种情况。

从AX 2009开始,内核默认根据实际记录内容自动更新控件大小。这是一个令人沮丧的原因,因为当没有记录并且这些尺寸被保存时尺寸很小!此外,在某些情况下,自动更新的性能最初也很糟糕。作为事后的想法,提供了网格控制autoSizeColumns方法,但遗憾的是它从未作为财产暴露。

© www.soinside.com 2019 - 2024. All rights reserved.