2012-02-01 78 views
1

我正在使用php和cam從sharepoint檢索列表,只是它似乎帶回了一個最小列表,我想知道如何設置列表視圖來顯示所有列表項目,而不是默認的最小列表。我現在是分享點的專家,這是我第一次使用caml,因此原諒我在這個問題上的不高興。Sharepoint Caml

這裏是我的查詢

<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
      <listName>'.$list.'</listName> 
      <rowLimit>'.$limit.'</rowLimit> 
      '.$queryXML.' 
      <queryOptions xmlns:SOAPSDK9="http://schemas.microsoft.com/sharepoint/soap/" >    
       <QueryOptions/> 
      </queryOptions> 
     </GetListItems>' 

我填好單子,並限制變量和它帶回從SharePoint默認的列表視圖,但我想補充要麼只是帶回一切都在列表的功能或者告訴它列帶回,但我有一點沒有運氣您的答覆提前在互聯網上:(搜索這

感謝

回答

3

你應該通過檢查Web服務的文檔開始方法在List.GetListItems。您需要爲ViewFields參數提供您想要返回的字段。

創建CAML查詢並不是心存隱晦。有很多不一致之處,這種語言被用於許多不相關的任務。從本地對象模型執行CAML查詢與調用Web服務稍有不同。幸運的是,U2U創建了CAML Query Builder,它允許您通過選擇您想要連接的方法(您的案例中的Web服務),列表,字段,過濾和排序條件來創建CAML查詢。

如果您的目標是SharePoint 2010,則可能需要避免(令人尊敬的)Web服務並使用REST/OData API。 OData是一個類似於GData的API,用於訪問各種數據源,這些數據源允許輕鬆篩選,並且最重要的是對所有數據源統一。您可以直接從代碼中調用REST API,也可以使用OData SDK for PHP爲您的列表生成代理類,以便以非常簡單的方式執行查詢。

查看「Introduction to querying lists with REST」以獲得對REST API的很好的介紹。

0

您需要轉到SharePoint的列表設置並設置項目限制,它負責顯示一定數量的記錄。如果您不指定視圖名稱,則使用默認視圖。如果此默認視圖設置爲批量顯示項目或顯示有限數量的項目,那麼您只能獲取該數量的記錄。這全部通過UI在列表/庫設置中設置。如果您確實指定了CAML查詢以及所有選項,則該視圖將被忽略,您將獲得CAML查詢返回的所有記錄。下面是一個定義新CAML查詢(使用C#)的示例,其中使用了視圖ID(花括號之間),此外還提供了CAML查詢。這縮小了從該觀點獲得的結果。您可以輕鬆地谷歌如何找到列表ID。

XmlDocument xmlDoc = new System.Xml.XmlDocument(); 
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", ""); 
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", ""); 
ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + "<DateInUtc>FALSE</DateInUtc>"; 
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", ""); 
ndQuery.InnerXml = "<Where><Eq><FieldRef Name='LinkTitle'/><Value Type='Text'>New Tasks</Value></Eq></Where>"; 
XmlNode confNode = listsSvc.GetListItems("NotificationConfig", "{92428C7A-3F35-41B2-AEC4-B8B1C7E64533}", ndQuery, null, null, ndQueryOptions, null);