【问题标题】:Crystal Reports Selection Criteria: Selected Date code cleanupCrystal Reports 选择标准:选定日期代码清理
【发布时间】:2011-10-26 08:39:32
【问题描述】:

我有一个定期报告,每月运行两次以检查特定日期。 我正在寻找不属于本月下一个 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)))

【问题讨论】:

    标签: crystal-reports crystal-reports-8.5


    【解决方案1】:

    您可以使用此公式获取该月的最后一天。用简单的英语,它返回“下个月第一天的前一天”:

    dateserial(year(currentdate),month(currentdate)+1,1-1)

    “下一个月的 15 号”只是略有不同:

    if datepart("d",currentdate) &lt 16
         then dateserial(year(currentdate),month(currentdate),15)
    else
         dateserial(year(currentdate),month(currentdate)+1,15)

    结合这两者,最终的记录选择将如下所示:

    not({gb_comb_stmt.nxt_stmt_dt} = {@formula1})
    and not({gb_comb_stmt.nxt_stmt_dt} = {@formula2})

    【讨论】:

    • 看起来“dateserial()”函数是这里的简短答案。我想这涵盖了它,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多