我只是关注一个非常简单的微软教程,主题是从表创建一个视图:http: //msdn.microsoft.com/EN-US/library/hh272116
我创建了名为TITO_SomeView的视图.我使用DirAddressBookParty表,我无法打开视图,我收到消息:
"您无权访问表'某些视图'(TITO_SomeView).请与您的系统管理员联系."
我正在尝试使用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中编写的所有字段?
我正在尝试执行以下代码:
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值.
我想拆分字符串.
如果我的代码:
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
我在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 ++的问题.假设我有一个像这样的伪代码的事务
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中止整个交易而不是上次开始的交易?有没有办法避免它?
我想更改地图中键的值。我该怎么做?是否可以?
我只找到了方法 insert(_key,_value) 但我不想用值创建新键,而是更改现有键的值。
我想在选择网格列表上的记录时启用/禁用Confirm(MenuItemButtonName: ButtonUpdateConfirmation) 按钮Sales and marketing -> Common -> Sales quotation -> All quotation -> Follow up。目前,Confirm分别在发送/创建报价状态时启用/禁用该按钮。Confirm当所选销售报价达到信用额度时,我想改变我的禁用/启用按钮的这种行为。
问题是,我找不到按钮启用/禁用位置的行为。有谁知道它在哪里?我目前正在查看SalesQuotationListPage表格
我在表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)
有了这个我无法编译.