Редактировать поле параметров 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, его немного сложно найти, если вы не знаете, что ищете...

Итак, что мне нужно было сделать:

  1. Выберите поле для фильтрации в отчете (в Details раздел)
  2. Нажмите на Select ExpertКнопка выбора эксперта на панели инструментов экспертов кнопка на Experts Панель инструментов.
  3. в Select Expert В диалоге название вашего поля должно появиться во вкладке.
  4. Ниже вы можете выбрать 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}
Другие вопросы по тегам