0

Silverlight Web パーツを開発しています。1 つのリスト エントリ ログがあります。このリストには、基本情報のすべてのエントリが格納されています。すべてのエントリが正常に保存されました。ここで、エントリ ログ リストでこれらのエントリが作成された最大の日付と最小の日付を取得したいと考えています。だから私は次のコードを使用しています

    public void PopulateTimeLog(String paymentStatus, String currentUser, timeLogDelegate populateCombo)
    {
        timeLogDelegateClient = populateCombo;

        ClientContext clientContext = ClientContext.Current;
        List list = clientContext.Web.Lists.GetByTitle("Time Log");

        string query = "<View>";
        query += "<Query>";
        query += "<Where>";
        query += "<And>";
        query += "<Eq>";
        query += "<FieldRef Name='Author'></FieldRef>";
        query += "<Value Type='Lookup'>" + currentUser + "</Value>";
        query += "</Eq>";
        query += "<Eq>";
        query += "<FieldRef Name='Payment_x0020_Status'></FieldRef>";
        query += "<Value Type='Text'>" + paymentStatus + "</Value>";
        query += "</Eq>";
        query += "</And>";
        query += "</Where>";
        query += "<OrderBy>";
        query += "<FieldRef Name='Created' Ascending='False'></FieldRef>";
        query += "</OrderBy>";                       
        query += "</Query>";
        query += "</View>";            

        CamlQuery Query = new CamlQuery();
        Query.ViewXml = query;

        listItemsTimeLog = list.GetItems(Query);
        //clientContext.Load(list);
        //clientContext.Load(listItemsTimeLog);

        clientContext.Load(listItemsTimeLog, itms => itms.Include(
                                                        itm => itm["Created"]));


        clientContext.ExecuteQueryAsync(HandleTimeLogRequestSucceeded, HandleTimeLogRequestFailed);

    }

    private void HandleTimeLogRequestSucceeded(object sender, ClientRequestSucceededEventArgs e)
    {
        ////call back on the UI thread
        System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
        {

            timeLogDelegateClient(listItemsTimeLog);
        });
    }

上記のコードでは、インデックス 0 で listItemsTimeLog の最大日付を取得し、最後のインデックスで listItemsTimeLog の最小日付を取得します。上記のクエリでは、listItemsTimeLog のすべての日付を取得したくありません。上記のクエリを単純化して、2 つの文字列値のみを取得するにはどうすればよいでしょうか。一方の文字列には最大日付が含まれ、もう一方の文字列には最小日付が含まれます。もし私がウェブサービスを介してそれを行うことができれば、それは私にとっても問題ありませんか? これどうやってするの ?上記の問題を解決できるコードを教えてください。

4

1 に答える 1

0

これにはRowLimitを使用できます。

マックス

<View>
  <Query>
    <Where>
      <And>
        <Eq>
          <FieldRef Name='Author'></FieldRef>
          <Value Type='Lookup'>[your use name]</Value>
        </Eq>
        <Eq>
          <FieldRef Name='Payment_x0020_Status'></FieldRef>
          <Value Type='Text'>[ your payment status]</Value>
        </Eq>
      </And>
    </Where>
    <OrderBy>
      <FieldRef Name='Created' Ascending='False'></FieldRef>
    </OrderBy>
  </Query>
 <RowLimit>1</RowLimit>
</View>

<View>
  <Query>
    <Where>
      <And>
        <Eq>
          <FieldRef Name='Author'></FieldRef>
          <Value Type='Lookup'>[your use name]</Value>
        </Eq>
        <Eq>
          <FieldRef Name='Payment_x0020_Status'></FieldRef>
          <Value Type='Text'>[ your payment status]</Value>
        </Eq>
      </And>
    </Where>
    <OrderBy>
      <FieldRef Name='Created' Ascending='True'></FieldRef>
    </OrderBy>
  </Query>
 <RowLimit>1</RowLimit>
</View>
于 2011-12-13T14:57:39.933 に答える