powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Report Builder. Рассчет итоговый суммы в разной валюте
25 сообщений из 35, страница 1 из 2
Report Builder. Рассчет итоговый суммы в разной валюте
    #38412116
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Пишу свой первый отчет в Report Builder. Столкнулся с такой проблемой, что не могу в посчитать итоговую стоимость по столбцу.
В этом столбце хранится информация о сумме заказа. В соседнем столбце валюта. Пробовал вот так:
Код: plaintext
=Sum(Fields!Payment_Amount.Value*IIf(Fields!Currency_payment.Value='EUR',Parameters!EUR_Rate.Value,1)
но выдает ошибку.
Подскажите в чем ошибка? и можно ли так делать?

PS можете посоветовать какую-нибудь книгу, желательно в электронном виде.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38412130
Madmech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая ошибка выдается?

Первое, что бросается в глаза, - это отсутствие закрывающей скобки справа. Второе - строки должны ограничиваться кавычками, а не апострофами, как у Вас. Как-то так:
Код: vbnet
1.
=Sum(Fields!Payment_Amount.Value*IIf(Fields!Currency_payment.Value="EUR",Parameters!EUR_Rate.Value,1) )
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38412141
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О спасибо.
Код: plaintext
=Sum(Fields!Payment_Amount.Value*IIf(Fields!Currency_payment.Value="EUR",Parameters!EUR_Rate.Value,IIf(Fields!Currency_payment.Value="USD",Parameters!USD_Rate.Value,IIf(Fields!Currency_payment.Value="GBP",Parameters!GBP_Rate.Value,1))))
Получилось вот так. Но, что то все-равно считает так же как и
Код: plaintext
Sum(Fields!Payment_Amount.Value)
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38412173
Madmech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте применить конструкцию Switch, чтобы не запутаться в большем кол-ве вложенных IIF. Может, Вы там что-то напутали, в этих нагромождениях.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38412226
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему то всегда вот это условие авторFields!Currency_payment.Value="EUR", false (записи в евро конечно есть).
Есть какой то отладчик в этой среде?
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38412245
Madmech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет отладчика, по-моему, нет, я, по крайней мере, не знаю.
Проверьте, может быть, у Вас где-нибудь (либо в таблице, откуда берете названия валют, либо здесь, в VB-скрипте) буква "E" пишется кириллицей. Или в таблице-справочнике по краям могут быть невидимые символы, например, пробелы, и их просто нужно урезать слева-справа.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38415406
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Madmech,
спасибо за совет. Позже попробую.

Пока взялся за простенький отчет целью которого вывести количество документов опеределенного пользователя. авторSystem.Web.Services.Protocols.SoapException: The Group expression for the grouping ‘Buyer’ refers to the field ‘Buyer’. Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate, the specified dataset scope. Letters in the names of fields must use the correct case.
at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
Столкнулся вот с такой ошибкой. Подскажите в чем проблема. В datasets написал вот такой запрос: авторSELECT name, status, count(PO_id)

FROM Order PO, Users
WHERE PO.Buyer = Users.ID
GROUP BY name,status
ORDER BY name, status
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38415677
Madmech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yanik,

Судя по всему, в группировке таблицы/матрикса Вы ссылаетесь на поле DataSet'а, которого в самом DataSet'е нет, или оно именуется как-то иначе. Я так понимаю, в группировке вместо Buyer должно стоять name или наоборот, в запросе надо заименовать name, как Buyer. Плюс, проверьте, что данная таблица завязана на этот набор данных.

авторSystem.Web.Services.Protocols.SoapException: The Group expression for the grouping ‘Buyer’ refers to the field ‘Buyer’ . Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate, the specified dataset scope. Letters in the names of fields must use the correct case.
at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)



Код: sql
1.
2.
3.
4.
5.
SELECT name, status, count(PO_id)
FROM Order PO, Users 
WHERE PO.Buyer = Users.ID
GROUP BY name,status
ORDER BY name, status
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38415826
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Madmech,

спасибо, разобрался уже. Что то с группировкой было.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38419750
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще небольшой вопросик.
Почему может неправильно суммировать?
Делаю суммирование по нескольким столбцам и почему то по одному из них сумма получается какая то другая.

В строке пишу вот так:
Код: sql
1.
=Fields!PO_Amount_RUB.Value


В итоговой колонке написанно вот так:
Код: sql
1.
=Sum(Fields!PO_Amount_RUB.Value)


