|
12.08.2019, 15:29 | #1 |
NavAx
|
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))), ); } } |
|
12.08.2019, 15:35 | #2 |
Участник
|
группировка по валюте?
|
|
12.08.2019, 16:38 | #3 |
NavAx
|
|
|
12.08.2019, 16:44 | #4 |
Участник
|
мой-то вариант чем не рабочий?
__________________
Felix nihil admirari |
|
12.08.2019, 15:40 | #5 |
Участник
|
Цитата:
Сообщение от raz
X++: qbds3 = qbds1.addDataSource(tableNum(DimensionAttributeValueCombination)); .... 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))); |
|
12.08.2019, 16:41 | #6 |
Участник
|
Цитата:
открываешь такой это чудо-юдо в бровзере, а там - хоба-на! круче, чем у копперфильда, разрезающего амаяка акопяна! а поиск идёт по имени столбца X++: /// <summary> /// Gets the Value fieldId of the <c>DimensionAttributeValueCombination</c> table for a <c>DimensionAttribute</c> name. /// </summary> /// <param name = "_dimensionAttributeName">The name of the <c>DimensionAttribute</c>.</param> /// <returns>The Id of the Value field.</returns> public static FieldId getDimensionValueFieldId(Name _dimensionAttributeName) { container cachedResult = DimensionCache::getValue(DimensionCacheScope::DimensionKeyValueColumn, [DimensionMetadataConstants::DimensionCombinationValueColumn, _dimensionAttributeName]); if (cachedResult == conNull()) { DimensionAttribute dimensionAttribute = DimensionAttribute::findByName(_dimensionAttributeName); if (!dimensionAttribute) { throw error(Error::wrongUseOfFunction(funcName())); } if (dimensionAttribute.getStatus() == DimensionAttributeStatus::Inactive) { throw error("@Dimension:DimensionAttributeInactive"); } cachedResult = [fieldName2id(tableNum(DimensionAttributeValueCombination), dimensionAttribute.DimensionValueColumnName)]; DimensionCache::insertValue(DimensionCacheScope::DimensionKeyValueColumn, [DimensionMetadataConstants::DimensionCombinationValueColumn, _dimensionAttributeName], cachedResult); } FieldId dimensionAttributeFieldId = conpeek(cachedResult, 1); return dimensionAttributeFieldId; }
__________________
Felix nihil admirari |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
|
|