【问题标题】:How to identify advanced query or dynamic joins from query window?如何从查询窗口中识别高级查询或动态连接?
【发布时间】:2014-11-15 16:22:16
【问题描述】:

在弹出的查询窗口中,如果用户右键选择“1:n”并选择了一个表,如何检测和使用该表?我有一个很好的示例作业和屏幕截图,可以展示我想要完成的工作。

我编写了这个示例作业,它转储 AOT 查询对象,但不转储动态连接的表/范围/值。

static void InventSumQuery(Args _args)
{
    Query               query = new Query(queryStr(InventDimPhys));
    QueryRun            qr = new QueryRun(query);
    QueryBuildRange     queryRange;

    DictField           dictField;

    int i, n;


    if(qr.prompt())
    {
        for (n=1; n<=query.dataSourceCount(); n++)
        {            
            for (i=1; i<=query.dataSourceNo(n).rangeCount(); i++)
            {
                queryRange = query.dataSourceNo(n).range(i);

                dictField = new dictField(query.dataSourceNo(n).table(), fieldName2id(query.dataSourceNo(n).table(), queryRange.AOTname()));

                info(strFmt("%1.%2", tableId2name(dictField.tableid()), dictField.name()));
            }
        }
    }

    info("Done");
}

【问题讨论】:

    标签: axapta x++ dynamics-ax-2012 dynamics-ax-2012-r2


    【解决方案1】:

    我当然想出自己的答案。查询对象是静态的,查询表单实际上只是在您进行更改时修改查询。

    所以需要将上面的代码修改为:

    if(qr.prompt())
    {
        query = qr.query();
    

    这将获取修改后的查询。高级查询实际上只是表单本身的一个功能,它最终会修改查询。

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 2012-02-07
      • 2010-11-05
      • 2020-11-10
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      相关资源
      最近更新 更多