2

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

我发现了这个:

在表单控件查找中调整列宽

但我不明白在哪里以及添加什么。

我不确定,但也许我必须在参数部分添加一个事实,即此查找用于指向 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。

为了使它看起来像一个查找,我将 Design 的样式保留为 Auto,但将WindowType更改为PopupHideToolBar更改为Yes并将Frame更改为Border

4

2 回答 2

4

可能最好的方法是进行自定义查找并更改关键字段的扩展数据类型以反映这一点。通过这种方式,变化体现在所有地方。以表格FiscalCalendarYearLookup和 EDTFiscalYearName为例。

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

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

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

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

于 2015-12-23T11:59:50.183 回答
0

您可以扩展 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);
    }

}
于 2020-06-15T01:19:00.440 回答