|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
Доброго времени суток. При построении отчета используется множество вычисляемых полей использующих одинаковые условия и одинаковый код Чтобы не плодить практически идентичные функции можно ли их вычислить в пользовательском коде (Отчет-свойства отчета-код) и как запустить их расчет Т.е. использовать что то наподобие Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
В итоге в поля отчета должны вставлятся =Code.var1 .... = Code.varN И откуда можно запустить выполнение этого кода(Code.setData(Fields)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 10:08 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
EvgenOrel, да можно смотри, например, здесь http://blogs.msdn.com/b/selvar/archive/2012/02/03/modifying-report-variables-in-reporting-service-2008-r2.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 10:35 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
тут все понятно, приблизительно так же как и написал, только переменная задается в другом месте. Весь вопрос в том откуда делать вызов: Код: sql 1.
Для одной переменной все просто - одна функция - одна переменная. Но когда таких переменных много? И, как писал выше - для нескольких переменных используются одни и теже условия - получится много одинаковых функций Я пробовал делать так Public Dim v as Integer Publict Function setD() v=20 return 0 End Function В отчет добавлял textbox = Code.setD() и textbox =Code.v который выводит значение 0. как вывести 20? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 11:00 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
EvgenOrel, не поняла, почему это функций должно быть много?? Одна функция может обслужить много переменных, поскольку внутри тела функции никак не используется имя переменной. Переменная же по ссылке передается. в примере так Код: vbnet 1. 2. 3. 4.
ее можно передать так Код: vbnet 1.
или так Код: vbnet 1.
или вообще так Код: vbnet 1.
тогда если сделать tablix, основанный на dataset с полем, в котором содержатся имена переменных (VariableName) и другим полем, в котором содержатся соответствующие значения (ParameterToCalcVariable), то ниже этого tablix все значения переменных будут рассчитаны проверила - работает Но если вдруг в dataset в поле VariableName будут имена переменные, которые в отчете не определены , то все повалится:) P.S. Это все в предположении, что я правильно поняла, что Вам требуется ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 11:29 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
EvgenOrel, когда я говорю про переменные, я имею в виду переменные, определенные в ReportProperties Variables, а не внутри сегмента Code. даже не пробовала с такими (из сегмента Code) работать в теле отчета ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 11:33 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
Andrews25, Дело в том что не одной переменной нужно опеределить значение, а несколько переменных, которые вычисляются в зависимости друг от друга: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
все переменные var1,var2,...,varN выводятся в теле отчета, то есть в одном поле мне нужно вывести var1 а в другом varN Можно все это сделать функцией, где указывать параметр какую переменную возвращать Код: sql 1. 2. 3. 4. 5.
но опять таки - функция будет вызываться в каждом месте, вместо того чтобы выполнить ее один раз ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 12:09 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
EvgenOrel, если переменных конечное количество, то передайте их каждую своим отдельным параметром. Измените значение переменных в коде функции. Как передать туда коллекцию полей - пока не знаю :) Код: vbnet 1. 2. 3.
в expression для textbox ПЕРЕД место , где должны использоваться переменные v1 и v2 - пишу Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 12:48 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
Andrews25, принцип я понял, хотя хотелось все таки немного другого - в коде описать все переменные и использовать их оттуда.Но все равно спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 13:09 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
EvgenOrel, кстати можно передать всю коллекцию Variables одни махом синтаксис обращения к конкретной переменной обычный Код: vbnet 1. 2. 3.
а с коллекцией Fields все еще непонятно ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 14:20 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
EvgenOrel, ну параметр Fields определенный вообще без Namespace понимает!!! Код: vbnet 1. 2. 3.
вызов Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 14:50 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
А как получить коллекцию Fields если более 1 DataSet? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 13:18 |
|
Использование внедренного кода в Reporting Services
|
|||
---|---|---|---|
#18+
Хм Для этого надо вызывать функцию из той части отчета, в которой ВИДИМ нужный вам dataset Т.е. добавить tablix или chart, который берет данный из этого dataset Может что-то более хитрое есть - но я не в курсе ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 15:46 |
|
|
start [/forum/topic.php?fid=31&msg=38018311&tid=1533687]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
283ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 662ms |
0 / 0 |