У меня проблема с отчетом Crystal, который отображает данные из таблицы MySQL. В настоящее время я собираю данные непосредственно из таблицы, однако, когда пользователи пытаются ввести параметры, возникают проблемы, такие как:
- нулевые значения для параметров, возвращающих ошибки
- параметры не работают как указано
Затем я создал хранимую процедуру для возврата данных, если параметр пуст, и заставит работать сервер MySQL, а не сервер Crystal Reports.
Однако Crystal Reports, похоже, не распознает это, и у меня возникают проблемы с отображением результатов процедуры.
Вот копия процедуры, которую я использую:
Create Procedure sp_report
(IN @param1 varchar(64),
IN @param2 varchar(64),
IN @param3 int )
Begin
IF @param1 is null AND @param2 is null AND @param3 is null Then
Select * from tblData
ELSE IF @param1 is null AND @param2 is not null AND @param3 is not null then
Select * from tblData where field3 = @param3 and field2 = @param2
ELSE IF @param1 is not null AND @param2 is not null AND @param3 is null then
Select * from tblData where field2 = @param2 and field1 = @param1
ELSE IF @param1 is not null AND @param2 is null AND @param3 is not null then
Select * from tblData where field3 = @param3 and field1 = @param1
ELSE IF @param1 is not null AND @param2 is null AND @param3 is null then
Select * from tblData where field1 = @param1
ELSE IF @param1 is null AND @param2 is not null AND @param3 is null then
Select * from tblData where field2 = @param2
ELSE IF @param1 is null AND @param2 is null AND @param3 is not null then
Select * from tblData where field3 = @param3
ELSE IF @param1 is not null AND @param2 is not null AND @param3 is not null then
Select * from tblData where field3 = @param3 and field2 = @param2 and field1 = @param1
END;
Есть ли более простой способ сделать это, или я делаю что-то не так? Любые предложения будут с благодарностью.