https://community.dynamics.com/ax/f/...ensions-in-ax7
X++:
private void test()
{
GeneralJournalAccountEntry generalJournalAccountEntry;
GeneralJournalEntry generalJournalEntry;
DimensionAttributeValueCombination dimensionAttributeValueCombination;
Query query = new Query();
QueryRun queryRun;
QueryBuildDataSource qbds1, qbds2, qbds3;
str strData;
qbds1 = query.addDataSource(tableNum(GeneralJournalAccountEntry));
qbds1.addSelectionField(fieldNum(GeneralJournalAccountEntry, TransactionCurrencyAmount), SelectionField::Sum);
qbds1.addSelectionField(fieldNum(GeneralJournalAccountEntry, AccountingCurrencyAmount), SelectionField::Sum);
qbds1.addGroupByField(fieldNum(GeneralJournalAccountEntry, TransactionCurrencyCode));
qbds2 = qbds1.addDataSource(tableNum(GeneralJournalEntry));
qbds2.relations(false);
qbds2.addLink(fieldNum(GeneralJournalAccountEntry, GeneralJournalEntry), fieldNum(GeneralJournalEntry, RecId));
qbds2.fetchMode(QueryFetchMode::One2One);
qbds2.addGroupByField(fieldNum(GeneralJournalEntry, AccountingDate));
qbds2.addGroupByField(fieldNum(GeneralJournalEntry, SubledgerVoucherDataAreaId));
qbds3 = qbds1.addDataSource(tableNum(DimensionAttributeValueCombination));
qbds3.relations(false);
qbds3.addLink(fieldNum(GeneralJournalAccountEntry, LedgerDimension), fieldNum(DimensionAttributeValueCombination, RecId));
qbds3.fetchMode(QueryFetchMode::One2One);
qbds3.addGroupByField(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(MainAccountValue)));
qbds3.addGroupByField(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(BusinessUnitValue)));
qbds3.addGroupByField(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(LegalEntityValue)));
qbds3.addGroupByField(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(DepartmentValue)));
queryRun = new QueryRun(query);
while (queryRun.next())
{
generalJournalAccountEntry = queryRun.get(tableNum(GeneralJournalAccountEntry));
generalJournalEntry = queryRun.get(tableNum(GeneralJournalEntry));
dimensionAttributeValueCombination = queryRun.get(tableNum(DimensionAttributeValueCombination));
strData = strFmt('%1;%2;%3;%4;%5;%6;%7;%8;%9;',
generalJournalAccountEntry.TransactionCurrencyAmount,
generalJournalAccountEntry.AccountingCurrencyAmount,
generalJournalAccountEntry.TransactionCurrencyCode,
generalJournalEntry.AccountingDate,
generalJournalEntry.SubledgerVoucherDataAreaId,
dimensionAttributeValueCombination.(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(MainAccountValue))),
dimensionAttributeValueCombination.(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(BusinessUnitValue))),
dimensionAttributeValueCombination.(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(LegalEntityValue))),
dimensionAttributeValueCombination.(fieldName2Id(tableNum(DimensionAttributeValueCombination), identifierStr(DepartmentValue))),
);
}
}