-1

我有一个要实现的功能:

在我的 PurchTable 表单中,我被告知在表单顶部创建一个组合框,该组合框使用 purchTable.purchstatus 字段中的枚举,即:invoiced、openorder、reveived。

现在单击组合框中的上述任何一个元素,我应该只在下面的网格中获取该数据,即;如果我单击已开票,将显示购买状态为“已开票”的记录。

为此,我创建了一个组合框并使用了 selectionchange() 的覆盖方法“selectionchange”代码:

public int selectionChange()
{
    int ret;

 ret = super();
if(combobox.selection()==status::invoiced)
   {
  ... what will i have to write here to add range"invoiced" in the datasource 

  }



   if(combobox.selection()==status::All)
  {
 .  .. what will i have to write here to add range"invoiced" in the datasource 

 }

  }
4

2 回答 2

4

您可以将此代码(在 AX2009 中测试)用于您的 selectionChange() 处理程序。注意:在您的 ComboBox 上,您应该将属性设置EnumTypePurchStatus(参见屏幕截图),以便枚举的元素自动添加为条目。

如果您对此代码有任何疑问,请随时发表评论...

public int selectionChange()
{
    int             ret;
    QueryBuildRange range;
    ;

    ret = super();
    range = SysQuery::findOrCreateRange(
        purchTable_DS.query().dataSourceTable(tablenum(PurchTable)),
        fieldnum(PurchTable, PurchStatus));
    range.value(queryValue(this.selection()));
    purchTable_DS.executeQuery();

    return ret;
}

在此处输入图像描述

于 2013-08-24T08:06:48.113 回答
1

想象一下,您有一个表单,其中包含一个JAEEMantenimiento要从字段中过滤的名为 DataSource 的表单Tipo,以及一个名为 的未绑定数据组合框FiltroTipo。这是组合更改选择时需要过滤的代码:

// classDeclaration of the FORMULARIO!!
public class FormRun extends ObjectRun
{
    QueryBuildRange     qbrTipo;
}

// Form DATASOURCE (JAEEMantenimiento)
public void init()
{
    super();

    qbrTipo = JAEEMantenimiento_DS.queryBuildDataSource()
                    .addRange(fieldNum(JAEEMantenimiento, Tipo));
}

// Form DATASOURCE (JAEEMantenimiento)
public void executeQuery()
{
    qbrTipo.value(queryValue(FiltroTipo.selection()));

    super();
}

// COMBOBOX (FiltroTipo)
public boolean modified()
{
    boolean ret;

    ret = super();

    JAEEMantenimiento_DS.executeQuery();

    return ret;
}

这是 AX 2012 代码,但在 2009 年应该可以正常工作。

于 2013-08-23T15:40:59.523 回答