最新消息:ww12345678 的部落格重装上线,希望大家继续支持。

[转]关于更改当前公司(二)–ChangeCompany

Uncategorized William 2558浏览 0评论

原文地址:http://www.cnblogs.com/Farseer1215/archive/2009/11/16/1603611.html
在AX2009里新增了一个关键字CrossCompany,这个关键字让查询多个公司的数据的语法变得简洁,如下所示:

static void ChangeCompanyDEMO(Args _args)
{
    SalesTable      salesTable;
    ;
    while select CrossCompany salesTable
    {
        print salesTable.SalesId,'  ',salesTable.dataAreaId;
    }

    pause;

}

查看执行的SQL语句如下所示:

SQL 语句: SELECT * FROM SALESTABLE A [ID=1575, 已重用=否]

可以看出在增加了关键字CrossCompany之后执行的SQL语句已经没有DataAreaId的限定了。如何限定选择某几个公司那?比如只选择”001″和”002″公司。需要在关键字CrossCompany后面加一个Container变量限定一下。如下所示:

static void ChangeCompanyDEMO(Args _args)
{
    SalesTable      salesTable;
    Container       c = ['001','002'];
    ;
    while select forceLiterals CrossCompany:c salesTable
    {
        print salesTable.SalesId,'  ',salesTable.dataAreaId;
    }

    pause;

}

执行的SQL语句如下:

SQL 语句: SELECT * FROM SALESTABLE A WHERE (DATAAREAID IN (N’001′,N’002′) ) [ID=953, 已重用=否]

从上面可以看出,AX把限定Container里的内容翻译成了SQL里的IN语法。
关于跨公司查询的更多内容可以参照MSDN,上面有很多示例代码和更详尽的解释。
http://msdn.microsoft.com/en-us/library/cc634544.aspx

关于更改当前公司(一)–ChangeCompany

关于更改当前公司(二)–ChangeCompany

关于更改当前公司(三)–一个奇怪的问题

转载请注明:ww12345678 的部落格 | AX Helper » [转]关于更改当前公司(二)–ChangeCompany

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址