SSRS-如何将数据集值与硬编码值匹配

时间:2018-11-07 02:10:43

标签: reporting-services ssrs-tablix rdl

我正在尝试创建RDL文件,并且需要tablix才能以以下格式显示。

这就是我希望结果显示的样子

This is how i want the results to look

以粗体显示的值是硬编码的值。这就是数据集中SELECT语句输出的样子

SQL输出

SQL Output

我不知道如何使从数据库输出的值与RDL文件中的硬编码值匹配。 “天”字段代表当月的某天,“数字”字段代表当日的销售数量。上面的示例显示,在该月的第一天,有100笔交易。我需要tablix以该特定格式输出。

如果当天不在SQL输出中(当天没有销售),我希望它输出空白和/或0。

有什么想法可以实现吗?非常感谢所有建议。我对SSRS / Report Builder还是很陌生,所以如果我在这个问题上说了些愚蠢的话,请多多包涵。

2 个答案:

答案 0 :(得分:0)

使用CTE为您需要的每一天创建行,然后加入结果。 CTE的起点可能是:

var dealer = _context.Dealers.FirstOrDefault(x => x.Id == Id);

foreach (var car in dealers.Cars)
{
    _context.Cars.Remove(car);
    // _context.Entry(car).State = EntityState.Deleted;
}

dealer.Cars.Clear();

_context.Dealers.Remove(dealer);
_context.SaveChanges();

然后您可能要根据查看的月份修改总天数。

答案 1 :(得分:0)

您可以使用查找来执行此操作,但是您需要在每个单元格中对查找进行硬编码。例如第一天

=lookup(cint(1),Fields!Day.Value,Fields!Num.Value,"Dataset1")

一种更快的方法是在前十天过滤的数据集上创建tablix:

=Switch(
Fields!DAY.Value <= 10 and Fields!DAY.Value >=1,"Include",
True,"Exclude"
)

在天上创建一个行组,然后创建一个包含day和num的列,以及包含Fields!DAY.Value + 10和Fields!DAY.Value + 20的列,并进行以下查找:

=lookup(Fields!DAY.Value+10,Fields!DAY.Value,Fields!NUM.Value,"DataSet1")
=lookup(Fields!DAY.Value+20,Fields!DAY.Value,Fields!NUM.Value,"DataSet1")