2009-06-08 11 views
3

定期的な会議ワークスペースの特定のリストからすべてのアイテムを取得したい。私は次のCAMLを実行しようとしました:会議ワークスペースでプログラムからリストからすべての予定リストアイテムを取得

<Query> 
    <Where> 
     <IsNotNull> 
     <FieldRef Name='ID' /> 
     </IsNotNull> 
    </Where> 
</Query> 

しかし、今後の会議のデータのみが表示されます。

ただし、私がリストを開いたときに、アクションメニューからすべての会議のデータを表示するように選択できます。それは私がそれが可能であると考えさせる。リストをシリーズアイテムに変換してすべての会議に表示できるようにすることはできますが、それは私が望むものではありません。

答えて

5

Yeehaaw!

最後に解決策を見つけました。 SPQueryクラスは、(例えば、2009年6月15日の項目の20090615のための)特定のインスタンスIDの値を割り当てることができますか、あなたはそれをSPMeeting.SpecialInstance列挙型の値を割り当てる必要があり、すべての項目を照会するかを、プロパティMeetingInstanceIdを持っている(しませんintにキャストすることを忘れてください)。

次に、必要な作業領域からアイテムを取得するためにクエリを実行するだけです。

ああ、と

using Microsoft.SharePoint.Meetings; 

を忘れていないか、またはあなたがSPMeeting.SPecialInstanceを使用してOMMITが、-3から0

サンプルコードに直接integeresを使用することができます。

using(SPSite site = new SPSite(<enter your workspace url>)) 
using (SPWeb web = site.OpenWeb()) 
{    
    SPQuery query = new SPQuery(); 
    query.MeetingInstanceId = (int)SPMeeting.SpecialInstance.AllButSeries; 
    query.Query = @"<Query> 
         <Where> 
          <IsNotNull> 
          <FieldRef Name='ID' /> 
          </IsNotNull> 
         </Where> 
        </Query>"; 

    SPList list = web.Lists[<enter your list>]; 
    foreach (SPListItem item in list.GetItems(query)) 
    { 
     Console.WriteLine(item[item.Fields.GetFieldByInternalName("Title").Id]); 
    } 
} 

これには時間がかかりました。おそらく、この問題でネット上の情報が多すぎないか、適切なキーワードを選択しなかったのですが、とにかくthisソースのクレジットは、「すべてのリストアイテムをsharepointワークスペースに再帰的に取得します。

他の人に役立つことを願っています。

+0

私にとっては、GetListItemsメソッドのシグネチャは です。public System.Xml.Linq.XElement GetListItems(string listName、string viewName、System.Xml.Linq.XElement query、System。 Xml.Linq.XElement viewFields、string rowLimit、System.Xml.Linq.XElement queryOptions、string webID) ' ' XmlElement'ではなく 'XmlNOde'を使用します。 私はそれについて同じエラーを受け取ります。 – Kiquenet

0

リストのデフォルトビューには、今後の会議リスト項目のみが表示され、過去の会議リスト項目は表示されないと思います。

CAMLクエリを実行するビューを指定しないと、デフォルトビューからすべてのアイテムが取得されます。デフォルトビューではなく、すべてのアイテムビュー(カレンダーの場合はすべてのイベントビュー)を使用し、SPQuery.ExpandRecurrenceプロパティもtrueに設定します。

+0

Pityですが、SPQuery.ExpandRecurrendeプロパティは役立ちません。 AllItemsビューには、すべての定期的な会議の項目は表示されず、この項目だけが表示されます。 出席者(AllItems.aspx)、出席者の管理(ManageA.aspx)、default.aspx ブラウザからデータを取得すると、URLに文字列(InstanceID = ALL)が表示されますすべてのデータを返します。 –

関連する問題