2013-12-17 3 views
0

Я использую отчеты Crystal для создания отчета с использованием определенного параметра даты, может использоваться диапазон между @p_start_date и @p_end_date или @t_start_date и @t_end_date. Оператор IF в хранимом процессе определяет, какую дату использовать с помощью логического параметра, заданного пользователем во время выполнения отчета (@use_p_date).Отключить параметры на основе выбора в отчетах Crystal Reports

То, что я хочу сделать, если @use_p_date является 1, то отключить другие поля даты (@t_start_date и @t_end_date) для выбора, так как они не будут использоваться, и вице-вера, если @use_p_date установлен в ложь.

Можно ли это сделать? Если да, то как это сделать?

ответ

1

Конечно, это можно сделать. Я уверен, что есть разные способы, чтобы идти об этом, но довольно простой один будет:

BEGIN 
IF (@use_p_date) =1 
    SELECT * FROM DataBase 
    WHERE OrderDate >[email protected]_start_date and OrderDate =< @p_end_date 
ELSE 
    SELECT * FROM DataBase 
    WHERE OrderDate >[email protected]_start_date and OrderDate =< @t_end_date 

END 

базы данных, очевидно, ваша база данных, OrderDate это поле данных ваши параметры даты смотрите.

EDIT:

Чтобы сделать это в самой ЧР, вы можете сделать две вещи. Вы можете использовать simmilar подход, как описано выше, используя что-то вроде этого в вашей записи Выбор:

If ({?use_p_date} =1 
Then OrderDate >={?p_start_date} and OrderDate =< {?p_end_date} 
Else OrderDate >={?t_start_date} and OrderDate =< {?t_end_date} 

Или вы могли бы сделать ваши параметры по желанию, а затем сделать что-то подобное в Record Select:

if hasvalue({?p_start_date}) and hasValue({?p_end_date}) then ..... 
else ....... 
+0

Я больше ищет отключенные параметры в реальном интерфейсе отчетов о кристаллах не в самой Sql, это уже на месте –

+0

См. пересмотренный ответ. Синтаксис может быть не 100% правильным, но я надеюсь, что вы поняли эту идею. –

+0

спасибо, это должно сделать трюк –

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