Редактировать поле параметров Crystal Reports со значением NOT?
В Crystal Reports я хочу добавить WHERE field <> date
отфильтровать даты, которые имеют NULL
значение из моей базы данных в моем отчете.
Я использую унаследованную базу данных FoxPro на сервере, которая генерирует оператор SQL из моего отчета, но, похоже, в любом случае не добавляет WHERE
предложение к сгенерированному заявлению.
При непосредственном доступе к бэкэнду FoxPro даты со значениями псевдо-NULL имеют дату 1899-12-30
, но когда они вытягиваются из FoxPro через Crystal, они выглядят как 12/30/99
(возможно, это та же дата, MM/DD/YY
формат).
Я заметил, что в отчете есть существующее поле параметров, которое предлагает пользователю отфильтровать исходный запрос до определенного диапазона дат. Я попытался добавить свое собственное в дополнение к полю параметров, но обнаружил, что мне нужно с моим WHERE field <> date
не доступна, так как в основном есть только 3 типа параметров поля:
дискретный
- Принимайте единичные и дискретные значения.
Дальний бой
- Примите нижнее и верхнее значение, чтобы выбрать все в этом диапазоне.
Дискретный и дальний
- Сочетание двух выше
Ни один из них не может фильтровать результаты запроса с помощью WHERE NOT
Тип предложения, есть ли другой способ сделать это?
2 ответа
Все, что мне действительно нужно было сделать, это добавить некоторые критерии к WHERE
предложение оператора SQL, достаточно простое в клиенте SQL, но когда вы делаете это в Crystal Reports v10, его немного сложно найти, если вы не знаете, что ищете...
Итак, что мне нужно было сделать:
- Выберите поле для фильтрации в отчете (в
Details
раздел) - Нажмите на
Select Expert
кнопка на
Experts
Панель инструментов. - в
Select Expert
В диалоге название вашего поля должно появиться во вкладке. - Ниже вы можете выбрать
WHERE
критерии, используемые для фильтрации записей.
Добавьте это к вашей формуле выбора записей:
// remove actual nulls
AND Not(Isnull({table.date_field}))
// remove old dates
AND {table.field} <> date(1899,12,30)
// remove dates not in select parameter value
AND {table.field} IN {@date_parameter}