AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.01.2014, 08:45   #1  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
#PivotTable Кол-во элементов в поле Сводной
Собственно в Сводной таблице есть поле "Дата", в нем все варианты дней месяца из исходных данных. Нужно получить сколько их.
X++:
    comPivotField = comPivotTable.PivotFields("Дата");
    comPivotItems = comPivotField.PivotItems();
    //comPivotItem = comPivotItems.PivotItems("04.12.2013");
    //comPivotItem = comPivotItems.PivotItems(1);
    //info(strfmt("%1", comPivotItems.Count()));
Что в комментах - не отрабатывает
Старый 23.01.2014, 11:50   #2  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Попробуйте так:
X++:
comPivotItems   = COM::createFromVariant(comPivotField.PivotItems());
    info(strfmt("%1", comPivotItems.Count()));
см. также Помогите: COM и VT_DISPATCH
__________________
За это сообщение автора поблагодарили: Player1 (3).
Старый 13.02.2014, 13:16   #3  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Задачу усложнили
Нужно то же самое кол-во элементов в выпадающем списке поля сводной, но средствами Excel (для формулы). Быть может кто подскажет как? Пока копаю в сторону "ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ(".
Также если есть возможность хотелось бы получить значение первого и последнего элементов списка (первая и последняя дата)
Старый 15.02.2014, 22:50   #4  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Через "ПОЛУЧИТЬ.ДАННЫЕ..." вряд ли получится в общем случае. В частных случаях (которые сильно зависят от структуры исходных данных и измерений) - чисто гипотетически (я не проверял) можно поиграться добавлением в сводную таблицу дополнительных вычисляемых полей, которые придется отображать в области данных (что, на мой взгляд, криво).

Поэтому, имхо, проще пойти "в лоб" - через UDF (User Defined Function). Создаете в VBA функцию примерно такого содержания:
PHP код:
Public Function PivotFieldCount(pivotTableName As String_
                                fieldName 
As String_
                                Optional sheetName 
As String) As Integer
    Dim sheet 
As Worksheet
    Dim pivot 
As PivotTable
    Dim field 
As PivotField
    
    
If sheetName "" Then
        Set sheet 
ActiveSheet
    
Else
        
Set sheet Worksheets(sheetName)
    
End If
    
    
Set pivot sheet.PivotTables(pivotTableName)
    
Set field pivot.PivotFields(fieldName)
    
PivotFieldCount field.PivotItems.Count
    
End 
Function 
И вставляете в нужной ячейке соответствующий вызов:
Код:
=PivotFieldCount("СводнаяТаблица1";"Дата";"Лист4")
Значения первого и последнего элемента - по аналогии, или даже стандартными формулами =МИН(), =МАКС() по исходному диапазону.

Небольшое замечание: будьте внимательны с подсчетом значений в поле сводной. Если данные в исходном диапазоне редактируются или удаляются, то даже после обновления сводной таблицы в ней останутся "закэшированными" удаленные даты. Они не будут отображаться, но будут храниться где-то внутри, как возможные значения поля, соответственно влияя на подсчет элементов.
__________________
Теги
pivottable

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Журнал переноса. Уменьшение кол-ва. Баг? ZVV DAX: Функционал 20 31.08.2009 15:00
Медленное копирование данных из Spreadsheet в PivotTable PSerg DAX: Программирование 0 12.08.2009 10:19
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
Распределение суммы пропорционально кол-ву в переносах AvrDen DAX: Функционал 21 23.09.2008 11:55
Кол-во по умолчанию в Закупках gudzon DAX: Программирование 2 01.11.2005 10:36
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:15.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.