2017-04-07 11 views
0

レポートビルダーに新しく、レポートに実装しようとしている式に問題があります。しかし、標準的なものを手に入れましたが、私はどんな違いがあってもエラーメッセージが出ます。ここ数週間、Iveは多くの組み合わせを試していました。表現の助けを借りて、Googleを読んで、インターネットサイトで他の質問を見ていました。私の不満を減らすために、私は他の表現にもジャンプし、私は別の洞察が戻ってくることを望んでいたと思っています。 おそらく何かシンプルなものか、表現を書くことについて知らないものです。 誰かがこれらの表現を助けることを期待しています。彼らは私が最小のエラーを得るバージョン(通常は単に式が期待される)であり、Imが達成しようとしているものを示しています。レポートビルダー式

=IIF((Fields!RECORDFLAG.Value)='D',COUNTDISTINCT(Fields!TICKETNUM.Value),0) 
=IIF((Fields!TRANSTYPE.Value)='1' and (Fields!RECORDFLAG.VALUE)='A' or 
    'B',SUM(Fields!DOLLARS.Value),0) 
=IIF((Fields!TRANSTYPE.Value)='1' and 
    (Fields!RECORDFLAG.VALUE)='P',SUM(Fields!DOLLARS.Value),0) 
=Sum([DOLLARS] case when [RECORDFLAG]='P' then -1*[DOLLARS]) 

ありがとうございます。

+0

エラーメッセージを投稿できますか? SSRSでは「THINGY」(二重引用符)ではなく「THINGY(一重引用符)」が使用されています。それが助けになるかもしれない。 – BishNaboB

+0

さて、私のところでは反応が遅くなるかもしれません。私のコンピュータとデスクは公開されており、私は唯一のユーザーではないので、私は物事を整理しようとしているので、過去のメモは利用できません。だから、私は始めが最高のスタートだと思った – kadflowercloud

+0

更新された表現を投稿できますか? 0]テキストラン 'RECORDFLAG2.Paragraphs [0] .TextRuns [0]'の値式には、次のエラーが含まれています: – BishNaboB

答えて

0

=IIF((Fields!RECORDFLAG.Value)=”D”,COUNTDISTINCT(Fields!TICK‌​ETNUM.Value))

エラーメッセージには、ここに回答があります。iif()の偽の部分は指定されていません。使用する=IIF((Fields!RECORDFLAG.Value)=”D”,COUNTDISTINCT(Fields!TICK‌​ETNUM.Value), 0)

=IIF((Fields!TRANSTYPE.Value)="1" and (Fields!RECORDFLAG.VALUE)="A" or "B",SUM(Fields!DOLLARS.Value),0)

これは、SSRSでのORの仕組みではありません。使用: =IIF((Fields!TRANSTYPE.Value)="1" and (Fields!RECORDFLAG.VALUE="A" or Fields!RECORDFLAG.Value = "B"),SUM(Fields!DOLLARS.Value),0)

レポートデザインのために0が返されます。 countdistinct()は集合関数であり、一連のデータに使用されることを意図しています。しかし、あなたのiif()は、基本的には "現在の行が事実であるならば、意味のないすべての個別の値を数える"と言っています。

  • あなたが特定の値がsum()を使用して、指定された条件で発生した回数をカウントすることができます:前方にいくつかの方法があります。これはcountdistinct()と同じではありませんが、=sum(iif(Fields!RECORDFLAG.Value = "D", 1, 0))を使用すると、RECORDFLAGがそのセットに含まれる回数が表示されます。注:これは、データを集約する必要があります(SSRSでは、タブリックでグループ化されています)。

  • カスタムコードを使用して、セット内の異なる値を数えることができます。 https://itsalocke.com/aggregate-on-a-lookup-in-ssrs/を参照してください。同じデータセットを2回参照するだけで、データセットが1つしかない場合でも、これを適用できます。

  • レポートの動作方法を変更できます。 Fields!RECORDFLAG.Valueでグループ化し、グループをFields!RECORDFLAG.Value = "D"のどこにフィルタリングすることができます。その後、=countdistinct(Fields!TICKETNUM.Value)を使用して、RECORDFLAGがDのときにTICKETNUMの別の値を取得します。

+0

ありがとうございました。今日あなたの記事を見ましたが、トラフィックは目立っていて、コンピュータに集中する自由な瞬間はありませんでした。私は火曜日に答えを試し、成功したかどうかを知らせます。世話をする。 – kadflowercloud

+0

私はあなたが正しいと信じています。 0は、レポート設計のために返されます。おそらく別の値を数えるためにカスタムコードを使用する必要があり、リンクに感謝します。私はこれについてさらに研究し、コードを操作するためにもっと読むことができます。 Access&GISについての私の10年の古い知識と、レポートビルダーを学ぶためのヘルプセクションを読むことは、今まで私を運ぶことしかできません。少なくとも私は正しい方向を指していた。カスタムコードは私の目標である毎日の値を計算するのに役立つはずです。あなたのすべての協力に感謝します。 – kadflowercloud

関連する問題