Функции Crystal Reports Date - PullRequest
2 голосов
/ 14 мая 2009

Я пытаюсь выбрать только записи, в которых их дата падает с текущей даты до конца месяца через три месяца.

В настоящее время в таблице есть две даты, соответствующие запросу:

Judy: 5/17/09  
asdf: 8/9/09

Это моя формула:

DateVar current = Date(CurrentDateTime); //takes the time off
DateVar ThreeMonthsAway = Date(year(CurrentDateTime), month(CurrentDateTime)+4, 1) - 1; // month+4, then -1 days to get last day three months away
{tblTenant.LeaseEnds} > current AND {tblTenant.LeaseEnds} < ThreeMonthsAway

Проблема в том, что он не возвращает результатов. Если я снимаю вторую часть, я получаю оба результата, но мне нужны даты только в течение трех месяцев.

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 15 мая 2009

Из вашего примера кода я предполагаю, что вы используете Crystal Syntax для написания формулы, поэтому назначение переменной должно происходить с использованием ": =", а не "=". Символ «=» используется для сравнения значений в синтаксисе Crystal. См. здесь , например. (Возможно, вы смешиваете его с базовым синтаксисом.)

Итак, ваш код должен читать (к сожалению, у меня нет CR для проверки):

DateVar current := Date(CurrentDateTime); //takes the time off
DateVar ThreeMonthsAway := Date(year(CurrentDateTime), month(CurrentDateTime)+4, 1) - 1; // month+4, then -1 days to get last day three months away
{tblTenant.LeaseEnds} > current AND {tblTenant.LeaseEnds} < ThreeMonthsAway
0 голосов
/ 14 мая 2009

Возможно, потому что вы добавляете 4 месяца - что в будущем - вместо того, чтобы вычитать их?

Ваш вопрос требует «конец месяца три месяца назад», но выборочные даты (по состоянию на 2009-05-14) относятся к будущему, поэтому возможно, что я неверно истолковал ваш вопрос, или ваш вопрос неправильно написано.

Вы распечатали значение ThreeMonthsAway, чтобы увидеть, к чему оно относится? Вы уверены, что форма Date () с тремя аргументами принимает аргументы в порядке год-месяц-день (это правдоподобно, но я также сталкивался с системами, где порядок был месяц-день-год)?


Некоторые из высказанных здесь замечаний были решены путем исправления вопроса (или комментарии были признаны неактуальными, поскольку вопрос был исправлен с момента высказывания комментариев).

...