CAML Query against content type
Hi
I am trying to query a Document library by content type using CAML:
SPQuery qry = new SPQuery();
string query = <Where><BeginsWith><FieldRef Name='ContentTypeId'/><Value Type='Text'>0x0101003de59dc6676b4ab49e4eb231a59ac906</Value></BeginsWith></Where>;
qry.Query = query;
SPListItemCollection items = docLib.GetItems(qry);
int itemCount = items.Count(); //this is 0
When I run this, no items are returned. However, when I go into the default view of the document library and filter against the content type, I can see documents are associated to that content type. Was wondering why I can see the documents
in the filtered default view, but the CAML query does not return any items.
Any advice or direction to some online resource would be greatly appreciated.
Thank you in advance
Rachael
I tested on a document library with document content type, the following two works:
<Where><BeginsWith><FieldRef Name='ContentTypeId'/><Value Type='Text'>0x0101007764851CB5A6344EB5C9E35447D01F39</Value>
<Where><BeginsWith><FieldRef Name='ContentTypeId'/><Value Type='Text'>0x0101</Value>
0x0101007764851CB5A6344EB5C9E35447D01F39 is the content type id of the list content type and 0x0101 is the content type id of the site content type.
but what follows does not work:
<Where><BeginsWith><FieldRef Name='ContentTypeId'/><Value Type='Text'>0x01010</Value>
By the way, i sugguest using the value type ContentTypeId instead of Text as the CAML generated by LINQ described in:
http://msdn.microsoft.com/en-us/library/ff798478.aspx
Similar Messages
-
How to use ReportQuery to query against two types of objects?
I have two loosely related classes Account and AccountState. They are not mapped to each other, have no inheritance or other relationships, but they both have account_id as their key attribute.
I would like to build a ReportQuery to return selective attributes across Account and AccountState. Is there anyway to do so?
Thanks in advance.
George ZouGeorge,
Typically for the scenario you are describing I would recommend adding a 1:1 relationship from Account to state using the shared PK. If this is an option you should note that to keep the ID napped in each as a direct-to-field you will need to set-up the 1:1 using a target foreign key.
For every 1:1 relationship in your model TopLink automatically creates a 1:1 query key. It is these query keys that you are implicitly using when defining expressions.
If you really don't want to add the 1:1 mapping to your model then you can alternatively add a 1:1 query key yourself to your Account class that allows for the relationship to be used in an expression and thus a Report Query.
Example 6-21 in the 9.0.4 application developers guide shows how to create a OneToOneQueryKey programmatically.
I would guess your descriptor after-load method would look something like:
public static void addToAccontDescriptor(Descriptor descriptor)
OneToOneQueryKey ownerQueryKey = new OneToOneQueryKey();
ownerQueryKey.setName("state");
ownerQueryKey.setReferenceClass(AccountState.class);
ExpressionBuilder builder = new ExpressionBuilder();
ownerQueryKey.setJoinCriteria(builder.getField("ACCOUNT.ID").equal(builder.getParameter("ACCOUNT_STATE.ID")));
descriptor.addQueryKey(ownerQueryKey);
Now whether you added the 1:1 mapping or the 1:1 query key the ReportQuery would look the same:
ReportQuery rq = new ReportQuery(Account.class, new ExpressionBuilder());
rq.addAttribute("id");
rq.addAttribute("State Value", rq.getExpressionBuilder().get("state").get("value"));
I hope this helps,
Doug -
How to query for content type in plumtree?
Hi,
I am able to browse through the documents in knowledge directory and their properties programmatically using IDK. Here I am getting document property ids and their values, but not property name?
Can anybody suggest me how to get property names for a given document in knowledge directory?
Regards,
GRemoteSession.getObjectManager(ObjectClass.Property)
ObjectManager.querySingleObejct(id)
theObject.getName()
is that what you mean?
Edited by: Joel Collins on Dec 5, 2008 5:57 AM -
Querying a Flash Lite content type running in the player
In the current Flash Lite specs, it's not possible to query
the content
type that is running from within the Flash Lite player
(wallpaper,
screensaver, standalone, etc).
My questions:
1.) Is this something that can be (easily) implemented in the
next rev
of Flash Lite? I can think of a few use cases where this
might be
(potentially) useful.
Basically, this would allow for a detect mechanism, and thus
provide a
way to disable or enable functionality within content based
on how it is
being run (based on the content-type detected).
For example, if FL content is run as a screensaver, no custom
softkey
navigation would appear. However, if run as standalone
content, a custom
UI might appear ... say giving the user the option to quit,
get more
info, etc.
I am posting here to see if others would be interested in
such
functionality.
2.) From my tests, I don't think the FL content type is
inserted into
the Flash Lite SWF header, but can it be? Injecting meta data
into SWF's
is tricky business ... does it make sense to add this
functionality in
the next rev of Flash Lite? ... again, this info might be
useful in some
content use cases, which tie back to #1.
Thoughts?
-sjI could see some strong potential FL improvements by opening
this door. This could be very useful in the sense that developers
could then #include a single .as file that would act as a master
library regardless of content type.
Another feature that ties into this that I would love would
be FL version detection. Granted, this file could sort of be
created with FS2 command detection. But still, creating one library
file that covers all user input methods would be very nice.
To take this a step further, could this also detect what
edition a phone is? Again, this could be done with via a
WURFL, but that is a huge
pain (not to mention memory intensive). It would be sweet if my
code could (simply) detect a 3rd edition series 60 Nokia and
automatically build in controls for screen rotation and soft key
repositioning.
To sum up, I agree with you Scott. Btw—nice to see you
in the forums. -
Content type, list definition and List instance - query
Dear all,
I created a list content type, list definition and list instance for a SessionsList.
I did mistake when created a event receiver file where field name is RegistrationsInfo - did typo error as RegistrationInfo. This field I want to make it as false in the ShowInNewForm= false
When I deploy it with event receiver file - I am getting stack trace error stating that the RegistrationsInfo field is missing.
Without event receiver file - when I deploy the solution and checked the field name - it is showing rightly as RegistrationsInfo.
Content Type:-
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{7113CBE5-57E9-4082-A0A2-492B35B69C8D}" Type="Lookup" List="Lists/Courses-List" ShowField="Title" Name="CourseTitle" DisplayName="Courses - Title" Required="FALSE" Group="Training Site Columns"/>
<Field ID="{920AE6A7-2AAE-4E43-8855-7CBD9978EC5E}" Type="Lookup" List="Lists/SessionTrainer" ShowField="FullName" Name="Trainer" DisplayName="Trainer" Required="FALSE" Group="Training Site Columns"/>
<Field ID="{F73D9A96-3C86-4E33-96D5-31E30B08BF40}" Type="Choice" Name="TrainingVenue" DisplayName="Training Venue" Required="FALSE" Group="Training Site Columns">
<CHOICES>
<CHOICE>Kerala Meeting Room</CHOICE>
<CHOICE>Orissa Meeting Room</CHOICE>
<CHOICE>Bihar Meeting Room</CHOICE>
</CHOICES>
</Field>
<Field ID="{B6E9C8F5-F1BD-4D98-BD30-194504859ACC}" Type="Number" Decimals="0" Min="0" Name="RegistrationsInfo" DisplayName="Registrations Info" Required="FALSE" Group="Training Site Columns"/>
<Field ID="{03281B47-F1D1-477E-9793-3A19118720EE}" Type="Number" Decimals="0" Min="0" Name="TotalSeatsInfo" DisplayName="Total Seats Info" Required="FALSE" Group="Training Site Columns"/>
<Field ID="{8A900663-6351-445B-ACB3-394F44D45C8D}" Type="Calculated" ResultType="Number" ReadOnly="TRUE" Name="OpenSeatsInfo" DisplayName="Open Seats Info" Required="FALSE" Group="Training Site Columns">
<Formula>=TotalSeatsInfo-RegistrationsInfo</Formula>
<FieldRefs>
<FieldRef Name="TotalSeatsInfo" ID="{03281B47-F1D1-477E-9793-3A19118720EE}"/>
<FieldRef Name="RegistrationsInfo" ID="{B6E9C8F5-F1BD-4D98-BD30-194504859ACC}"/>
</FieldRefs>
</Field>
<!-- Parent ContentType: Item (0x01) -->
<ContentType ID="0x0100a9dc01b7e78b45799fe59153d97e2b9e"
Name="SessionList"
Group="Session Content Types"
Description="Session Content Type"
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{7113CBE5-57E9-4082-A0A2-492B35B69C8D}" Name="CourseTitle" DisplayName="Courses - Title" Required="TRUE"/>
<FieldRef ID="{920AE6A7-2AAE-4E43-8855-7CBD9978EC5E}" Name="Trainer" DisplayName="Trainer" Required="FALSE" />
<FieldRef ID="{F73D9A96-3C86-4E33-96D5-31E30B08BF40}" Name="TrainingVenue" DisplayName="Training Venue" Required="FALSE"/>
<FieldRef ID="{B6E9C8F5-F1BD-4D98-BD30-194504859ACC}" Name="RegistrationsInfo" DisplayName="Registrations Info" Required="FALSE"/>
<FieldRef ID="{03281B47-F1D1-477E-9793-3A19118720EE}" Name="TotalSeatsInfo" DisplayName="Total Seats Info" Required="FALSE"/>
<FieldRef ID="{8A900663-6351-445B-ACB3-394F44D45C8D}" Name="OpenSeatsInfo" DisplayName="Open Seats Info" Required="FALSE"/>
</FieldRefs>
</ContentType>
</Elements>
Schema:-
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="SessionList" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/SessionList-LD-SessionList" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentType ID="0x0100a9dc01b7e78b45799fe59153d97e2b9e" Name="SessionList" Group="Session Content Types" Description="Session Content Type" Inherits="TRUE" Version="0">
<FieldRefs>
<FieldRef ID="{7113CBE5-57E9-4082-A0A2-492B35B69C8D}" Name="CourseTitle" DisplayName="Courses - Title" Required="TRUE" />
<FieldRef ID="{920AE6A7-2AAE-4E43-8855-7CBD9978EC5E}" Name="Trainer" DisplayName="Trainer" Required="FALSE" />
<FieldRef ID="{F73D9A96-3C86-4E33-96D5-31E30B08BF40}" Name="TrainingVenue" DisplayName="Training Venue" Required="FALSE" />
<FieldRef ID="{B6E9C8F5-F1BD-4D98-BD30-194504859ACC}" Name="RegistrationsInfo" DisplayName="Registrations Info" Required="FALSE" />
<FieldRef ID="{03281B47-F1D1-477E-9793-3A19118720EE}" Name="TotalSeatsInfo" DisplayName="Total Seats Info" Required="FALSE" />
<FieldRef ID="{8A900663-6351-445B-ACB3-394F44D45C8D}" Name="OpenSeatsInfo" DisplayName="Open Seats Info" Required="FALSE" />
</FieldRefs>
</ContentType>
</ContentTypes>
<Fields>
<Field ID="{7113cbe5-57e9-4082-a0a2-492b35b69c8d}" Type="Lookup" List="Lists/Courses-List" ShowField="Title" Name="CourseTitle" DisplayName="Courses - Title" Required="FALSE" Group="Training Site Columns" />
<Field ID="{920ae6a7-2aae-4e43-8855-7cbd9978ec5e}" Type="Lookup" List="Lists/SessionTrainer" ShowField="FullName" Name="Trainer" DisplayName="Trainer" Required="FALSE" Group="Training Site Columns" />
<Field ID="{f73d9a96-3c86-4e33-96d5-31e30b08bf40}" Type="Choice" Name="TrainingVenue" DisplayName="Training Venue" Required="FALSE" Group="Training Site Columns">
<CHOICES>
<CHOICE>Kerala Meeting Room</CHOICE>
<CHOICE>Orissa Meeting Room</CHOICE>
<CHOICE>Bihar Meeting Room</CHOICE>
</CHOICES>
</Field>
<Field ID="{b6e9c8f5-f1bd-4d98-bd30-194504859acc}" Type="Number" Decimals="0" Min="0" Name="RegistrationsInfo" DisplayName="Registrations Info" Required="FALSE" Group="Training Site Columns" />
<Field ID="{03281b47-f1d1-477e-9793-3a19118720ee}" Type="Number" Decimals="0" Min="0" Name="TotalSeatsInfo" DisplayName="Total Seats Info" Required="FALSE" Group="Training Site Columns" />
<Field ID="{8a900663-6351-445b-acb3-394f44d45c8d}" Type="Calculated" ResultType="Number" ReadOnly="TRUE" Name="OpenSeatsInfo" DisplayName="Open Seats Info" Required="FALSE" Group="Training Site Columns">
<Formula>=TotalSeatsInfo-RegistrationsInfo</Formula>
<FieldRefs>
<FieldRef Name="TotalSeatsInfo" ID="{03281B47-F1D1-477E-9793-3A19118720EE}" />
<FieldRef Name="RegistrationsInfo" ID="{B6E9C8F5-F1BD-4D98-BD30-194504859ACC}" />
</FieldRefs>
</Field>
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu">
</FieldRef>
<FieldRef Name="CourseTitle"></FieldRef>
<FieldRef Name="Trainer"></FieldRef>
<FieldRef Name="TrainingVenue"></FieldRef>
<FieldRef Name="RegistrationsInfo"></FieldRef>
<FieldRef Name="TotalSeatsInfo"></FieldRef>
<FieldRef Name="OpenSeatsInfo"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE">
</FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Attachments">
</FieldRef>
<FieldRef Name="LinkTitle">
</FieldRef>
<FieldRef Name="CourseTitle"></FieldRef>
<FieldRef Name="Trainer"></FieldRef>
<FieldRef Name="TrainingVenue"></FieldRef>
<FieldRef Name="RegistrationsInfo"></FieldRef>
<FieldRef Name="TotalSeatsInfo"></FieldRef>
<FieldRef Name="OpenSeatsInfo"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID">
</FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>
Event Receiver file:-
public override void FeatureActivated(SPFeatureReceiverProperties properties)
//Reference the newly created session list and perform the following
//1. Set the display name of the "Title" column to "SessID" and hide it from the New and Edit Forms
//2. Make the "SessID" column not required
//3. Set the default value of the RegistrationsInfo column to 0 and do not display it on the new form
//4. Add the built-in "Start Date" and "End Date" columns
//Reference the newly created session list
SPWeb currentWeb = properties.Feature.Parent as SPWeb;
//currentWeb.AllowUnsafeUpdates = true;
SPList sessionList = currentWeb.Lists["SessionList"];
//Title column update
SPField titleField = sessionList.Fields["Title"];
titleField.Required = false;
titleField.ShowInNewForm = false;
titleField.ShowInEditForm = false;
titleField.Title = "SessID";
titleField.Update();
//RegistrationsInfo column updates
SPField registrationField = sessionList.Fields["RegistrationsInfo"];
registrationField.DefaultValue = "0";
registrationField.ShowInNewForm = false;
registrationField.Update();
//Add the Start Date and End Date columns to the list, ensure they both display Date and Time, and add them to the default view of the list
SPFieldDateTime startDate = currentWeb.Fields["Starting_Date"] as SPFieldDateTime;
startDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
SPFieldDateTime endDate = currentWeb.Fields["Ending_Date"] as SPFieldDateTime;
endDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
sessionList.Fields.Add(startDate);
sessionList.Fields.Add(endDate);
SPView defaultView = sessionList.DefaultView;
defaultView.ViewFields.Add(startDate);
defaultView.ViewFields.Add(endDate);
defaultView.Update();
sessionList.Update();
//currentWeb.AllowUnsafeUpdates = false;
Can somebody help me - how to overcome the RegistrationsInfo missing field - error(in the stack trace) when activating the feature in the training site?
Thanks
SathyaHi Sathya,
Seems the field “RegistrationsInfo” is not been found when deploying with Event Receiver, a possible reason is that it might be damaged.
As a workaround, I suggest you retract the solution from your farm, make sure the “RegistrationsInfo” field is deleted using PowerShell, then create another project with the same
content and perform the deployment again.
About how to delete a field using PowerShell for your reference:
https://peterheibrink.wordpress.com/2011/12/09/powershell-delete-field-and-all-references/
http://www.sharepointfix.com/2011/04/powershell-script-to-delete-site.html
Feel free to reply if there any progress.
Thanks
Patrick Liang
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
Hi,
I'm new to SharePoint 2013 I want to be able to query a MSSQL database from a SharePoint App I have tried to create an External Content Type (ECT) which is produced from a MSSQL stored Procedure, this procedure has several parameters which are needed to
filter the data correctly. From here I want to produce an external list which I can then query from a c# SharePoint app. If I leave the filters in the ECT null then the list is of course empty or if enter a default values the results are limited
for the app to query so are no good.
I want to dynamically pass values to the ECT when querying from the app, is this not possible. Should I just be returning everything in an external list and then letting the query in the app filter the data, this seems inefficient?
Is this the best way to do this or should I be doing this differently?
Please can someone point me in the right direction.
ThanksHi Pandra801,
When you create a the external content type, please try to add a filter based on your select statement.
http://arsalkhatri.wordpress.com/2012/01/07/external-list-with-bcs-search-filters-finders/
Or, try to create a stored procedure based on your select statement, then create ECT using the SQL stored procedure.
A step by step guide in designing BCS entities by using a SQL stored procedure
http://blogs.msdn.com/b/sharepointdev/archive/2011/02/10/173-a-step-by-step-guide-in-designing-bcs-entities-by-using-a-sql-stored-procedure.aspx
I hope this helps.
Thanks,
Wendy
Wendy Li
TechNet Community Support -
I want to get all the documents based on content type using SQL Server Query. I know that, querying the content database without using API is not advisable, but still i want to perform this action through SQL Server Query. Can someone assist ?
You're right, it's not advisable, may result in corruption of your databases and might impact performance and stability. But assuming you're happy to do that then it is possible.
Before you go down that route, have you considered using something more safe like PowerShell? I've seen a script exactly like the one you describe and it would take far less time to do it through PS than it would through SQL. -
URL data type in CAML Query with Client side object model
hi,
How do I write a CAML query to filter list items based on the URL field using it's Description?
Same with REST API. How do I construct a REST query so that filter list items based on the URL data type using it's Description.Hi Cooltechie,
Thanks for posting your query, Below are the example that you can use in your CAML query
<Where><Eq><FieldRef Name="FileRef"/><Value Type="Url">sites/SiteCollection/SubSite/Site Documents/Excel Report.xls</Value></Eq></Where>
Note: Do not include the server name or beginning /.
The following examples assuming you have a list or library setup with a URL column named "My Document".
The link is to a document that is hosted on the sharepoint server (do not need server name):
<Where><Eq><FieldRef Name="My_x0020_Document"/><Value Type="URL">/sites/subsite/Site%20Documents/Excel%20Report.xls</Value></Eq></Where>
The link is an absolute URL to something not on the server... for example http://www.google.com:
<Where><Eq><FieldRef Name="My_x0020_Document"/><Value Type="URL">http://www.google.com</Value></Eq></Where>
I hope this is helpful to you, mark it as Helpful.
If this works, Please mark it as Answered.
Regards,
Dharmendra Singh (MCPD-EA | MCTS)
Blog : http://sharepoint-community.net/profile/DharmendraSingh -
Join two list of integer type field using CAML query
Hi
As i am struggling in Join two sharepoint list (Roles and Emplyees). As there is no lookup columns and lists are already existing and have almost 3000 + recodrs. As a part of enhancement work need to join these list. List structure is some thing as follows:
Roles :
ID Title
1 Project Manager
2 Business Analyst
3 Developer
Employees :
Name Role
1 James 1
2 Petar 3
3 John 2
Output should be like as follows:
Name Role
1 James Project Manager
2 Petar Developer
3 John Developer
So please suggest, if the joining can be done other than lookup columns through the CAML query.
Akhilesh RaoFollow below CAML query to add joins between two lists.
SPList list = SPContext.Current.Site.RootWeb.Lists["Employees"];
SPQuery query = new SPQuery();
query.Joins = @" <Join Type="INNER" ListAlias="Roles">
<Eq>
<FieldRef Name="Employees" RefType="Role" />
<FieldRef List="Roles" Name="ID" />
</Eq>
</Join>";
query.ProjectedFields = @" <Field Name="RoleName" Type="Lookup" List="Roles" ShowField="Title">";
query.ViewFields = @ "<FieldRef Name="Title">
<FieldRef Name="RoleName"> ";
SPListItemCollection result = tablea.GetItems(query);
Adnan Amin MCT, SharePoint Architect | If you find this post useful kindly please mark it as an answer :) -
REST Query to Get Content Type Name
I'm just getting started learning to use the SharePoint REST interface. One of the first things I'd like to do is return the content type name for a list item in a document library (the document library is configured with several content types). From
what I've read, it looks like I need to use the $expand query option. So, my REST query looks like this:
http://localhost/_api/web/lists/Documents/Items()?&$select=ContentType/Name&$expand=ContentType/Name
But it's not working. I can't "dig" out the content type name property. In other words the $expand query option is not working. I just receive the following which includes a link to the content type:
<entry m:etag=""2"">
<id>4078e129-ac4b-44b8-b469-bcc083f2268d</id>
<category term="SP.Data.DocumentsItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" href="Web/Lists(guid'cd710fd1-057e-4ee7-b0bd-1f014218ea3e')/Items(36)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ContentType" type="application/atom+xml;type=entry" title="ContentType" href="Web/Lists(guid'cd710fd1-057e-4ee7-b0bd-1f014218ea3e')/Items(36)/ContentType"
/>
<title />
<updated>2013-04-12T00:16:26Z</updated>
<author>
<name />
</author>
<content type="application/xml" />
</entry>
I've tried difference variations and if I just use "$expand=ContentType" then I get all the list items with the content type fully expanded within each item.
What am I missing?It's been awhile since this question got asked, but I figured i'd post for anyone who happens to stumble
on it.
Try this:
http://localhost/_api/web/lists/Documents/Items(<item
id>)/ContentType?$select=Name -
Retrieve all items in a list by caml query then write it to a word file page by page
Dears,
Greetings
I have some code which will retrieve all items of a list with caml query.
Now i want to generate a word file with all these retrieved data. I am using foreach here to get all the items in a SPListItemCollection. Now my question is how i can write all the retrieved items inside the word file?
see the below code which is writing only the last row item of the SPListItemCollection inside word file. I want to write all the retrieved rows inside this word file.
SPQuery qry = new SPQuery();
qry.Query = "<Where><Eq><FieldRef Name='Department' /><Value Type='Text'>HR DEPARTMENT</Value></Eq></Where>";
SPListItemCollection listItems = KPILIst.GetItems(qry);
foreach (SPListItem item in listItems)
lblBadgeNo.Text = item["Badge No"].ToString();
lblName.Text = item["Name"].ToString();
lblPosition.Text = item["Position"].ToString();
lblDept.Text = item["Department"].ToString();
lblHireDate.Text = item["Hire Date"].ToString();
lblGrade.Text = item["Grade"].ToString();
lblCurStatus.Text = item["Status"].ToString();
string FinalOut = "";
FinalOut = "<table cellpadding=0 cellspacing=0><tr><td style='height:30px;'></td></tr><tr><td style='height:22px;'></td></tr>";
FinalOut = FinalOut + "<tr><td style='text-align:justify;font-size:22px;'>" + lblBadgeNo.Text + "</td></tr>";
FinalOut = FinalOut + "<tr><td style='text-align:justify;font-size:22px;'>" + lblName.Text + "</td></tr>";
FinalOut = FinalOut + "<tr><td style='text-align:justify;font-size:22px;'>" + lblDept.Text + "</td></tr>";
FinalOut = FinalOut + "<tr><td style='text-align:justify;font-size:22px;'>" + lblHireDate.Text + "</td></tr>";
FinalOut = FinalOut + "</table>";
System.Text.StringBuilder strBody = new System.Text.StringBuilder("");
strBody.Append("<html " + "xmlns:o='urn:schemas-microsoft-com:office:office' " + "xmlns:w='urn:schemas-microsoft-com:office:word'" + "xmlns='http://www.w3.org/TR/REC-html40'>" + "<head><title>EPCCO : HR Comapny Letter</title>");
strBody.Append("<!--[if gte mso 9]>" + "<xml>" + "<w:WordDocument>" + "<w:View>Print</w:View>" + "<w:Zoom>90</w:Zoom>" + "<w:DoNotOptimizeForBrowser/>" + "</w:WordDocument>" + "</xml>" + "<![endif]-->");
strBody.Append("<style>" + "<!-- /* Style Definitions */" + "@page Section1" + " {size:8.5in 11.0in; " + " margin:1.0in 1.25in 1.0in 1.25in ; " + " mso-header-margin:.5in; " + " mso-footer-margin:.5in; mso-paper-source:0;}" + " div.Section1" + " {page:Section1;}" + "-->" + "</style></head>");
strBody.Append("<body dir=rtl lang=EN-US style='tab-interval:.15in'>" + "<div class=Section1>" + FinalOut.ToString() + "</div></body></html>");
Response.AppendHeader("Content-Type", "application/msword");
Response.AppendHeader("Content-disposition", "attachment; filename=Eval_" + lblBadgeNo.Text + ".doc");
Response.Write(strBody);
Regards
Shaji
I am new to SharePointHello,
you can try with OpenXML SDK to create word file. I found one link for your reference:
http://sharepointplace.blogspot.in/2009/12/programmatically-creating-word.html
Another way is , use Microsoft Word Object Library.
http://social.msdn.microsoft.com/Forums/vstudio/en-US/5b82c0b5-ecaf-40f2-a68a-c7c17c85414f/create-word-documents-by-c?forum=csharpgeneral
Hope it could help
Hemendra:Yesterday is just a memory,Tomorrow we may never see
Please remember to mark the replies as answers if they help and unmark them if they provide no help -
Hi
how to create a external content type for Read and Update data from two tables in sqlserver using sharepoint designer 2010
i created a bcs service using centraladministration site
i have two tables in sqlserver
1)Employee
-empno
-firstname
-lastname
2)EmpDepartment
-empno
-deptno
-location
i want to just create a list to display employee details from two tables
empid firstname deptno location
and same time update in two tables
adilWhen I try to create an external content type based on a view (AdventureWorks2012.vSalesPerson) - I can display the data in an external list. When I attempt to edit it, I get an error:
External List fails when attached to a SQL view
Sorry, something went wrong
Failed to update a list item for this external list based on the Entity (External Content Type) 'SalesForce' in EntityNamespace 'http://xxxxxxxx'. Details: The query against the database caused an error.
I can edit the view in SQL Manager, so it seems strange that it fails.
Any advice would be greatly GREATLY appreciated.
Thanks,
Randy -
The query against the database caused an error in https: site
Hi
I have created a new Data source and External content type in sharePoint 2013
I have also given all the permission to this Content type (including "Users(Windows)")
I also having edit permission in the Sql-database.
I have tied almost all the possibilities given in the net for this error.
still the error("the query against the database caused an error") is there.
Is this because of "https:/ " in the url?
Can any one give a suggestion / solution for this?
Thanks
S H A J A NHi,
Can you please check ULS Log as well as event viewer, to see if there's any related error reported?
Thanks,
Sohel Rana
http://ranaictiu-technicalblog.blogspot.com -
Using CAML Query in SharePoint Hosted app
Hi,
I am trying to execute a CAML Query in a SharePoint Hosted App, below is the JS code.
executor.executeAsync({
url: appwebUrl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('Documents')/Items?/getitems?@target='" + hostweburl + "'",
method: "POST",
body: { 'query' : {'__metadata': { 'type': 'SP.CamlQuery' }, "ViewXml": "<View><Query><Where><Eq><FieldRef Name='Title'/><Value Type='TEXT'>value</Value></Eq></Where></Query></View>"
headers: {
"accept": "application/json; odata=verbose",
"content-type": "application/json; odata=verbose"
success: successHandler,
error: errorHandler
getting an error: Uncaught Error: "Invalid field or parameter requestInfo.body"Are you using rest api?
Please check this
http://tech.bool.se/using-caml-sharepoint-rest-api/
http://msdn.microsoft.com/en-us/library/office/dn531433(v=office.15).aspx -
Get items between in the publishingstartdate and publishingend date in a content type.
Hi,
I have a content type that has two site columns publishingStartdate and publishing end date.
The content type is added to a document library.
When I create an item of the content type then it gives two options for publishing start date as immediately and then a date fiel.d
For publishing end date as never and a date control.
Now I want to be able to get only the results which are published as in todays date is in between publishing start date and end date.
But it seems publihsingstart date and publishingend date fields are text type hence I cannot run CAML Query with Greater than and less than.
Is there a way to get the items and run the caml queyHey Dennis,
Thanks for the reply.
But I am facing a strange issue. That is I also want to be able to get only those items contain certain keyword in the title column.
I am using the following query, But it is not giving the right results. Here is the query
<Where>
<And>
<Or>
<And>
<Or>
<And>
<BeginsWith>
<FieldRef Name='ContentTypeId'
/>
<Value Type='ContentTypeId'>{0}</Value>
</BeginsWith>
<IsNull>
<FieldRef Name='PublishingStartDate'
/>
</IsNull>
</And>
<Leq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>
<Today />
</Value>
</Leq>
</Or>
<IsNull>
<FieldRef Name='PublishingEndDate' />
</IsNull>
</And>
<Geq>
<FieldRef Name='PublishingEndDate' />
<Value Type='DateTime'>
<Today />
</Value>
</Geq>
</Or>
<Contains>
<FieldRef Name='Title' />
<Value Type='Text'>{1}</Value>
</Contains>
</And>
</Where><OrderBy><FieldRef Name='PostedDate' Ascending='False' /></OrderBy>
But it is giving me incorrect results.
Should I be using joins in SPQuery.
Maybe you are looking for
-
HT4914 Will I pay for storage quantity of songs stored in ICloud in addition to the
Will I pay for the storage quantity of the songs in addition to the $24.99/year for the Imatch?
-
Error in Display of Text variable
Hello gurus, I have a requirement in which power user wants to see the output as follows : Product sold of Current year for months --- to - / Product Sold of Previous year for months --- to - So if on Selection screen ,user enters months 01/200
-
550 5.7.1 Message rejected due to content restrictions
We're using forefront protection for exchange 2010 and every once in a while the Cloudmark anti-spam signatures will block important clients from sending us email. Reporting the emails to [email protected] doesn't always get the issue resolved, but w
-
Setting my display to 96mhz messed my display.
Hi all, At 96mhz, my start ups show sync over range and I can't see anything. How can I revert my settings back to 70mhz after setting my display to 96mhz? Thanks Web dude
-
With the new version of iTunes music is synched in order of plays. How do I change the order back to albums by artist?