|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Здравствуйте. Пишу свой первый отчет в Report Builder. Столкнулся с такой проблемой, что не могу в посчитать итоговую стоимость по столбцу. В этом столбце хранится информация о сумме заказа. В соседнем столбце валюта. Пробовал вот так: Код: plaintext
Подскажите в чем ошибка? и можно ли так делать? PS можете посоветовать какую-нибудь книгу, желательно в электронном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 17:21 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
А какая ошибка выдается? Первое, что бросается в глаза, - это отсутствие закрывающей скобки справа. Второе - строки должны ограничиваться кавычками, а не апострофами, как у Вас. Как-то так: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 17:31 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
О спасибо. Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 17:39 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Попробуйте применить конструкцию Switch, чтобы не запутаться в большем кол-ве вложенных IIF. Может, Вы там что-то напутали, в этих нагромождениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:00 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Почему то всегда вот это условие авторFields!Currency_payment.Value="EUR", false (записи в евро конечно есть). Есть какой то отладчик в этой среде? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:31 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Насчет отладчика, по-моему, нет, я, по крайней мере, не знаю. Проверьте, может быть, у Вас где-нибудь (либо в таблице, откуда берете названия валют, либо здесь, в VB-скрипте) буква "E" пишется кириллицей. Или в таблице-справочнике по краям могут быть невидимые символы, например, пробелы, и их просто нужно урезать слева-справа. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:41 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 13:06 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 15:38 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Madmech, спасибо, разобрался уже. Что то с группировкой было. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 16:37 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Еще небольшой вопросик. Почему может неправильно суммировать? Делаю суммирование по нескольким столбцам и почему то по одному из них сумма получается какая то другая. В строке пишу вот так: Код: sql 1.
В итоговой колонке написанно вот так: Код: sql 1.
Затем если сложить то, что получилось в строках не сходится со строкой итогов. В других столбцах все нормально. Не совсем понятно что делает функция sum() . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 09:50 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Можно как то просуммировать то, что выше в строках, а не так: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 10:13 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Попробуйте на всякий случай такой вариант: Код: vbnet 1.
Вместо 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 числа различаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 12:08 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Madmech, пробовал и такой вариант. В таком случае я так понял получается сумма по всей таблице. Хотя вроде понял в чем проблема, только не знаю как ее решить. Суть в том, что в одном заказе может быть несколько товаров (строк), а информация хранится в одной таблице. Например: PO_NumberReceipt_NumberPO_Amount Currency_payment Item71610110500RUBItem171610110500RUBItem2716102200RUBItem2716102200RUBItem3 В данном случае общая сумма заказа должна быть 10700. У меня получается 21400, что в принциппе логично. Можно ли как то исправить ситуацию не меняя структуру данных? В Row Groups стоит группировка по [PO_Number] ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 14:50 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
yanik, Скорее всего в запросе идет размножение записей за счет каких нибудь join'ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 15:17 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
SilverVolg, причину то я знаю. вопрос как быть и что делать? пока кроме как выкинуть item и сгруппировать по avg(), например, ничего в голову не приходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 16:36 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
yanik, Можно, например, считать итоги отдельным запросом, помещенным в др. DataSet, потом эти итоги передавать в параметр, а далее ячейку таблицы с итогами завязывать на этот парметр. Это если речь идет о Grand Total в конце таблицы. А если надо считать подитоги для каждого заказа, то я бы применил конструкцию WITH ROLLUP на уровне запроса. И потом в таблице выводил и саму детализацию, и подитоги сплошным массивом, с помощью условного выделения подкрашивая и ожирняя подитоги. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 16:55 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Madmechyanik, А если надо считать подитоги для каждого заказа, то я бы применил конструкцию WITH ROLLUP на уровне запроса. И потом в таблице выводил и саму детализацию, и подитоги сплошным массивом, с помощью условного выделения подкрашивая и ожирняя подитоги. Да, надо подитоги и общий итог. WITH ROLLUP использоваться здесь: ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 17:16 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Madmech, попробовал WITH ROLLUP. На примере выше все-равно получается 21400, а не 10700. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 09:51 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
yanik, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 12:11 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:32 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Можете приложить скриншот ваших группировок в отчете и то место, куда вы пытаетесь вставить формулу? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 16:11 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:29 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
=Sum(avg((Fields!Payment_Amount.Value,"receipt_nember")) вот такая формула... на скрине неточностность ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:31 |
|
Report Builder. Рассчет итоговый суммы в разной валюте
|
|||
---|---|---|---|
#18+
Из вашего скриншота не видно в какую ячейку вы пытаетесь вставить формулу (на каком уровне группировки находится эта ячейка). Ну и плюс опечатка в слове "Receipt_number". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:37 |
|
|
start [/forum/topic.php?fid=31&tid=1533916]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 391ms |
0 / 0 |