标签: x++

Axapta对话验证

我在网上发现了几篇关于验证对话框中表单字段的帖子和文章,但我发现的所有例子似乎都没有正常工作.

有人可以发布一个完整,简洁的x ++代码示例,它生成一个包含单个文本字段的对话框,对其执行简单验证(如果text ="abc"),并在验证通过时关闭窗口(返回字段值)或如果验证失败,则在不关闭对话框的情况下生成Infolog警告.

对于我们这些刚开始使用x ++的人来说,我认为有一个实际的工作示例可以作为一个很好的起点.

谢谢!

validation dialog x++ axapta

3
推荐指数
1
解决办法
1万
查看次数

ttsbegin,ttscommit和"〜"运算符

我正在学习X ++,我有两个问题:

我不明白有什么用处ttsbegin and ttscommit!我必须使用它,实用程序是什么?

X ++标准:ttsBegin和ttsCommit AX 2012

这个运算符"〜"的用途是什么?

x++ axapta

3
推荐指数
1
解决办法
4187
查看次数

如何使用多个数据源中的字段创建查找?

我需要在我的表单字段中创建动态查找,它应该显示来自两个不同数据源的字段.我正在尝试执行它:

  public void lookup()
  {

    query = new Query();
   sysTableLookup = SysTableLookup::newParameters(tableNum(smmBusRelTable), this);
  qbds = query.addDataSource(tablenum(smmBusRelTable));
 // qbds.addDataSource(tableNum(DirPartyTable));
 //qbds.relations(true);

sysTableLookup.parmQuery(query);   
sysTableLookup.addLookupField(fieldNum(smmBusRelTable, Busrelaccount));
//sysTableLookup.addLookupfield(fieldNum(DirPartyTable, Name));


 sysTableLookup.performFormLookup();
}
Run Code Online (Sandbox Code Playgroud)

注释行是我试图添加不同数据源的操作.

x++ axapta dynamics-ax-2012

3
推荐指数
1
解决办法
1万
查看次数

根据用户输入启用/禁用向导的FINISH按钮

我使用向导向导在AX 2012中创建了一个向导...现在我需要根据用户输入放置1个功能,即启用或禁用FINISH按钮.

我已经尝试过这3种方法但没有成功..

this.finishenabled() - 关于向导类的SetupNavigation方法

finishenabled [formrun.tabidx()] = false - 关于向导类的SetupNavigation方法

syswizard.finishenable(false,curtabidx(),false) - 在向导表单的Tabpage上

如果有人有解决方案,请回复....

x++ axapta dynamics-ax-2012 dynamics-ax-2012-r2

3
推荐指数
1
解决办法
2387
查看次数

如何检查新行是否已创建但尚未保存

哪个FormDataSource方法用于确定记录尚未保存?

在此输入图像描述

我的意思是当我的网格线处于这种情况时,我希望我的mennuItemButton抛出错误.

谢谢...

x++ axapta dynamics-ax-2012

3
推荐指数
1
解决办法
269
查看次数

如何从所有BOM中删除特定文章?

我的任务是从AX 2009中删除所有物料清单(BOM)中的特定物品.

据我所知,该BOMTable表包含标题,BOM表中包含行.他们通过连接BOMId.

BOM表保存一个字段ItemId这是InventTable.ItemId.

假设是正确的,从BOM表中删除所有行是否足够BOM.ItemId == InventTable.ItemId?还有什么需要考虑的吗?

任何帮助表示赞赏

x++ axapta dynamics-ax-2009

3
推荐指数
1
解决办法
288
查看次数

如何强制查询范围?

我有一个AOT Query对象.如何range建立必填字段?

MandatoryFieldQuestion

x++ axapta dynamics-ax-2012 dynamics-ax-2012-r2

3
推荐指数
1
解决办法
422
查看次数

选择三个字符,除非它们遵循TextBuffer的@符号.replace()

我想选择并替换三个字符,比如"STR",除非它们在@符号之后.

我使用带有replace方法的文本缓冲区类.我可以替换这三个字符,但它也会替换三个字符前的字符.

这是我的代码:

static void simpleReplace(Args _args)
{
    TextBuffer txtb = new TextBuffer();         

    txtb.setText(" STR @STR #STR");
    txtb.regularExpressions(true);

    txtb.replace("[^@]STR", "FOO");
    info(txtb.getText());        
}
Run Code Online (Sandbox Code Playgroud)

结果是"FOO @STR FOO".

我想要的结果是"FOO @STR #FOO",空格和#完好无损.

我认为问题在于我匹配四个字符但只想替换三个字符.我假设我需要一个非捕获组或一些外观.我在Debuggex中尝试了以下表达式:

[^@](?:(STR))
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示

如果它们不跟随@,这似乎可以工作并选择三个字符,但似乎不受Dynamics AX的支持.我查看了此页面以获得X ++ RegEx支持,但找不到任何可以解决我的问题的语法.

是否可以更改上面的作业以产生此输出:"FOO @STR #FOO".

regex string x++ axapta dynamics-ax-2012-r3

3
推荐指数
1
解决办法
279
查看次数

D365FO中的命令链(方法换行)导致'对象未设置为对象的实例'

我试图通过扩展CustTable在D365FO中使用新的"命令链"功能.

在将其记录到新表中之前,我们需要检查更新方法上的值是否已更改.

[ExtensionOf(tableStr(CustTable))]
final class CustTable_Extension
{
    void update(boolean _updateSmmBusRelTable = true, boolean _updateParty = 
                true)
    {
        CustTable   custTable_Orig = this.orig();
        boolean hasChanged = this.CreditMax != custTable_Orig.CreditMax;

        next update(_updateSmmBusRelTable, _updateParty);

        if(hasChanged)
        {
            //do something
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在运行此代码时,我们得到"对象未设置为对象的实例"错误.发生错误是因为'this'对象为null.调用"next update(_updateSmmBusRelTable,_updateParty);"时也会出现同样的错误.

文件指出:"这让扩大的公共和保护的方法逻辑,而无需使用事件处理程序当您缠绕的方法,您还可以访问其他公共和保护的方法和类的变量."

有任何想法吗?

x++ axapta dynamics-ax7 dynamics-365-operations

3
推荐指数
1
解决办法
2453
查看次数

FormRun.wait():不建议使用方法,而是使用什么?

我目前正在为一个更大的项目修复一些BestPractice-Warnings。我在某些情况下会调用表单并等待做更多的事情,这主要是一些对话框。为了等待表单,经常使用以下代码:

Object formRun;

//declare args and stuf...
formRun = classfactory.formRunClass(args);
formRun.init();

//call methods on formRun (display,run,etc...)

formRun.wait();
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是'wait()'似乎已被弃用,我不知道如何替换或解决此问题。我已经看到一些开发人员将表单声明为“对象”以摆脱此警告(顺便说一下,它仍然无法工作),但这是一个后期绑定调用,也应避免。 ..

其他人遇到过这个问题吗 ?我尝试使用system.reflection命名空间调用此方法,但这看起来不正确,并且在x ++中的代码也比这种简单任务所需的代码多得多。

x++ axapta dynamics-365-operations

3
推荐指数
1
解决办法
182
查看次数