3

Sharepoint (2010) リストに基づいて SSRS (2008R2) レポートを作成しようとしています。主な問題は、レポートが実行されるリストがレポート パラメータである必要があることです。リスト構造がどうなるかはわかっていますが、共有ポイント サイトにはこの構造を持つ複数のリスト インスタンスを含めることができ、レポートを実行するとき、ユーザーはリスト名を選択する必要があります。また、レポートには MinDateTime と MaxDateTime の 2 つの日付パラメーターがあり、これら 2 つの時間の間にあるレコードのみが選択されます。

私が知る限り、レポートを作成するには少なくとも 2 つのアプローチがあります。

  1. Sharepoint リスト データ ソースを使用して CAML でデータセット クエリを記述し、DataSource でサイトを指定して、SSRS に残りの詳細を処理させます。この場合の問題は、ListName をレポート パラメーターとして指定できないことです。DataSet クエリは次のようになります。

    <pre>
       <RSSharePointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <ListName>BusinessList1</ListName>
              <ViewFields>
                <FieldRef Name="Title" />
                <FieldRef Name="BusinessUnit" />
                <FieldRef Name="ScanDateTime" />
              </ViewFields>
              <Query>
                <Where>
                  <And>
                    <Geq>
                      <FieldRef Name="ScanDateTime" />
                      <Value Type="DateTime">
                        <Parameter Name="MinScanDateTime" />
                      </Value>
                    </Geq>
                    <Leq>
                      <FieldRef Name="ScanDateTime" />
                      <Value Type="DateTime">
                        <Parameter Name="MaxScanDateTime" />
                      </Value>
                    </Leq>
                  </And>
                </Where>
              </Query>
            </RSSharePointList>
    

  2. XML データ ソースを使用して、ソープで読み取り可能な XML でデータセット クエリを記述し、/_vti_bin/lists.asmx Web サービスに直接アクセスします。クエリは次のようになります (パラメーターとしてリスト名を含む)。ただし、Date パラメータではまったく機能しませんでした。それらはどこに追加する必要がありますか?

     <pre>  
       <Query>
          <SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>
       <Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems">
          <Parameters>
             <Parameter Name="listName">
                <DefaultValue>BusinessList1</DefaultValue>
             </Parameter>
             <Parameter Name="viewFields">         
                  <ViewFields>
                    <FieldRef Name="Title" />
                    <FieldRef Name="BusinessUnit" />
                    <FieldRef Name="ScanDateTime" />
                 </ViewFields>
             </Parameter>
          </Parameters>
       </Method>
       <ElementPath IgnoreNamespaces="True">*</ElementPath>
    </Query>
    

どの方向も素晴らしいでしょう。ありがとう、

4

1 に答える 1

1

オプション 1 を使用して、クエリを式として記述できます。途中でパラメーターを使用して長い文字列を作成します。パラメータに BusinessLists のリストを提供するには、別のクエリが必要です。

式は次のようになります。

="<pre>
   <RSSharePointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <ListName>"

& Parameters!BusinessList.value & 

"</ListName>
          <ViewFields>
            <FieldRef Name="Title" />
            <FieldRef Name="BusinessUnit" />
            <FieldRef Name="ScanDateTime" />
          </ViewFields>
          <Query>
            <Where>
              <And>
                <Geq>
                  <FieldRef Name="ScanDateTime" />
                  <Value Type="DateTime">
                    <Parameter Name="MinScanDateTime" />
                  </Value>
                </Geq>
                <Leq>
                  <FieldRef Name="ScanDateTime" />
                  <Value Type="DateTime">
                    <Parameter Name="MaxScanDateTime" />
                  </Value>
                </Leq>
              </And>
            </Where>
          </Query>
        </RSSharePointList>"

[編集]: pre タグがどこから来たのかもわかりません。sharepoint リスト接続タイプを使用してテスト レポートを作成しましたが、それが追加されません。基本に関するこの MS リンクを確認してください。

返されるフィールドを指定する必要がないことが指摘されているため、非常に基本的なクエリ式は次のようになります (詰め込まれたパラメーターが追加されています)。

="<RSSharePointList xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><ListName>" & Parameters!List.Value & "</ListName></RSSharePointList>"

上記の元の例では、XML 内の二重引用符を 2 つ重ねてエスケープする必要があることを述べていませんでした。私はこれをテストしましたが、うまくいきます。

于 2013-02-19T03:29:35.387 に答える