Update: с SQL Server 2016 с пакетом обновления 1 обходной путь пояснено ниже is no longer necessary и даты должны быть распознан правильно, не делая ничего особенного:
Чтобы попробовать эту новую функциональность вне, создайте простой запрос MDX с помощью конструктора запросов, которые включает поле даты из вашей модели данных. Когда вы будете использовать этот общий набор данных с помощью Mobile Report Publisher, он будет правильно распознавать поле даты из вашего запроса без необходимости дополнительной расчетной меры.
оригинальный текст ответа следующим образом:
Причина, почему это происходит, объясняется в official Microsoft documentation:
Тип возврата по умолчанию для запросов служб Analysis Services является строкой. Когда вы создаете набор данных в построителе отчетов служб отчетов, тип строки соблюдается и сохраняется на сервере.
Однако, когда обработчик таблицы JSON обрабатывает набор данных, он считывает значение значение столбца в виде строки и выводит строки. Затем, когда SQL Server Mobile Report Publisher извлекает таблицу, он также видит только строки .
Официальный обходной путь также объясняется там:
Обойти это добавить вычисляемый элемент, когда вы создание общего набора данных в Report Builder.
Пример такого вычисляемого элемента (из here):
cdate(format([Date].[Date].CURRENTMEMBER.MEMBER_VALUE, "yyyy-MM-dd"))
Но это обходной путь (как указывал Victor_Rocca в комментарии к официальной документации Microsoft) есть большая проблема:
недостатком является то, что он будет возвращать все даты, которые были выбраны в запросе, а не только те, которые имеют значение , связанное с ним в вашем кубе (по существу, удаление поведения NON EMPTY из запроса MDX). При просмотре большого количества записей через это может значительно повлиять на производительность вашего отчета.
Так что я думаю, что есть лучший обходной путь, который создает вычисляемое поле в наборе данных:
с таким выражением, как этот (предполагается, что имя вашего поля «Дата» и что он возвращает уникальные имена, такие как [Date Snapshot]. [Дата]. [Дата]. & [2010-01-01T00: 00: 00] и [Дата моментального снимка]. [Дата]. [Дата]. & [2010-12-31T00: 00: 00]:
=CDate(mid(Fields!Date("UniqueName"),33,10))
Таким образом, вам не нужно вручную редактировать поведение MDX и NON EMPTY. Это новое поле получает правильно идентифицирован как дата тип данных в мобильном Report Издательство:
В любом случае, помощь на дороге, по this post на основе информации, полученной на последнем проходе саммита (октябрь 2016 года), то В настоящее время разрабатывается:
Улучшенная поддержка сгенерированного MDX. Обходное решение текущей даты не потребует больше времени и облегчит жизнь каждого человека.
Хорошо, это расстраивает, но я бы хотел, чтобы я смог заставить SSRS преобразовать его в дату? – Fabian0510
Я думаю, вы должны просто добавить вычисленное поле в набор данных, где у вас есть формула, в которой вы преобразуете значение строки в дату (?). –
Да, даже рассчитанная мера не признается как тип даты. – Fabian0510