2015-01-11 3 views
0

SSRS дает возможность использовать parameters:Должен ли я использовать функцию или параметр в своем отчете?

enter image description here

В качестве альтернативы вы можете фактически write your own function в файле RDL:

Я задаюсь вопросом, в какой ситуации будет один использовать возможности функции, а чем параметр, поскольку вы можете реализовать логику в обоих>?

Например, MSDN выбрал закодировать следующим образом:

Public Function ChangeWord(ByVal s As String) As String 
    Dim strBuilder As New System.Text.StringBuilder(s) 
    If s.Contains("Bike") Then 
     strBuilder.Replace("Bike", "Bicycle") 
     Return strBuilder.ToString() 
     Else : Return s 
    End If 
End Function 

я могу точно также создать IIF заявление внутри параметра и сделать то же самое.

+0

Это вопрос о предпочтениях ...;) –

+0

ну, это мой вопрос, действительно ли это о предпочтениях, или существует ли стандартная практика, когда использовать что? –

+0

Например, я использую параметры в течение многих лет, и только сегодня я узнал, что могу писать функции! –

ответ

4

Я работаю с SSRS годами и никогда не использовал функцию (vba). Я думаю, что лучше использовать параметры. Мое предложение основано на следующих причинах ....

  1. SSRS - это инструмент, предназначенный для представления данных. Обработка данных лучше всего обрабатывать на сервере sql.
  2. Использование параметров также позволяет вам манипулировать данными ближе к источнику данных. Только данные, которые действительно необходимы в отчете. Приведение данных в SSRS, а затем фильтрация с использованием функций, очевидно, потребует ненужной обработки данных.
  3. Обслуживание кода проще, если у вас есть весь код в одном месте. (хранимые процедуры в sql-сервере, функции в отчетах ssrs).
  4. Зачем переделывать работу, которая уже позаботилась о вас. Пример функции, которую вы показали, может быть легко заменен с помощью встроенной функции замены sql-сервера (снова sql-server будет обрабатывать это намного лучше и быстрее, чем ssrs).

и список продолжается .... как говорится keep it simple, стараются в полной мере использовать встроенную в функциональности SQL сервера и SSRS и избежать написания ненужного кода.

+0

большое спасибо. вы дали мне много ясности. иногда получается, что у вас нет доступа к серверу sql. например, с помощью crm online, вы можете запрашивать только через веб-службы, что очень ограничивает, поэтому вы вынуждены делать много обработки на переднем конце. –

+0

Очень приятное объяснение;) –

+0

@ Yuck yup, когда вы работаете с источником с ограниченный доступ, то, очевидно, имеет смысл использовать эти функции, но поскольку ваш вопрос был помечен сервером sql, я бы не сделал это с sql-сервером, но да, возможно, с источником данных, например crm-online :) –

Смежные вопросы