2016-07-27 128 views
1

如何在表中添加两列。在这种情况下什么是正确的表达。 被告知我有两个数据集(Extra Deduction,Checklist),这两个数据集有数字列值,如何用不同的数据集添加这两列。如何在不同数据集(SSRS)中添加两列

这些步骤我做了(可以帮助它): -

  • 打开Visual Studio - 新建项目 - 在Business Intelligence部分我选择了报告服务。
  • 然后右键单击报告文件夹,然后我选择“添加新报告”。
  • 然后在报告向导中,我设置数据源名称“DataSource1”并选择“Microsoft Dynamics CRM Fetch”连接类型。
  • 在查询生成器中,我把XML查询带来我想要的数据,它包含两列(参考编号,扣除值),数据集名称是(DedctionDS)。
  • 然后,我在表格中添加了一列以从另一个数据集中获取另一个值。
  • 然后,我用XML查询创建了第二个名为(ChkListDS)的数据集,以带来两列(参考编号,检查列表值)。
  • 在表中的新列中,我创建了一个表达式来从其他数据集中获取值,表达式为(= Lookup(Fields!DedctionRefNo.Value,Fields!ChkListRefNo.Value,Fields!ChecklistValue.Value,“ChkListDS” ))。

到现在为止数据是完美的,但我现在需要在(扣除值)和(检查表值)之间进行求和,他们在不同的数据集中。

请看下面的图片来知道我在做什么。

1

我希望我解释得很好。

在这方面的任何帮助将不胜感激。

谢谢..

+0

你真的需要更详细地解释这一点。首先解释你正在谈论的概念(数据集?)是如何相互关联的。并检查这是否是项目的真名。另一个想法是将图片嵌入到问题中 - 避免为此提供链接。 – OzrenTkalcecKrznaric

+0

Mr. OzrenTkalcecKrznaric,我使用Visual Studio 2012创建SSRS报告(商业智能),并且在我的项目中创建了2个数据集,然后插入一张表来查看数据,就像您在图片中看到的一样,我只需要知道表达式将第1列与第2列添加到不同的数据集中。我希望我解释清楚你需要知道什么。我有你的想法。谢谢... –

+0

我会再试一次:你真的必须解释你做了什么。你跳过添加报告(你是怎么做到的?)。另一件事是你是如何将表连接到数据源的?如果你解释了这一点,你至少会部分回答你的问题:表中只能有一个数据集。最后,为了改善你自己的问题 - 编辑它,不要只是添加评论。 – OzrenTkalcecKrznaric

回答

1

如果是相同的数据源(最好是SQL Server)的,我会建议你使用SQL连接创建一个数据集。但是,这似乎存在问题,因此您必须使用另一种策略。

我在另一个项目(而不是我的代码)中看到的是,您可以使用一个数据源作为主数据源,并且该数据源的每一行查找另一个数据源中的匹配行。这需要SSRS中的Lookup()函数,并且您明显发现它是关联两个数据集的方式。

您现在唯一需要做的事情是从您使用查找功能收到的值中获取数字,并将其添加到您选择的列中。

你开始表达是:

= Lookup(
    Fields!DedctionRefNo.Value, 
    Fields!ChkListRefNo.Value, 
    Fields!ChecklistValue.Value, 
    "ChkListDS") 

要将其转换为十进制表示(我希望这是你在数据库中源),你需要CDEC()函数:

= CDec(Lookup(
    Fields!DedctionRefNo.Value, 
    Fields!ChkListRefNo.Value, 
    Fields!ChecklistValue.Value, 
    "ChkListDS")) 

,最后,你要与你的第一个值添加它,如:

= CDec(Lookup(
    Fields!DedctionRefNo.Value, 
    Fields!ChkListRefNo.Value, 
    Fields!ChecklistValue.Value, 
    "ChkListDS")) 
    + Fields!{Your-deduction-value-field-name} 

如果你扣数据库中的值字段不是十进制数,也必须使用相同的CDec()函数将其转换为十进制数。

+0

非常感谢,但我得到了#Error说:**警告1 [rsRuntimeErrorInExpression] textrun的值表达式'Textbox38.Paragraphs [0] .TextRuns [0]'包含一个错误:从字符串“ر.س 。24,500.00“键入'Decimal'无效**告知”ر.س.“意味着“SAR”是货币。最好的问候 –

+0

Mr. OzrenTkalcecKrznaric,你的答案是完美的,我不能直接连接到数据库,因为我在线使用MS CRM,而关于错误我认为这是因为货币格式。我会尽力找到解决问题的方法。无论如何,非常感谢我的赞赏。 –

+0

您的问题是您正在以显示格式接收数据,而不是接收可以使用普通算术运算操作的原始数字数据。如果你能以某种方式获得数字而不是格式化的数据(它应该如何),它就会起作用。这样你必须首先解析字符串,然后将其转换为数字,然后执行加法。这是非常丑陋的做法,但它可能是您唯一的选择。 – OzrenTkalcecKrznaric

相关问题