我正在编写一个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方法?
如何在axapta中的表单之间传递单个参数?我想从表单A中的单击按钮事件运行表单B并传递...例如客户ID?我如何在目标表单中读取它,也许在init方法中?谢谢
我通过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) 如何使用高级过滤(使用x ++)在Ax中进行查询:
我想在SalesTable表单上显示这样的过滤条件SalesTable.SalesId == "001" || SalesLine.LineAmount == 100.
那么结果应该显示SalesOrder 001和其他salesOrders至少有一个SalesLine与LineAmount = 100?
我的任务是在DAX 2012中扩展产品收据的总帐过帐.
在2012年,在我看来,微软已经开始转向使用传统的LedgerVoucher,LedgerVoucherObject和LedgerVoucherTransObject方式向总账进行过帐,以使用源文档框架.
在我的情况下,我将扩展总帐过帐,以便在进行产品收货时进行额外过帐.现在,在进行产品收据更新时,实际上会创建两个凭证.一种是产品实际收货的核算,另一种是产品收货时的应计责任(这是在产品模型组/(现场组"分类帐集成")/(现场)产品收货的累计责任上设置的.
我设法通过修改类InventMovement和使用LedgerVoucherTransObject :: newTransactionsAmountDefault处理方法的updateLedgerPhysical方法来扩展其中一个凭证的发布.
我通过使用调试器并在上面提到的方法中放置一个断点,然后在调用堆栈中回溯跟踪到正确的方法.
但对于其他凭证(应计负债),我无法在哪里查找实际的总帐过帐,因为在我看来,ledgerVOucherTransObject的addTrans方法从未被调用过这个凭证?!?!?!
我已经尝试使用CIL在AOS上进行调试而没有执行CIL,我怀疑源文档框架使用除LedgerVoucher类之外的其他方式发布到总帐.
有没有人对源文档框架有任何经验,特别是如何使用这个框架工作添加总帐过帐,在我的情况下,我必须寻找适合我的modicfication的地方.
我想在对话框中添加一个 CheckBox.
我用过这段代码:
Dialog dialog;
DialogField dialogField;
NoYesId checkValue;
;
dialog = new Dialog("New dialog with checkBox");
dialogField = dialog.addFieldValue(identifierStr(NoYes) , checkValue);
checkValue= dialogField.value();
dialog.run();
info(strfmt("Value %1" , checkValue));
Run Code Online (Sandbox Code Playgroud)
所以,在Debug中我看到变量(checkValue)的值始终为NO.
在网络教程中,我看到了这段代码:
dialog.addFieldValue(typeid(NoYes), NoYes::Yes, "tip");
Run Code Online (Sandbox Code Playgroud)
但我有一个错误方法typeid不存在.
这是什么方式?谢谢大家,
请享用!