powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Ошибка при компиляции отчёта: An internal error occurred on the report server...
12 сообщений из 12, страница 1 из 1
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35387149
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,

пытаюсь создать отчёт для 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. :(

Спасибо.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35387553
VLLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=iif(Sum(Fields!Field1.Value)>0,Sum(Fields!Field1.Value),"0.00")

вот пример суммы, так суммирует (если конечно только положительные значения суммировать)
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35387596
VLLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И забыл сказать - в датасете ни к чему определять формульные поля. Достаточно в строке со связаной группировкой написать формулу и оно усё посчитает. Как то так.

=COUNTDISTINCT(Fields!Field1.Value)

Это насчёт каунта.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35387597
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я попробовал по аналогии сделать так: =iif(Sum(Fields!ID.Value)>0,Sum(Fields!ID.Value),"0.00"),
при компиляции получаю ту же самую ошибку.

Даже если вот так написать: =Count(1) - результат не меняется.

Проблема именно в том, что как только начинаю использовать Count, Sum или Avg, появляется вышеописанная проблема. С другими функциями я не экспериментировал, но подозреваю, что будет то же самое.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35387607
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VLLVИ забыл сказать - в датасете ни к чему определять формульные поля. Достаточно в строке со связаной группировкой написать формулу и оно усё посчитает. Как то так.

=COUNTDISTINCT(Fields!Field1.Value)

Это насчёт каунта.
Действительно, я перенёс формулу =Count(Fields!ID.Value) из датасета в тело отчёта, в текстбокс и оно скомпилировало отчёт не обрушившись. И даже посчитало это значение.

Спасибо, это можно применять как обходное решение!

Но почему же в датасете нельзя создать вычисляемое поле??! Было бы логично определить его там и уже использовать в разных местах отчёта, где требуется.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35388072
VLLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё, Саш. Я тут попробовал в свободное время, ошибка воспроизводится, когда пытаешься в отдельном датасете сделать данное вычисляемое поле. Если же в уже полученном датасете с полями типа Database Field добавить ручками поле типа Calculated Field - то отрабатывает на ура.

Вот к примеру условие

=CInt(IIF((Fields!category.Value= "Accident"), "1", "0"))

А вот - сумма

=Sum(Fields!cost.Value,"Dataset1")

работает.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35388159
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - а по всем.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35388348
VLLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посчитать количество строк выдаваемых датасетом можно функцией 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)

может, дело в том, что у меня английская версия? попробую если будет время над русской поиздеваться
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35388424
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тоже английская. После того, как увидел эту проблему я зарядил туда все сервис-паки и хотфиксы, которые только нашёл. :)

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, та же петрушка.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35389552
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вычисляемое поле в dataset не может быть агрегатом.
---
This posting is provided "AS IS" with no warranties, and confers no rights.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35393601
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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(), но Вы говорите, что это невозможно.

Можно ли уже из модели получить общее количество строк (например), не прибегая к хранимым процедурам и т.п.?

Спасибо.
...
Рейтинг: 0 / 0
Ошибка при компиляции отчёта: An internal error occurred on the report server...
    #35393837
Alexander Tsimbalistov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, вопрос снят.

Агрегатные функции модели работают, просто я неправильно их доставал.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Ошибка при компиляции отчёта: An internal error occurred on the report server...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]