问题描述
我有一份 SSRS 报告,其中包含所有 12 个月的列和一个名为“年”的列。我已经有一个条件集,它采用报告运行日期的当前月份并仅显示过去的月份。例如,对于 march =IIF(Month(today())
现在我也必须将其与 Year 列联系起来。条件是 - 如果 Year 列有当前年份之前的年份,则上述条件不适用。所以,如果我今天运行 2020 年的数据,所有 12 个月的列都应该出现。如果我运行的是 2021 年的数据,我应该只会看到一月的列。有人可以帮我解决这个问题吗?是的,“年”列中只会有一年。数据永远不会超过一年。 谢谢。
编辑 1:
如果在 2021 年运行,则只应显示 YEAR 和 JANUARY 列。从今年 2 月开始,YEAR、JANUARY 和 FEBRUARY 应该会出现。
解决方法
由于您的数据集未标准化,因此您必须像现在一样在每列上设置列可见性。
尝试使用以下表达式。 (以三月为例)
import React,{ useEffect } from "react";
import { useDispatch,useStore } from "react-redux";
import { connect } from "react-redux";
import * as actions from "../store/actions/patientSide";
export function ActivityTemplates() {
const dispatch = useDispatch();
const store = useStore();
const ref = React.createRef();
useEffect(() => {
// Update the document title using the browser API
dispatch(actions.getTodaysActivityTemplates());
},[]);
const activities = store.getState().patientSide.todays_activities;
const listedStuff = activities.map((activity) => (
<div>
{activity.activity_name}
<label for="value"> Value: </label>
<input
type="number"
id="value"
defaultValue={activity.value}
min="0"
max="10"
></input>
</div>
));
const saveActivities = () => {
var inputs = ref;
console.log(inputs);
// Insert code to run the call to the backend
};
return (
<div>
<h1> Activity Templates</h1>
<form id="form" onSubmit={saveActivities()} ref={ref}>
{listedStuff}
<input type="submit" name="save" />
</form>
</div>
);
}
export default ActivityTemplates;
注意: =(Month(today()) < 3 AND MAX(Fields!Year.Value,"DataSet1") = YEAR(Today())
引用是数据集的名称。它区分大小写,必须用引号括起来,如上所示。
不需要 "DataSet1"
表达式,因为如果满足任一条件,上述表达式将返回 true。
替代方案
如果您的数据已标准化(您可以编辑数据集查询)并且看起来像这样...
IIF()
然后您可以简单地使用矩阵而不是表格,并按月对列进行分组。无需为任何内容设置可见性,因为数据根本不存在,因此在没有数据的月份不会呈现任何列。