似乎axapta报告中的每个主体部分只能打印单个表中的列(相继).例如:我有一个包含以下表格的报表:SalesLine,InventTable和CustTable.然后我想在同一行上打印每个表中的列.看起来我可以在将字段放在可编程部分中时执行此操作,但在将其放置在正文部分时则不行.
我找到了一些难以理解或不具备性能的解决方法.必须有一个很好的干净方法来做到这一点?
我在学习的过程中仍然面临着一些麻烦,所以一旦我和大孩子一起玩,我想它会变得更糟:动态警告不像VS那样精确和有用,没有鼠标悬停提示,例外告诉我我错在哪里.我已经习惯了Visual Studio,它是智能感知和所有工具(与Visual Studio相比,动态是相当新的)
除了解决简单的代码问题之外,我还想学习如何解决我可能在我编写的代码或者我在Visual Studio中3分钟内解决的其他任何代码中的upcomming问题,以及如何在没有所有Visual Studio工具的动态ax.
在我的x ++代码中,我有以下内容
void run() {
try
{
startLengthyOperation();
this.readFile();
}
catch (Exception::Deadlock)
{
retry;
}
catch (Exception::Error)
{
error(strfmt("An error occured while trying to read the file %1", filename));
}
catch
{
error("An unkown error has occured");
}
endLengthyOperation();
}
Run Code Online (Sandbox Code Playgroud)
我正在进行最后一次捕获(之前,我没有得到关于异常的消息).但我想知道什么是真正发生并导致异常.我怎样才能找出异常是什么?
如何使用X ++在Microsoft Dynamics AX 2009中获取PDF文件的创建日期?
如何在按钮单击中打开该PDF文件?
我在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) 我正在使用X ++开发AX 2012,我正在尝试向LogisticsPostalAddress表单部分添加功能.部分功能需要填充表单(保存更改之前),但我似乎无法填充字段.
我找到了使用以下代码的参考:
LogisticsPostalAddress_ZipCode.text("NewCode");
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.如果我使用:
LogisticsPostalAddress.ZipCode = "NewCode";
Run Code Online (Sandbox Code Playgroud)
表单不会更改,但如果我保存并重新打开表单,则表示数据已更改.
我需要填充表单上的字段,以便用户可以在关闭表单之前查看新值.有什么建议?
凯文
对于开发人员,我有一个自定义列表页面,用户可以在其中选择少量记录,在操作窗格中点击按钮,在一个类中运行一些逻辑,所有这些都可以正常工作.我的问题是光标不会停留在同一记录中,而是转到网格的顶部.听起来像一个熟悉的问题?
我使用具有所有逻辑的自定义类中的args存储列表页面的FormDataSource.
我尝试了一些东西,但都没有用.
formDataSource.research(true) 真正的参数应该在研究完成其工作后保留位置.我猜这应该是最直接的解决方案.列表页面查询有两个使用外部联接加入的数据源,我的猜测是研究(true)仅适用于内部联接.
formDatasource.setPosition(位置)
int position;
position = formDatasource.getPosition();
formDatasource.research();
formDatasource.setPosition(位置);
我使用getPosition存储位置并使用setPosition再次设置它.没用
formDataSource.findRecord()
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
formDatasource.reread();
formDatasource.research();
formDatasource.findRecord(currentRecord);
我使用ds.cursor()获取当前记录并在research()之后将其传递给findRecord().没用
formDataSource.findValue()
currentRecord = formDatasource.cursor();
recId = currentRecord.RecId;
formDatasource.reread();
formDatasource.research();
formDatasource.findValue(fieldNum(Table,RecId),int642str(recId));
我使用ds.cursor()获取当前记录和recId,并在research()之后将其传递给findValue().没用
我调试了上面的代码,而cursor()方法确实得到了当前记录及其recId.我开始相信它可能是列表页面的限制,并祈祷有人证明我错了.
任何帮助表示赞赏.
需要隐藏表单上某些用户组的某些选项卡.事实是,隐藏选项卡中的所有字段似乎不起作用.任何想法都表示赞赏.与AX 2009合作.
我正在尝试创建自己的自定义深入分析功能,其中URL dynamics://0?myfunction_123456
将启动我自己的代码.
在C\SysStartupCmd\construct
,这个基本代码:
case 'viewalert':
sysStartupCmd = new SysStartUpCmdViewAlert(s,parm);
break;
case 'drilldown':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
case 'viewalertrule':
sysStartupCmd = new SysStartUpCmdViewAlertRule(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我已经测试了,所有这些都被这些网址解雇了:
但是,如果我添加自己的案例,让所有其他代码保持不变,我就无法获取要触发的URL:
case 'myFunction':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我在整个系统中进行了挖掘,并且无法弄清楚是什么导致dynamics://
URL只针对这三种情况触发.有注册表项还是什么?我发现C\EventDrillDownPoller
哪个似乎创建了一个PipeServer来处理传入的内容?
Dynamics AX 2012附带单元测试支持.
要进行有意义的测试,需要提供一些测试数据(存储在数据库中的表中).
为了获得单元测试的可重现结果,我们需要在每次运行测试时将相同的数据存储在表中.现在的问题是,我们怎样才能做到这一点?
我了解到有可能将TestSuite的隔离级别设置为SysTestSuiteCompanyIsolateClass
.这将创建一个空公司,并在测试运行后删除公司.在setup()
方法中,我可以使用insert语句将我的testdata填充到表中.这适用于小场景,但如果你有一个真实的项目,它会很快变得很麻烦.
我想知道是否有任何人在实际场景中如何使用X ++单元测试框架的实用解决方案.任何输入都非常感谢.
unit-testing x++ axapta dynamics-ax-2012 dynamics-ax-2012-r3