1
我有一個每月運行兩次以檢查特定日期的週期性報告。 我正在尋找任何不在下個月15日或下個月的最後一天。Crystal Reports選擇標準:選擇日期代碼清除
我使用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)))
看起來像「dateserial()」函數是這裏的簡短答案。我認爲這涵蓋了它,謝謝。 – Ashlin