【问题标题】:Iif function in SQL Server Report Builder 2012 3.0SQL Server Report Builder 2012 3.0 中的 Iif 函数
【发布时间】:2015-12-30 14:59:41
【问题描述】:

我正在尝试制作自动发票,但最后一部分让我卡住了。如果客户与供应商不是来自同一个国家,那么他不应该支付增值税。为了在我的发票中得到这个,我试图插入一个表达式,但它给出了以下错误:

'Textrun 'Textbox16.Paragraphs[0].TextRuns[1]' 的值表达式包含错误:[BC30455] 未为“公共函数 IIf(Expression As Boolean) 的参数“FalsePart”指定参数, TruePart 作为对象,FalsePart 作为对象)作为对象'。'

这是我使用的表达方式:

=IIf(First(Fields!CustomerCountry.Value, "Invoice"))<>(First(Fields!SupplierCountry.Value, "Invoice")),0,((SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value))*0.21)

有人可以帮忙吗?

提前致谢

【问题讨论】:

  • 不确定该方法是否有用,但我注意到当我有像您这样的大查询时,最好将它们分成小块,然后使用必要的括号(我们)/括号(英国)
  • 要获得更多观众,请使用reporting-services 标签标记您的报告生成器问题
  • @AndyK 这些不应该颠倒过来吗?用美国的话说,这个 [ 将是一个括号,而这个 ( 将是一个括号。我认为在英国它们是 [ 方括号和 ( 圆括号。
  • 嗨@TPhe,我看了这个:english.stackexchange.com/questions/168762/…
  • @AndyK 对,该链接似乎说它在美国称为括号,在英国称为括号。你写评论的方式似乎是在暗示它在美国是一个括号,在英国是一个括号,这与我的理解相反。

标签: sql-server reporting-services reportbuilder3.0 iif ssrs-expression


【解决方案1】:

您的 iif 语句中有一个额外的括号,位于第一个 First 函数处。试试这个:

=IIf(First(Fields!CustomerCountry.Value, "Invoice")<>(First(Fields!SupplierCountry.Value, "Invoice")),0,((SUM(Fields!DurationHours.Value * Fields!HourlyRate.Value))*0.21))

【讨论】:

  • 似乎也不起作用。它给了我以下错误:textrun 'Textbox16.Paragraphs[0].TextRuns[1]' 的值表达式包含错误:[BC30198] ')' 预期。
  • 您还缺少一个结束括号。我已经编辑了我的答案。
  • @JorgenV 你能接受 TPhe 的回答吗?这将有助于其他追随你的人。
【解决方案2】:

请记住保持非常简单,然后再构建。

从以下内容开始:

【讨论】:

    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多