Затем если сложить то, что получилось в строках не сходится со строкой итогов. В других столбцах все нормально.
Не совсем понятно что делает функция sum() .
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38419776
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно как то просуммировать то, что выше в строках, а не так:
Код: sql
1.
=Sum(Fields!PO_Amount_RUB.Value)
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38420003
Madmech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте на всякий случай такой вариант:
Код: vbnet
1.
=Sum(Fields!PO_Amount_RUB.Value, "DataSet")



Вместо DataSet подставляете имя того набора данных, на который завязана эта таблица.

Также расхождение может быть связано с округлением/усечением десятичных чисел.
Например, у Вас есть первоначальный набор чисел:
0.85
0.37
0.29

Вы его на уровне отчета в таблице округляете с помощью функции ROUND:
0.9
0.4
0.3
В сумме - это 1.6 .

Если отсечь лишний знак после запятой в настройках ячейки, то получим такой набор:
0.8
0.3
0.2
В сумме - это 1.3 .

Если посмотреть итог в таблице, то это будет сумма "сырых" данных - это 1.51 (и округление, и усечение дает 1.5 ). Как видно, все 3 числа различаются.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38420376
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Madmech, пробовал и такой вариант. В таком случае я так понял получается сумма по всей таблице.

Хотя вроде понял в чем проблема, только не знаю как ее решить. Суть в том, что в одном заказе может быть несколько товаров (строк), а информация хранится в одной таблице. Например:
PO_NumberReceipt_NumberPO_Amount Currency_payment Item71610110500RUBItem171610110500RUBItem2716102200RUBItem2716102200RUBItem3
В данном случае общая сумма заказа должна быть 10700. У меня получается 21400, что в принциппе логично. Можно ли как то исправить ситуацию не меняя структуру данных?
В Row Groups стоит группировка по [PO_Number]
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38420438
SilverVolg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yanik,
Скорее всего в запросе идет размножение записей за счет каких нибудь join'ов.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38420597
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SilverVolg,

причину то я знаю. вопрос как быть и что делать?
пока кроме как выкинуть item и сгруппировать по avg(), например, ничего в голову не приходит.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38420633
Madmech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yanik,

Можно, например, считать итоги отдельным запросом, помещенным в др. DataSet, потом эти итоги передавать в параметр, а далее ячейку таблицы с итогами завязывать на этот парметр. Это если речь идет о Grand Total в конце таблицы.

А если надо считать подитоги для каждого заказа, то я бы применил конструкцию WITH ROLLUP на уровне запроса. И потом в таблице выводил и саму детализацию, и подитоги сплошным массивом, с помощью условного выделения подкрашивая и ожирняя подитоги.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38420655
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Madmechyanik,
А если надо считать подитоги для каждого заказа, то я бы применил конструкцию WITH ROLLUP на уровне запроса. И потом в таблице выводил и саму детализацию, и подитоги сплошным массивом, с помощью условного выделения подкрашивая и ожирняя подитоги.
Да, надо подитоги и общий итог.
WITH ROLLUP использоваться здесь:
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38421123
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Madmech,

попробовал WITH ROLLUP. На примере выше все-равно получается 21400, а не 10700.
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38421334
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yanik,

Код: sql
1.
=Sum(AVG(Fields!PO_amount.Value,"receipt_number"))
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38421585
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Remind,

ошибкаSystem.Web.Services.Protocols.SoapException: The Value expression for the text box ‘Textbox132’ specifies a scope that is not valid for a nested aggregate. The scope must be the same name of the scope specified by the outer aggregate or the name of a group or data region that is contained in the scope specified by the outer aggregate.
at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38421775
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете приложить скриншот ваших группировок в отчете и то место, куда вы пытаетесь вставить формулу?
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38424590
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Remind,
Сюда вставляю формула (название полей немного отличается.
[/IMG]
Группировка:
[/IMG]
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38424591
yanik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
=Sum(avg((Fields!Payment_Amount.Value,"receipt_nember"))
вот такая формула... на скрине неточностность )
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38424605
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из вашего скриншота не видно в какую ячейку вы пытаетесь вставить формулу (на каком уровне группировки находится эта ячейка). Ну и плюс опечатка в слове "Receipt_number".
...
Рейтинг: 0 / 0
Report Builder. Рассчет итоговый суммы в разной валюте
    #38424614
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати, какая вресия SSRS у вас? Насколько я знаю Nested aggregates поддерживаются только начиная с 2008.
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Report Builder. Рассчет итоговый суммы в разной валюте
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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