Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Axapta OpenTrans网格上的特定尺寸_Axapta_Dynamics Ax 2012_Dimensions - Fatal编程技术网

Axapta OpenTrans网格上的特定尺寸

Axapta OpenTrans网格上的特定尺寸,axapta,dynamics-ax-2012,dimensions,Axapta,Dynamics Ax 2012,Dimensions,我的任务是在VendOpenTrans中添加一个具有特定维度的字段。我已将DimensionAttributeValueSet、DimensionAttributeValueSetItem、DimensionAttributeValue和DimensionAttribute添加到VendOpenTrans表中的数据源中 在它们的属性中,我使用InnerJoin链接类型进行了连接(连接源)(我尝试了这里的所有选项)。然后,我从DimensionAttributeValueSetItem->Disp

我的任务是在VendOpenTrans中添加一个具有特定维度的字段。我已将DimensionAttributeValueSet、DimensionAttributeValueSetItem、DimensionAttributeValue和DimensionAttribute添加到VendOpenTrans表中的数据源中

在它们的属性中,我使用InnerJoin链接类型进行了连接(连接源)(我尝试了这里的所有选项)。然后,我从DimensionAttributeValueSetItem->DisplayValue(字段名)在我的网格上添加了一个字段

现在在VendOpenTrans的ExecuteQuery方法中,我添加了一个代码:

public void executeQuery()
{
    /*QueryBuildRange dimensionAttributeValueSetRange;
    ;
    dimensionAttributeValueSetRange = this.query().dataSourceTable(tableNum(DimensionAttribute)).addRange(fieldNum(DimensionAttribute, Name ));
    dimensionAttributeValueSetRange.value('MyDimensionName');
    super();
}
最终的结果是,我有了一个新的过滤器和我的维度。所以我在我的网格记录中没有看到在这个维度中有空值的记录

我想实现的是显示“MyDimensionName”的值(如果已填充),但如果未填充,则应仅显示一个空值


我花了这么多时间,但仍然没有解决问题…

在AX 2012中选择特定维度是非常棘手的,这是毫无道理的,但这种方法可能会有所帮助:

static void queryDimensionUpdate(LedgerDimensionAccount _dimension, Query _q, str _dataSourceName, FieldName _field = fieldStr(GeneralJournalAccountEntry,LedgerDimension))
{
    DimensionStorageSegment segment;
    DimensionStorage        storage = DimensionStorage::findById(_dimension);
    DimensionProvider       provider = new DimensionProvider();
    DimensionAttributeValue value;
    Name name;
    int segmentCount;
    int s;
    if (storage)
    {
        segmentCount = storage.segmentCount();
        for (s = 1; s <= segmentCount; s++)
        {
            segment = storage.getSegment(s);
            if (segment.parmDimensionAttributeValueId())
            {
                name = DimensionAttribute::find(DimensionAttributeValue::find(segment.parmDimensionAttributeValueId()).DimensionAttribute).Name;
                //info(strFmt('%1: %2, %3',  name,  segment.parmDisplayValue(), segment.getName()));
                provider.addAttributeRangeToQuery(_q, _dataSourceName, _field, DimensionComponent::DimensionAttribute, segment.parmDisplayValue(), name);
            }
        }
    }
}
static void queryDimensionUpdate(ledgerdimmensionaccount\u dimension,Query\u q,str\u dataSourceName,FieldName\u field=fieldStr(GeneralJournalAccountEntry,ledgerdimmension))
{
数据段;
维度存储=维度存储::findById(_维度);
DimensionProvider=新的DimensionProvider();
维度属性值;
姓名;
整数段计数;
int-s;
if(存储)
{
segmentCount=storage.segmentCount();
对于(s=1;s)