0

这是我正在使用的表的一个简短示例:

Month ............ SiteID ........ Patients ....FundingSource.... Year
January ............ 1 ........... 13 .......... ABCD.......... 2019
February............ 1 ........... 223 ......... ABCD.......... 2019
February ........... 2 ........... 52 .......... ABCD.......... 2019
February ........... 3 ........... 21........... EFGH.......... 2018
March .............. 1 ........... 44 .......... EFGH.......... 2018
April .............. 1 ........... 12 .......... ABCD.......... 2019
May................. 1 ........... 34 .......... ABCD.......... 2018
May................. 1 ........... 51 .......... ABCD.......... 2019
June ............... 1 ............62 .......... EFGH.......... 2017

我正在尝试输出一份报告,显示每月、每季度和年初至今针对给定参数看到的患者总数。参数是 FundingSource、SiteID、Month、Year。因为报告应该看起来像一个表格,所以它必须将结果打印一次/在一页上。

编辑:季度总数应该是从 7 月到 6 月的财政季度。Year 列是日历年。

患者字段本身是一个字符串字段,表示当月看到的患者数量。因此,创建每月总计很容易,因为只需添加字段即可。

对于季度总计,我创建了一个 Cdbl 公式字段来将 table.Patients 转换为一个数字(它是我们数据库中的一个 nvarchar 字段——不能在运行总计字段中求和),然后为该字段的每个季度(通过使该 cdbl 字段评估 Month IN [January, February, March, April] 等,并在 SiteID 更改时重置)。然后我制作了另一个公式字段,该字段将输出该季度的相应运行总计字段,无论哪个月份

前任。

 IF month IN [January, February, March, April] then
{#PatientsSeenQ1}

我遇到的问题是,给定这些参数字段,Quarterly 结果最终与 Monthly 结果相同,因为 Month = ?Month 并且无法缩小以捕获该季度的其他月份。我认为获得 YTD 总数也是同样的问题。

我一直在努力解决这个问题一段时间,所以任何帮助将不胜感激!这对我的工作来说是一个重要的问题,所以我一定会及时回复。

编辑:

我被要求像这样格式化输出(例如,假设日历年季度):

Reporting Period: May 2019
Funding Source: ABCD
Site: 1

........................... Monthly ... Quarterly ..... YTD
Number of patients seen:..... 51 ........ 63........... 299

我不必为每个站点、年份和月份报告,只需为输入的站点、年份、资金来源和月份(参数)报告。输出应该是用户将在网站上查看的报告的可打印版本。

编辑:

通过用户 heringer 的以下内容,我能够找到解决问题的方法。对于年初至今我有外部帮助,所以这是答案:

我制作了一个公式字段@FiscalYear 来确定年份:

IF {@RowMonthCDate} IN [7,8,9,10,11,12] and {@ParMonthCDate} IN [1,2,3,4,5,6] THEN toText((ToNumber({?Year})-1),"#")
ELSE IF {@RowMonthCDate} IN [1,2,3,4,5,6] and {@ParMonthCDate} IN [7,8,9,10,11,12] THEN toText((ToNumber({?Year})+1),"#")
ELSE toText((ToNumber({?Year})),"#")

然后对于 YTD Running 总计字段,我将其用于 Evaluate 公式:

 {reporting_year} = {@FiscalYear} AND
(
     if  {@ParMonthCDate} = 7  then  {@RowMonthCDate} = 7
else if  {@ParMonthCDate} = 8  then  {@RowMonthCDate} in [7,8]
else if  {@ParMonthCDate} = 9  then  {@RowMonthCDate} in [7,8,9]
else if  {@ParMonthCDate} = 10 then  {@RowMonthCDate} in [7,8,9,10]
else if  {@ParMonthCDate} = 11 then  {@RowMonthCDate} in [7,8,9,10,11]
else if  {@ParMonthCDate} = 12 then  {@RowMonthCDate} in [7,8,9,10,11,12]

else if  {@ParMonthCDate} = 1 then {@RowMonthCDate} in [7,8,9,10,11,12,1]
else if  {@ParMonthCDate} = 2 then {@RowMonthCDate} in [7,8,9,10,11,12,1,2]
else if  {@ParMonthCDate} = 3 then {@RowMonthCDate} in [7,8,9,10,11,12,1,2,3]
else if  {@ParMonthCDate} = 4 then {@RowMonthCDate} in [7,8,9,10,11,12,1,2,3,4]
else if  {@ParMonthCDate} = 5 then {@RowMonthCDate} in [7,8,9,10,11,12,1,2,3,4,5]
else if  {@ParMonthCDate} = 6 then {@RowMonthCDate} in [7,8,9,10,11,12,1,2,3,4,5,6]
) 
AND
 {report.fundingsource} = {?FundingSource} AND
 {report.Site_id} = {?Site_ID}

也许不优雅,但它为我提供了该财政年度参数月份的字段总数。再次感谢 heringer 在这方面与我一起工作了大约一周!

4

1 回答 1

0

您可以创建一个公式来使用年份和月份(并考虑第 1 天)构建日期。

然后按此公式创建 3 个组。

然后每年、每季度、每月使用组专家对每个组进行制作。

然后将简单的汇总字段放在组页脚上。

我不确定它是否适合您的最终设计。如果没有,请出示。

编辑:

在新评论之后,这是一个新的有目的的解决方案。我将保留上面的旧版本以供进一步参考。

根据 com 评论,我假设该报告将显示一年、一个月、一个资金来源和一个站点 ID 的数据。

我知道你从正确的方向开始。我会尽力帮助细节。

  1. 创建参数:{?Year}、{?Month}、{?FundingSource?}、{?SideId}。
  2. 创建运行总计字段 {#PatientsInMonth} 以求和 {Table.Patients} 并使用此公式设置“评估/使用公式”:
{Table.Year} = {?Year} AND
{Table.Month} = {?Month} AND
{Table.FundingSource} = {?FundingSource} AND
{Table.SiteId} = {?SiteId}
  1. 创建运行总计字段 {#PatientsInQuarter} 以求和 {Table.Patients} 并使用此公式设置“评估/使用公式”:
numbervar rowNumberOfMonth := 0; //TODO 我任由你决定,因为你说你做到了
 numbervar parNumberOfMonth := 0; //去做
 numbervar rowQuarter := (rowNumberOfMonth - 1) \ 4; //注意整数除法,符号没有错
 numbervar parQuarter := (parNumberOfMonth - 1) \ 4; //注意整数除法,符号没有错
 {Table.Year} = {?Year} AND
 rowQuarter = parQuarter AND
 {Table.FundingSource} = {?FundingSource} AND
 {Table.SiteId} = {?SiteId}
  1. 创建运行总计字段 {#PatientsInYear} 以求和 {Table.Patients} 并使用此公式设置“评估/使用公式”:
{Table.Year} = {?Year} AND
 {Table.FundingSource} = {?FundingSource} AND
 {Table.SiteId} = {?SiteId}
  1. 将运行总计字段放在报表页脚中。
于 2019-11-05T20:12:32.227 回答