根据重复值执行方法操作

时间:2017-01-31 10:31:52

标签: axapta dynamics-ax-2012 x++

我有一个表,我正在创建一个方法,我希望根据来自2个字段的duplicatie值运行。

例如:

我有Table A,其中包含以下字段:

IncidentDescription
Identifier

现在我想根据以下标准在方法中运行某个操作:

如果同一个表中的另一行中已存在IncidentDescription,但仅当Identifier不同时才存在if statement。 (因此,如果仅存在与IncidentDescription的1行,则不会运行该操作)

我该如何解决这个问题?是否可以在 select count (IncidentDescription) from TableA; { // I am trying to convert the result, because it gives me the error: "Operand types are not compatible with the operator, i am not sure how to make this. serialCount = str2num(IncidentDescription); if (IncidentDescription > 1) //Action to go here; } 中完成此操作? 或者是否有可能/更好地运行“while select”查询,并且(如果存在)运行基于计数结果的计数方法(> 1)。

编辑:

我正在尝试按如下方式创建查询:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LinearLayout linearLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.activity_main, null);
    setContentView(linearLayout);
    EditText editText = new EditText(getBaseContext());
    editText.setHint("Programmatically Added EditText");
    linearLayout.addView(editText, 1);
}}

我稍后会在标识符中构建。

1 个答案:

答案 0 :(得分:2)

请使用以下代码作为提示并根据您的要求进行修改:

TableA  tableA;
TableA  tableAJoin;
;

select firstOnly tableA
    join tableAJoin
        where tableA.IncidentDescription == tableAJoin.IncidentDescription 
           && tableA.Identifier          != tableAJoin.Identifier;

if (tableA.RecId)
{
    info(strFmt("%1 - %2", tableA.Identifier, tableA.IncidentDescription));
    info(strFmt("%1 - %2", tableAJoin.Identifier, tableAJoin.IncidentDescription));
}

如果需要对表单数据源(其中tableA是数据源名称)的display方法进行检查,请按以下步骤进行修改

public void displayOption(Common _record, FormRowDisplayOption _options)
{
    TableA  tableACurrent;
    TableA  tableALocal;
    ;

    tableACurrent = _record;

    select firstOnly RecId from tableALocal
        where tableALocal.IncidentDescription == tableACurrent.IncidentDescription 
           && tableALocal.Identifier          != tableACurrent.Identifier;

    if (tableALocal.Identifier)
    {
        //record has dublicates
        ...
    }

    super(_record, _options);
}