|
19.10.2019, 22:44 | #1 |
Участник
|
Отчёт SSRS в CRM 2011 выглядит не так как должен
Коллеги,
Добрый День, пытаюсь сделать отчёт, в Visual Studio всё выглядит хорошо, Но Когда добавляю в СРМ некоторые поля отсутствуют, может кто нибудь знает как поправить и где я накосячил? SQL: Код: SELECT TOP 3000 CRMAF_SalesOrder.name AS OrderName, CRMAF_Invoice.name AS InvoiceName, CRMAF_Invoice.new_invoicetypename AS InvoiceType, CRMAF_Invoice.new_actdate AS ActDate, CRMAF_Invoice.statuscodename AS Status, CRMAF_SalesOrderDetail.productidname AS Product, CRMAF_SalesOrder.customeridname AS Client, CRMAF_SalesOrderDetail.baseamount AS Income, CRMAF_Product.be_royaltyfee AS Royalty, CRMAF_Product.be_printingcostrus AS PrintingCost, (SELECT TOP 1 extendedamount FROM FilteredSalesOrderDetail AS deliveryitem WHERE (productidname = 'Delivery') AND (salesorderid = CRMAF_SalesOrderDetail.salesorderid)) AS DeliveryCost, (SELECT COUNT(salesorderid) - 1 AS OrderItemCount FROM FilteredSalesOrderDetail AS itemcount WHERE (salesorderid = CRMAF_SalesOrderDetail.salesorderid)) AS OrderItemCount FROM FilteredSalesOrderDetail AS CRMAF_SalesOrderDetail LEFT JOIN FilteredSalesOrder AS CRMAF_SalesOrder ON CRMAF_SalesOrderDetail.salesorderid = CRMAF_SalesOrder.salesorderid LEFT JOIN FilteredInvoice AS CRMAF_Invoice ON CRMAF_Invoice.salesorderid = CRMAF_SalesOrder.salesorderid LEFT JOIN FilteredProduct AS CRMAF_Product ON CRMAF_SalesOrderDetail.productid = CRMAF_Product.productid WHERE (CRMAF_SalesOrderDetail.productidname != 'Delivery') Из Visual Studio: https://imgshare.io/image/jKTwl Из CRM: https://imgshare.io/image/jKhGx |
|
20.10.2019, 20:21 | #2 |
Чайный пьяница
|
Доброго времени суток,
Вопрос 1 - зачем вы для всех использованных таблиц пользуетесь CRMAF_ префиксом в алиасе - вам прямо по каждой из таблиц необходимо префильтрация? Вопрос 2 - каков контекст запуска отчета у вас? Можете, пожалуйста, кликнуть в "Edit Filter" кнопку и выложить скриншот с фильтрами? По умолчанию фильтры выставляются в "было модифицированно за последние 30 дней", и, поскольку у вас везде используется Left Join - данные могут попросту не возвращаться.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
21.10.2019, 16:53 | #3 |
Участник
|
Коллеги,
Я пришел ближе к разгадки, оказалось я невнимательный, отчёт при любых(почти) сочетаний фильтров отдаёт одни и те же результаты. Пришел к выводу, что это кэш, загрузил этот же репорт под другим именем, и всё отобразилось корректно. Спасибо большое за советы, в запросе поправил префильтрацию, оставил только одну сущность, остального добился со стороны срм, с помощью related entities. Единственное не нашел каким образом можно почистить кэш генерируемых репортов, может кто нибудь сможет с этим помочь? |
|
21.10.2019, 17:19 | #4 |
Чайный пьяница
|
Цитата:
1. Со стороны VS. После того, как репорт отрендерился (используя закешированные данные) в панели "Preview" нажмите кнопку "Refresh". Это должно запустить выборку актуальных данных. 2. Если пункт 1 не сработал (у меня такое бывало иногда) - идите в папку с отчетами и ищите файл, у которого имя сформировано по принципу "ИмяОтчета.rdl.data" - этот файл как раз хранит кэш данных. Удалите его и перезапустите отчет. Удачи.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 21.10.2019 в 17:21. Причина: Орфография - наше все. |
|
21.10.2019, 17:55 | #5 |
Участник
|
Цитата:
Сообщение от a33ik
Вариантов 2:
1. Со стороны VS. После того, как репорт отрендерился (используя закешированные данные) в панели "Preview" нажмите кнопку "Refresh". Это должно запустить выборку актуальных данных. 2. Если пункт 1 не сработал (у меня такое бывало иногда) - идите в папку с отчетами и ищите файл, у которого имя сформировано по принципу "ИмяОтчета.rdl.data" - этот файл как раз хранит кэш данных. Удалите его и перезапустите отчет. Удачи. С этими способами я знаком, я имел ввиду кэш непосредственно в срм или SSRS |
|
21.10.2019, 18:44 | #6 |
Чайный пьяница
|
Насколько я помню при запуске самого отчета из CRM - данные не кэшируются, а используются актуальные данные из системы.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|