我有一个定期报告,每月运行两次以检查特定日期。我正在寻找不属于本月下一个 15 日或下一个最后一天的任何东西。
如果它有所作为,我正在使用 Crystal Reports 8.5。
我找到了一种自动化此过程的方法,但它非常庞大。我想知道以下代码是否有更优雅的解决方案:
if DatePart ("d", CurrentDate) < 15 then
not ((DatePart ("d", {gb_comb_stmt.nxt_stmt_dt}) = 15 and
DatePart ("m", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("m", CurrentDate) and
DatePart ("yyyy", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("yyyy", CurrentDate))
or (DatePart ("d", {gb_comb_stmt.nxt_stmt_dt}) = DatePart("d", DateAdd("d", -1 , DateAdd("m", 1 , Date(year(currentDate), month(currentDate), 1)))) and
DatePart ("m", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("m", CurrentDate) and
DatePart ("yyyy", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("yyyy", CurrentDate)))
else
not ((DatePart ("d", {gb_comb_stmt.nxt_stmt_dt}) = 15 and
DatePart ("m", {gb_comb_stmt.nxt_stmt_dt}) = (DatePart ("m", CurrentDate) + 1) and
DatePart ("yyyy", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("yyyy", CurrentDate))
or (DatePart ("d", {gb_comb_stmt.nxt_stmt_dt}) = DatePart("d", DateAdd("d", -1 , DateAdd("m", 1 , Date(year(currentDate), month(currentDate), 1)))) and
DatePart ("m", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("m", CurrentDate) and
DatePart ("yyyy", {gb_comb_stmt.nxt_stmt_dt}) = DatePart ("yyyy", CurrentDate)))