标签: x++

super()在哪里调用?

在表单数据源(SalesLine)上,我有一个validateWrite方法,该方法又调用super()方法来调用validateWriteSalesLine表上的方法,以及其他检查.

在SaleLine表中,我有自定义功能,用于记录,有时停止数据更改.

当我从新表单写入SalesLine时,我不希望触发此功能.因此,我想validateWrite在SalesLine表的方法中检查一个条件,以确定是否从validateWrite我的新表单调用.如果从我的新表单调用SalesLine写入,这将允许我跳过数据更改记录/停止.

什么是正确的方法?

我可以创建一个布尔值recordSaveChecks并在调用之前设置它SalesLine.write(),但是有更好的方法吗?

编辑:为了澄清,我没有要添加的表单特定的自定义验证,我有一个系统范围的验证(因此坐在SaleLine表上),当从1个特定表单调用时需要跳过它.

x++ axapta dynamics-ax-2009

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

如何从表 id 中获取 Common 对象?

如何通过 a 实例化一个公共类型对象(AX 中表的基类)TableId?此外,我们还能用 TableId 做什么?

我的目标是发送tableid到我的方法,然后在那里创建 id 所属表的缓冲区。是否可以?

x++ axapta aot dynamics-ax-2012

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

填充临时表的最快X ++代码

我需要在InventTrans上循环以累积某些日期的itemId数量,并使用此临时表作为数据源在表单中填充结果的临时表.我使用了一个类,对于一个itemId,这个过程很长(约5-10秒).

哪个代码最快?

  1. 使用执行该过程的类
  2. 临时表上的方法
  3. 在调用者表单上单击按钮()的过程

我该如何改进我的代码?

temp-tables x++ axapta

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

代码是在客户端运行还是作为批处理作业运行?

有什么方法可以确定代码是在客户端还是在批处理作业中执行?我想过使用curUserId并检查用户是否是我们用于批处理作业的用户,但如果用户发生更改,这种方法就会失败。

当它运行到客户端时,我试图用是/否对话框修改update表的方法VendTable,但是当代码作为批处理运行时,我不希望发生这种情况。

有任何想法吗 ?

x++ axapta dynamics-ax-2009

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

表字段中的"未检索"值

我有几个控件的表单.当我填充这些控件时,除了一个realEdit控件之外,所有控件都正确保存在数据源表中.它在表格中说"未经审查".我已经正确地设置了它的数据源和数据域属性,那么它可能是什么原因以及如何解决它?

x++ axapta dynamics-ax-2012 morph-x

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

如何查看X ++ select语句的SQL表达式?

我在AX的一份工作中有以下声明:

select RecId from pjiTable 
    join pID, Type, PrId from sjTable
    where pjiTable.Prid == sjTable.PrId &&
         (sjTable.Type == PjType::TimeMaterial || sjTable.Type == PjType::FixedPrice);
Run Code Online (Sandbox Code Playgroud)

我必须在SQL Server中使用它.如何将此select语句转换为SQL并在SQL Server Management Studio中使用它?

sql sql-server x++ axapta dynamics-ax-2012

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

从 ComboBox 中获取价值?

我在MyForm 中有一个ComboBox ( myComboBox ) 和 EnumType myEnumType

modified方法中,我想获取值。

我使用的代码如下:

if (myComboBox.enumTypeValue() == myEnumType::Value1 )
{
//action
}
Run Code Online (Sandbox Code Playgroud)

或者另一种方式

if (myComboBox.enumType(myEnumType::Value1) )
{
//action
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都无法取值。

方法是什么?谢谢大家!

享受!

enums combobox x++ axapta dynamics-ax-2012

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

Dynamics AX x ++无法关闭第一个表单

我在使用FormRun两次打开表单时看到一个奇怪的情况


    static void Job780(Args _args)
    {
        FormRun formRun;
        Args args = new Args();
        ;

        args.name(formstr(Form1));

        formRun = ClassFactory.formRunClass(args);

        formRun.init();
        formRun.run();
        formRun.wait();
    }

如果我运行此代码两次,那么我会看到2个表单,但在关闭第二个表单之前我无法关闭第一个表单.

我在几个实例和不同版本(2009年,2012年)上尝试过它.清除缓存和*.auc fiels.结果相同.

问题是如何解决它.我的意思是如何使表单以任何顺序正确关闭.谢谢.

x++ axapta dynamics-ax-2009 dynamics-ax-2012

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

AX 2012 X ++中的多线程

我们中的许多人正在审查AX 2012中的优化问题.在许多情况下,流程相关代码中的优化问题没有像我们在报告中有许多其他方法那样的解决方案.

案例:我有一个案例,我只需点击一下按钮就可以在AX 2012中执行多个销售订单的确认.在确认该销售订单后,我们需要执行一些其他"定制"流程,这是在遵循代码实践并最大限度地优化编码方法之后的一个漫长的过程.所以我对如何通过多线程处理这种场景提出了疑问

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

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

在运行时如何在表单中添加字符串控件?

我想在运行时单击按钮时在窗体上添加字符串控件。

到目前为止我尝试过的是:

  1. 创建一个表格
  2. 新增run 表格方式
  3. 新增runTimeControl_validate表格方式
  4. 在表单上添加了按钮

该按钮的单击方法具有以下代码:

void clicked()
{
    FormBuildDesign       design = Form.design();
    FormBuildGroupControl formBuildGroupControl;
    FormStringControl     c;
    FormControlType       fC;        
    ;

    // c = addGroup.addControl(FormControlType::String, 'RunTimeControl');

    c = ButtonGroup.addControl(fC::String, 'test');
    c.label("New control");
    formBuildGroupControl = formBuildDesign.control(addGroup.id());
}
Run Code Online (Sandbox Code Playgroud)

我在行中出错 c = ButtonGroup.addControl(fC::String, 'test');

错误:不存在枚举

x++ dynamics-ax-2012

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