我正在编写一个C#命令行工具来从AX获取数据并向AX添加数据(创建新表).
从AX表中获取数据很简单,并在此处记录:http://msdn.microsoft.com/en-us/library/cc197126.aspx
将数据添加到现有表格也很简单:http://msdn.microsoft.com/en-us/library/aa868997.aspx
但我无法弄清楚如何做两件事:
有人可以分享一些示例代码或指出从哪里开始寻找.我在谷歌和MSDN上的搜索没有透露太多.
注意:我不是经验丰富的AX或ERP开发人员.
我的销售订单表(SalesTable)中有一些字段需要在另一个字段设置为特定值时被禁用.为此,我覆盖了表单字段上的enter和gotFocus方法(我做了两个测试).代码编译并没有任何问题.
我的问题是,当我单击相应网格列中的字段时,这些被覆盖的方法都不会被调用.什么会导致在网格字段上不调用enter和gotFocus方法?
TLDR:当使用查找的字段不为空时,为什么在查找中禁用group by子句?
我想对表单中的字段进行自定义查找.该表CTable如下所示:
Val Spec
------------
A alpha
A beta
A gamma
B delta
C epsilon
Run Code Online (Sandbox Code Playgroud)
查找仅涉及Val使用具有基本关系的EDT定义的列:Val == CTable.Val
查找显然给了我一个这样的列表:
A
A
A
B
C
Run Code Online (Sandbox Code Playgroud)
让我们去一个小组来摆脱所有重复的As,我想!有点像:
QueryBuildDataSource.orderMode(OrderMode::GroupBy);
QueryBuildDataSource.addGroupByField(fieldNum(CTable, Val));
Run Code Online (Sandbox Code Playgroud)
现在出现了我的奇怪行为以及我的问题的实际观点.在一个空字段上,group by被正确执行,我得到了这个:
A
B
C
Run Code Online (Sandbox Code Playgroud)
现在让我们在查找中选择"A",然后再次执行查找,因为我想点击"B".现在,group by已被禁用,原因不明,我得到的结果与之前的结果相同.
为什么会这样?我怎么能克服这个?
下面这两个陈述有什么区别?
newTable = orginalTable
Run Code Online (Sandbox Code Playgroud)
要么
newTable.data(originalTable)
Run Code Online (Sandbox Code Playgroud)
我怀疑.data()方法有一个性能优势,因为它在标准AX中更常用.
我通过X ++中的直接SQL调用存储过程,我无法弄清楚如何从中获取整数返回值.0很好,-1很差.
// Login to SQL DB
loginProperty = new LoginProperty();
loginProperty.setServer('localhost');
loginProperty.setDatabase('SQL_DB');
odbcConnection = new OdbcConnection(loginProperty);
statement = odbcConnection.createStatement();
/*
@in_customer_id INT
,@status INT
,@dlvmode NVARCHAR(25)
,@dlvmodedesc NVARCHAR(50)
,@tracking_id NVARCHAR(50)
,@note NVARCHAR(MAX)
,@modified SMALLDATETIME = null
,@override_email NVARCHAR(200) = null
*/
sqlStatement = strfmt(' EXEC pr_send_status_email ' +
' %1,' + // CustomerId
' %2,' + // Status
' %3,' + // DlvMode
' %4,' + // DlvMode description
' %5,' + // Tracking #
' %6,' + // …Run Code Online (Sandbox Code Playgroud) 我有一个有两个网格的表格.我有一个包含行的表,其中每行的状态为"是"或"否".我想在顶部显示所有"是",在底部网格中显示"否".
类似的情况是,如果我想显示SalesTable标题记录.顶部网格只是那些状态为已交付的网格,而底部网格则是状态为已开票的网格.
我怎么能做到这一点?
我已经接近添加了同一个表类型的另一个数据源.我添加了一个QueryBuildRange来过滤记录,但我遇到两个问题:
我在AOT中创建了一个名为"MyMacro"的宏对象.我把它放在:
#localmacro.myStrFmt
'Here is some text before (' + %1 + ') and some after'
#endmacro
Run Code Online (Sandbox Code Playgroud)
在我的课程中,如果我在run方法或类dec中本地定义它,它会起作用,但如果我使用#MyMacro则不行.是否有不同的语法或东西?
void run()
{
// #MyMacro
str retVal;
#localmacro.myStrFmt
'Here is some text before (' + %1 + ') and some after'
#endmacro
;
retVal = #myStrFmt("Text in parenthesis");
info (retVal);
}
Run Code Online (Sandbox Code Playgroud) 需要隐藏表单上某些用户组的某些选项卡.事实是,隐藏选项卡中的所有字段似乎不起作用.任何想法都表示赞赏.与AX 2009合作.
我正在研究AX2009中的一份报告,该报告将显示用户拥有哪些权限,我的问题是,
如果user1有权发布移动日志,我如何通过代码(在x ++中)找到?
谢谢