Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
Коллеги, пытаюсь создать отчёт для MSRS 2005. Отчёт конструирую в MS Visual Studio 2005. Всё хорошо, пока не начинаю использовать функции в отчёте. Например на закладке Datasets добавляю новую функцию как вычисляемое значение: =Count(Fields!ID.Value). После этого при попытке скомпилировать, разместить на сервере (deployment) или просмотреть отчёт получаю следующее сообщение: Error 1 An internal error occurred on the report server. See the error log for more details. Если не использовать функции типа Count или Sum и т.п. отчёты компилируются и разворачиваются отлично. В логе (смотрел в \Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\LogFiles\) не вижу никаких сообщений об ошибках, отчёт до сервера не добирается (не разворачивается). Использую MS SQL 2005 Dev SP2 + hotfixes, ОС WinXP SP2. Отсутствие возможности пользоваться вычисляемыми значениями сводят на нет все преимущества MSRS. :( Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2008, 17:24 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
=iif(Sum(Fields!Field1.Value)>0,Sum(Fields!Field1.Value),"0.00") вот пример суммы, так суммирует (если конечно только положительные значения суммировать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 08:59 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
И забыл сказать - в датасете ни к чему определять формульные поля. Достаточно в строке со связаной группировкой написать формулу и оно усё посчитает. Как то так. =COUNTDISTINCT(Fields!Field1.Value) Это насчёт каунта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 09:34 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
Я попробовал по аналогии сделать так: =iif(Sum(Fields!ID.Value)>0,Sum(Fields!ID.Value),"0.00"), при компиляции получаю ту же самую ошибку. Даже если вот так написать: =Count(1) - результат не меняется. Проблема именно в том, что как только начинаю использовать Count, Sum или Avg, появляется вышеописанная проблема. С другими функциями я не экспериментировал, но подозреваю, что будет то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 09:35 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
VLLVИ забыл сказать - в датасете ни к чему определять формульные поля. Достаточно в строке со связаной группировкой написать формулу и оно усё посчитает. Как то так. =COUNTDISTINCT(Fields!Field1.Value) Это насчёт каунта. Действительно, я перенёс формулу =Count(Fields!ID.Value) из датасета в тело отчёта, в текстбокс и оно скомпилировало отчёт не обрушившись. И даже посчитало это значение. Спасибо, это можно применять как обходное решение! Но почему же в датасете нельзя создать вычисляемое поле??! Было бы логично определить его там и уже использовать в разных местах отчёта, где требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 09:43 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
И ещё, Саш. Я тут попробовал в свободное время, ошибка воспроизводится, когда пытаешься в отдельном датасете сделать данное вычисляемое поле. Если же в уже полученном датасете с полями типа Database Field добавить ручками поле типа Calculated Field - то отрабатывает на ура. Вот к примеру условие =CInt(IIF((Fields!category.Value= "Accident"), "1", "0")) А вот - сумма =Sum(Fields!cost.Value,"Dataset1") работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 12:15 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
VLLVИ ещё, Саш. Я тут попробовал в свободное время, ошибка воспроизводится, когда пытаешься в отдельном датасете сделать данное вычисляемое поле. Если же в уже полученном датасете с полями типа Database Field добавить ручками поле типа Calculated Field - то отрабатывает на ура. Вот к примеру условие =CInt(IIF((Fields!category.Value= "Accident"), "1", "0")) А вот - сумма =Sum(Fields!cost.Value,"Dataset1") работает. Тааак, с этого места поподробнее, пожалуйста. :) Я не понял последовательности действий, куда руками добавлять вычисляемое поле? Ты имеешь ввиду следующее: 1. Перейти на закладку Data. 2. Выбрать Dataset (в моём случае он единственный пока). 3. Нажать кнопку "...", т.е. редактировать датасет. 4. Перейти на закладку Fields и добавить туда новый Calculated field с каунтом. Так? Я сделал, но не помогло. :( Если открывать Report Model и добавлять туда вычисляемое поле, то действительно работает. Но например Count(ID) - подсчёт всех возвращаемых строк не работает как нужно. Оно считает для каждой строчки в отдельности и возвращает результат 1. А мне нужно не for each - а по всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 12:43 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
Посчитать количество строк выдаваемых датасетом можно функцией CountRow(<Имя датасета>). Я именно это и имел ввиду. Очень странно, у меня все работает на ура. результат select @@version Microsoft SQL Server 2005 - 9.00.2153.00 (Intel X86) May 8 2006 22:41:28 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1) может, дело в том, что у меня английская версия? попробую если будет время над русской поиздеваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 13:51 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
У меня тоже английская. После того, как увидел эту проблему я зарядил туда все сервис-паки и хотфиксы, которые только нашёл. :) Microsoft SQL Server 2005 - 9.00.3215.00 (Intel X86) Dec 8 2007 18:51:32 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2) Проверял эти отчёты на MS SQL Server 2005 SP2 EE, та же петрушка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 14:21 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
Вычисляемое поле в dataset не может быть агрегатом. --- This posting is provided "AS IS" with no warranties, and confers no rights. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2008, 21:24 |
|
||
|
Ошибка при компиляции отчёта: An internal error occurred on the report server...
|
|||
|---|---|---|---|
|
#18+
LevSВычисляемое поле в dataset не может быть агрегатом. --- This posting is provided "AS IS" with no warranties, and confers no rights. Ну хорошо. 1. У меня есть Report Model, в которой, допустим, одна табличка. 2. Из этой таблички вытаскивается только одно поле, например ID. 3. В модели я создаю ещё один аттрибут, который наывается ID_Count и выражение для него такое: COUNT(ID). Теперь я хочу в отчёте получить все ID и общее их количество. Если я вытаскиваю атрибут ID_Count, то он = 1 (потому что, расчёт в модели, как я понимаю, выполняется построчно). Тогда мне уже в отчёте нужно считать общее количество записей с помощью агрегата Count(), но Вы говорите, что это невозможно. Можно ли уже из модели получить общее количество строк (например), не прибегая к хранимым процедурам и т.п.? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 14:08 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=35389552&tid=1536913]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 370ms |

| 0 / 0 |
