标签: x++

从未授权的Dynamics AX 2012表创建视图

我只是关注一个非常简单的微软教程,主题是从表创建一个视图:http: //msdn.microsoft.com/EN-US/library/hh272116

我创建了名为TITO_SomeView的视图.我使用DirAddressBookParty表,我无法打开视图,我收到消息:

"您无权访问表'某些视图'(TITO_SomeView).请与您的系统管理员联系."

x++ axapta dynamics-ax-2012

1
推荐指数
1
解决办法
6155
查看次数

1
推荐指数
1
解决办法
2755
查看次数

如何使用查询选择聚合字段?

我正在尝试使用addselectionfield选择4个字段.来自那4个字段2的是聚合(和)字段.

我正在做以下事情:

            date fromDate = systemDateGet();
            date toDate = (systemDateGet() + 25);
            query          = new Query();
            qbds           = query.addDataSource(tableNum(MyTable));
            qbds.addSelectionField(fieldNum(MyTable, DateField));
            qbds.addSelectionField(fieldNum(MyTable, USDAmountField), SelectionField::Sum);
            qbds.addSelectionField(fieldNum(MyTable, CurrencyNameField));
            qbds.addSelectionField(fieldNum(MyTable, EURAmountField), SelectionField::Sum);
            qbr            = qbds.addRange(fieldNum(MyTable, DateField));
            qbr.value(queryRange(fromDate, toDate));

            queryRun       = new QueryRun(query);
Run Code Online (Sandbox Code Playgroud)

在调试时,我在queryRun中得到以下select语句:

SELECT SUM(EURAmountField) FROM MyTable(MyTable_1)
WHERE ((DateField >= {ts '2014-04-01 00:00:00.000'}
AND DateField <= {ts'2014-04-26 00:00:00.000'}))
Run Code Online (Sandbox Code Playgroud)

那么是什么原因它只选择最后一个addSelectionField以及我必须做什么来获取我在addSelectionFields中编写的所有字段?

x++ axapta dynamics-ax-2012

1
推荐指数
1
解决办法
2万
查看次数

意外的查询行为

我正在尝试执行以下代码:

static void ProjTableQuery(Args _args)
{
   Query query;
   QueryBuildDataSource qbds1;
   QueryBuildDataSource qbds2;
   QueryBuildRange qbr1;
   QueryBuildRange qbr2;
   QueryRun queryRun;
   ProjTable projTable;

   query = new Query();

   qbds1 = query.addDataSource(tableNum(ProjTable));
   qbds1.addSortField(
       fieldNum(ProjTable, Name),
       SortOrder::Ascending);

   //qbr1 = qbds1.addRange(fieldNum(ProjTable, Type));
   //qbr1.value(queryValue(ProjType::FixedPrice));

   qbr2 = qbds1.addRange(fieldNum(ProjTable, ProjId));
   qbr2.value(queryValue('0') + '*');

   qbds2 = qbds1.addDataSource(tableNum(ProjEmplTrans));
   qbds2.relations(true);
   qbds2.joinMode(JoinMode::InnerJoin);

   queryRun = new QueryRun(query);

   while (queryRun.next())
   {
       projTable = queryRun.get(tableNum(ProjTable));
       info(strFmt("%1 %2 %3", projTable.ProjId, projTable.Name, projTable.Type));
   }
}
Run Code Online (Sandbox Code Playgroud)

注释掉的那两行可以正常工作.但是,如果我取消注释它们,它将不再运行,并且不会显示任何错误消息.

就我所见,ProjType是一个枚举,我确信我在SQL中检查了FixedPrice值.

x++ axapta dynamics-ax-2012 dynamics-ax-2012-r3

1
推荐指数
1
解决办法
353
查看次数

在Dynamic ax 2012中拆分字符串

我想拆分字符串.

1出现空字符串

2缺少零;

如果我的代码:

Question #1
    value = "001#$002#$003";
    strList = strsplit(value,"#$");
    result: "001", "", "002", "", "003";
    //if i using spliter like "$" it is ok. result:  "001", "002","003";

    Question #2
    str2con(value,"#$");
    result: "1", "2","3" missing zeros

x++ axapta

1
推荐指数
1
解决办法
5873
查看次数

Axapta中Where子句中的变量

我在axapta的Job中有一个更新语句,我想在updates where子句中使用一个变量

static void UpdateSomeValues(Args _args)
{
    Table myTable;
    str likeThis;
    ;

    likeThis = 'W200';

    ttsBegin;
    select forUpdate myTable
    where myTable.start == 'W100'
    && myTable.destination like likeThis;

    myTable.AlloweMove = NoYes::Yes;
    myTable.AllowStop = NoYes::Yes;

    ttsCommit;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误翻译如下:

where子句中不允许使用未绑定的字符串

是否有一种解决方法在x ++的where子句中使用字符串?

x++ axapta

1
推荐指数
2
解决办法
1040
查看次数

X ++ ttsbegin和ttsAbort

我有X ++的问题.假设我有一个像这样的伪代码的事务

Custtable custTable;
ARandomTable mytable;
;
ttsBegin;
   select forUpdate custTable where custTable.AccountNum == '4000';
   custTable.NameAlias = custTable.Name;
   custTable.update();
   ttsBegin;
      select forUpdate mytable where mytable.myField == 'abc';
      mytable.myField = 'xyz';
      mytable.update();
      //ups something wrong happened... please abort the last
   ttsAbort;
ttsCommit;
Run Code Online (Sandbox Code Playgroud)

为什么ttsAbort中止整个交易而不是上次开始的交易?有没有办法避免它?

x++ axapta

1
推荐指数
1
解决办法
3276
查看次数

如何更新 X++ 地图

我想更改地图中键的值。我该怎么做?是否可以?

我只找到了方法 insert(_key,_value) 但我不想用值创建新键,而是更改现有键的值。

dictionary x++ axapta

1
推荐指数
1
解决办法
5769
查看次数

销售报价确认按钮(禁用/启用) AX Dynamics X++

我想在选择网格列表上的记录时启用/禁用Confirm(MenuItemButtonName: ButtonUpdateConfirmation) 按钮Sales and marketing -> Common -> Sales quotation -> All quotation -> Follow up。目前,Confirm分别在发送/创建报价状态时启用/禁用该按钮。Confirm当所选销售报价达到信用额度时,我想改变我的禁用/启用按钮的这种行为。

问题是,我找不到按钮启用/禁用位置的行为。有谁知道它在哪里?我目前正在查看SalesQuotationListPage表格

x++ axapta dynamics-ax-2012 dynamics-ax-2012-r3

1
推荐指数
1
解决办法
921
查看次数

如何使用选择语法逐字段,即Dynamics AX中的数组

我在表finStatementTrans中有字段值,它是数组.我应该如何用group by和sum这个字段编写select语法?

while select finStatementTable join DataClassParagraph,sum(Value) from finStatementTrans
    group by finStatementTrans.DataClassParagraph
    where finStatementTable.RecId == finStatementTrans.FinStatementTable_FK
           &&  finStatementTable.FinStatementTableParent_FK == 5637569094

{
    info(strFmt(%1,%2",finStatementTrans.DataClassParagraph,finStatementTrans.Value[1]));
}
Run Code Online (Sandbox Code Playgroud)

它是否正确?

sum(Value[1]) 
Run Code Online (Sandbox Code Playgroud)

有了这个我无法编译.

select x++ axapta

1
推荐指数
1
解决办法
787
查看次数