日期范围的公式来自两个表中的字段(Crystal Reports)

时间:2014-04-10 19:16:37

标签: crystal-reports formula

我正在尝试创建一个公式,允许从两个不同表中的字段中提取记录并在报告中打印日期。

1。)我有一个包含开始和结束日期参数的报告。

2。)我还有两个公式{@MinDate}{@MaxDate},它们打印了最短和最长日期:

minimum{?Event date}

maximum{?Event date}

我觉得我很擅长这一点。

3。)我正在尝试创建一个允许从两个不同表中的字段中提取记录并在报告中打印日期的公式。

我最接近的是:

({EVENT.DATE}>= {@MinDate} and{EVENT.DATE}<= {@MaxDate})OR ({CALENDAR.DATE}>= {@MinDate} and{CALENDAR.DATE}<= {@MaxDate})

这个公式给了我一个布尔响应,我想我理解为什么它给我一个布尔响应,但我不知道该怎么做。我正在寻找报告,以显示原始参数中的日期。

我是Crystal Reports的初学者;对不起,如果这是一个新手问题。

2 个答案:

答案 0 :(得分:0)

你看起来很好看,你只需要在记录选择公式中而不是在常规公式中应用比较逻辑。我可能还建议您创建两个单独的日期参数,而不是仅使用具有多选或范围的日期参数。

要获取记录选择公式,请单击&#34;报告&#34;在工具栏中→&#34;选择公式&#34; →&#34;记录&#34;。从那里输入你的逻辑:

({EVENT.DATE} >= {@MinDate} and {EVENT.DATE} <= {@MaxDate})
OR ({CALENDAR.DATE} >= {@MinDate} and {CALENDAR.DATE} <= {@MaxDate})

或者,如果您使用两个单独的参数,则可以取消最小/最大公式:

{EVENT.DATE} in {?Start Date} to {?End Date}
OR {CALENDAR.DATE} in {?Start Date} to {?End Date}

答案 1 :(得分:0)

我觉得你的方法让你的报告变得复杂......

从两个表中挑选数据......是否有水晶报告准备两个查询,以便在一个表上应用一个过滤条件,在第二个表上应用另一个过滤条件?如果是,那么你有回报正确结果的范围..否则我恐怕你可能最终得到错误的结果。

虽然你的问题不是关于最好的方法......我觉得你的方向是错误的,因此建议采用一种更好的方法,我认为这种方法会有效。

  1. 将报告中的表格与date field中两个表格record selection formula的使用权限相关联。
  2. 其次,而不是一个日期参数创建两个参数Start DateEnd Date,并且不使用MinMax函数。
  3. 由于您已经链接了表,现在只使用一个表中的日期字段,并在Record Selection Formula中写下公式。

    {EVENT.DATE} >= {?Start Date} and {EVENT.DATE} <={?End Date}