Добрый день! Есть несколько вопросов по cross-table (см. вложенные файлы):
1) При выгрузке в эксель колонка Year_plan имеет непонятно какой тип - не срабатывает автосумирование при выделении ячеек (выделяем мышью диапазон ячеек - справа внизу должна высветиться сумма). Если попытаться убрать пробел после тысяч (уже в самом экселе), то все становится нормально.
Тут нашел временное решение: если в источнике данных у данной колонки указать тип "string", то (парадокс?) выгружается в эксель как число.
2) Я хочу отсортировать не по Department, а по Year_plan, по возрастанию. Что делать? Если отключить сортировку по Department, а по Year_plan включить - не срабатывает. Если поменять местами колонки, то все работает. Такое ощущение, что сортировать можно только по первой колонке в таблице.
3) Можно ли как-нибудь заполнить по желанию пустые ячейки нулями? Пробовал менять свойство "значение" на что-то типа IIF(ИсточникДанных1.Fact == null, "0", ИсточникДанных1.Fact) - не помогает. Видимо до этого кода и не доходит, потому что данных-то и нет
шаблон с данными
(файл с данными csv сунуть в D:\temp)
cross-table : Сортировка, Выгрузка в Excel, пустые ячейки
cross-table : Сортировка, Выгрузка в Excel, пустые ячейки
Здравствуйте.
Если установить тип "string", число записывается в строку как есть, без разделителя групп, и преобразуется нормально.
Можно оставить тип данных "number", только снять галочку "Use group separator" в свойствах TextFormat.
Чтобы сравнение отрабатывало правильно, надо добавить своё преобразование числа в строку: в выражении для сортировки вместо поля "Year_plan" вписать выражение
Количество нулей до запятой взято примерно, возможно надо будет увеличить при очень больших числах.
Спасибо.
Если число записано как строка, Excel может сам преобразовать строку в число. Но при этом он не понимает разделитель групп.ka3yc писал(а):Добрый день! Есть несколько вопросов по cross-table (см. вложенные файлы):
1) При выгрузке в эксель колонка Year_plan имеет непонятно какой тип - не срабатывает автосумирование при выделении ячеек (выделяем мышью диапазон ячеек - справа внизу должна высветиться сумма). Если попытаться убрать пробел после тысяч (уже в самом экселе), то все становится нормально.
Тут нашел временное решение: если в источнике данных у данной колонки указать тип "string", то (парадокс?) выгружается в эксель как число.
Если установить тип "string", число записывается в строку как есть, без разделителя групп, и преобразуется нормально.
Можно оставить тип данных "number", только снять галочку "Use group separator" в свойствах TextFormat.
Сортировка работает по любой колонке. Есть только один нюанс: подразумевается, что названия колонок и строк - текстовые строки, поэтому и сравниваются они как строки. В вашем случае получаются строки "8000" и "10000" соответственно. При сравнении получается "10000" меньше чем "8000", так как цифра 1 меньше чем 8.ka3yc писал(а):2) Я хочу отсортировать не по Department, а по Year_plan, по возрастанию. Что делать? Если отключить сортировку по Department, а по Year_plan включить - не срабатывает. Если поменять местами колонки, то все работает. Такое ощущение, что сортировать можно только по первой колонке в таблице.
Чтобы сравнение отрабатывало правильно, надо добавить своё преобразование числа в строку: в выражении для сортировки вместо поля "Year_plan" вписать выражение
Код: Выделить всё
ИсточникДанных1.Year_plan.ToString("0000000000.000")
В свойстве кросс-таба EmptyValue укажите 0.ka3yc писал(а):3) Можно ли как-нибудь заполнить по желанию пустые ячейки нулями? Пробовал менять свойство "значение" на что-то типа IIF(ИсточникДанных1.Fact == null, "0", ИсточникДанных1.Fact) - не помогает. Видимо до этого кода и не доходит, потому что данных-то и нет
Спасибо.
cross-table : Сортировка, Выгрузка в Excel, пустые ячейки
Да, галочка помогла, спасибо!Ivan писал(а):Здравствуйте.
Если число записано как строка, Excel может сам преобразовать строку в число. Но при этом он не понимает разделитель групп.ka3yc писал(а):Добрый день! Есть несколько вопросов по cross-table (см. вложенные файлы):
1) При выгрузке в эксель колонка Year_plan имеет непонятно какой тип - не срабатывает автосумирование при выделении ячеек (выделяем мышью диапазон ячеек - справа внизу должна высветиться сумма). Если попытаться убрать пробел после тысяч (уже в самом экселе), то все становится нормально.
Тут нашел временное решение: если в источнике данных у данной колонки указать тип "string", то (парадокс?) выгружается в эксель как число.
Если установить тип "string", число записывается в строку как есть, без разделителя групп, и преобразуется нормально.
Можно оставить тип данных "number", только снять галочку "Use group separator" в свойствах TextFormat.
А вот тут пример был неудачный, согласен. Высылаю тот, который более приближен к моим условиям.Сортировка работает по любой колонке. Есть только один нюанс: подразумевается, что названия колонок и строк - текстовые строки, поэтому и сравниваются они как строки. В вашем случае получаются строки "8000" и "10000" соответственно. При сравнении получается "10000" меньше чем "8000", так как цифра 1 меньше чем 8.ka3yc писал(а):2) Я хочу отсортировать не по Department, а по Year_plan, по возрастанию. Что делать? Если отключить сортировку по Department, а по Year_plan включить - не срабатывает. Если поменять местами колонки, то все работает. Такое ощущение, что сортировать можно только по первой колонке в таблице.
Чтобы сравнение отрабатывало правильно, надо добавить своё преобразование числа в строку: в выражении для сортировки вместо поля "Year_plan" вписать выражениеКоличество нулей до запятой взято примерно, возможно надо будет увеличить при очень больших числах.Код: Выделить всё
ИсточникДанных1.Year_plan.ToString("0000000000.000")
Там, полагаю, уже не сработает даже то, о чем вы написали. Небольшой комментарий внутри шаблона.
Пример
Спасибо, тоже помоглоВ свойстве кросс-таба EmptyValue укажите 0.ka3yc писал(а):3) Можно ли как-нибудь заполнить по желанию пустые ячейки нулями? Пробовал менять свойство "значение" на что-то типа IIF(ИсточникДанных1.Fact == null, "0", ИсточникДанных1.Fact) - не помогает. Видимо до этого кода и не доходит, потому что данных-то и нет
Спасибо.
cross-table : Сортировка, Выгрузка в Excel, пустые ячейки
Здравствуйте.
Скорее всего вам придется реализовывать всё с помощью обычных бэндов, группировок и подсчетов сумм с помощью скриптов.
Спасибо.
Все верно. Сортировка производится внутри группы. Так и задумана работа кросс-таба по определению. Если отсортировать по произвольной колонке - это будет уже не кросс-таб.Как будто он создает группы из значений первого столбца, а внутри этих групп уже сортирует по значениям 2-й и других колонок.
И в случае, если мы захотим отсортировать по Volume - тоже ничего не получается
Скорее всего вам придется реализовывать всё с помощью обычных бэндов, группировок и подсчетов сумм с помощью скриптов.
Спасибо.
cross-table : Сортировка, Выгрузка в Excel, пустые ячейки
В таком случае, ИМХО, нужно дать возможность указывать критерий группировки в кросс-табе. Иначе что же это за кросс-таб?Ivan писал(а):Здравствуйте.
Все верно. Сортировка производится внутри группы. Так и задумана работа кросс-таба по определению. Если отсортировать по произвольной колонке - это будет уже не кросс-таб.Как будто он создает группы из значений первого столбца, а внутри этих групп уже сортирует по значениям 2-й и других колонок.
И в случае, если мы захотим отсортировать по Volume - тоже ничего не получается
Скорее всего вам придется реализовывать всё с помощью обычных бэндов, группировок и подсчетов сумм с помощью скриптов.
Спасибо.
cross-table : Сортировка, Выгрузка в Excel, пустые ячейки
Здравствуйте.
Первая колонка каждого дерева - главный уровень группировки, вторая колонка - следующий уровень группировки, и т.д.
Каждый последующий уровень группируется в пределах предыдущего.
Группировка по другим правилам нарушает структуру деревьев, и соответственно теряется смысл самого кросс-таба.
Спасибо.
По определению кросс-таб должен представлять данные в виде двух "деревьев", на пересечении ветвей которых считаются необходимые суммы.ka3yc писал(а):В таком случае, ИМХО, нужно дать возможность указывать критерий группировки в кросс-табе. Иначе что же это за кросс-таб?
Первая колонка каждого дерева - главный уровень группировки, вторая колонка - следующий уровень группировки, и т.д.
Каждый последующий уровень группируется в пределах предыдущего.
Группировка по другим правилам нарушает структуру деревьев, и соответственно теряется смысл самого кросс-таба.
Спасибо.