Sharepoint List Calculation
I would like to set an End Date in my sharepoint list to automatically match the start date.
If i choose 5/28 as the start date, the End Date should be 5/28
How can i do that via a calculated value?
1.) Set your End Date column to be a calculated field
2.) In the Formula field that comes up when you set End Date to a calculated field, type =[Start Date] (assuming Start Date is the name of your start date field)
Similar Messages
-
Design advice for vertical list calculations
I'm extending a product management life cycle sharpoint 365 site,
With purchase orders, magazine store, production targets (date based) and sold dates.
So that in our production environment we can see how much is stored, how much can be sold, and what we need to buy in etc.
The thing i'm a bit troubled about that sharepoint lists are not Excel, but this has to be done with Sharepoint lists.
They prefer not to have edits directly in the aspX code, but editing workflows in Sharepoint designer is OK
In excel one could easily add a cell formula with the content of Sum the value in the row left of me and add it to the value of myself one row earlier (like B2 contained = A2+B1 ); and then copy that formula to the whole B column
The nice thing with Excel is that when you change some value in A, like A2 = 10 and and later A5=10 then B7 would be 20
Changing later a value like A3 =4 would recalculate quickly and re- totals the B column.
Sharepoint Lists, calculated fields work only horizontally, so to do some vertical actions one needs a workflow, and do some lookup based upon (calculated previous) ID field, ea ID -1. Or stepp through to All ID's till current. What borders me a bit, is that
my list will grow large at some point. So stepping through all ID's to sum them till current Item seams 'slow' to me, on the other hand if i only check the previous version then the whole column (B) wouldnt be recalculated, if someone changed an older entry.
Extremly simplified i have a single list with the columns below (where stored act as my B column).
bought | stored | sold
0 | 5 | 0
2 | 5 | 0 (raw products need to be manufactured before stored so they're added 1 by 1 later).
0 | 6 | 0
0 | 7 | 0
0 | 4 | 3 (but when sold we can subtract directly from storage)
Ofcourse i need some horizontal calculations because i need to track as well if there has been bought enough for production. But i wonder what would be Wise to do, base thing on current ID and ID minus 1, or to walk through all items by work flow (recalculate
whole list), or like with changes; recalculate from current changed till the end (not sure how to detect end yet.. but well something like that).
I just wonder what would be wise here, and the best direction for this.
The table i showed is a extreme simplified, in fact also some other tables and workflows will be the feeders of the data.
Its just that the whole thing makes me a bit worry and wonder what would be best, and maybe i oversee something maybe there are other ways for vertical calculations over lists.After lots of thinking, and seeing how slow office 365 SharePoint reacted upon my list workflows.
I've decided to use a "site variables list", in which I store variables as rows and their value in a columns.
And I refer to them by ID (or one could use another indexed unique value).
It's maybe not an exact calculation of the whole thing (build around several lists) but everything is a lot faster then stepping trough each item in a huge list. And it also allows for a bit more easy tweaking of these "vertical" calculations.
If for some reason those calculations would need adjustments (by change of management definitions), I have easy access to those variables to adjust them.
On a side note, when I use those variables, it turned out it worked a bit better to create in the workflow local variables, then do the calculation, and put it in the right table you want those numbers to appear in. As compared to directly referring to the
total. It takes just 5 sec or so to update. With this method size of the lists have no almost no impact on the speed of the workflow now. -
Calculated fields in Sharepoint list view
Hi,
I have to add a calculated field with formula as
if the difference between 2 date fields is 0 then i have to add todays date-modifed date.
how to achieve this in sharepoint list view/column ?
ArunaHi Aruna,
SharePoint doesn't allow you to use the[Today] function
in a calculated column, but there are other work around for this.Please find below link for this.
http://abstractspaces.wordpress.com/2008/05/19/use-today-and-me-in-calculated-column/
Regards
Soni K -
I created a calculated column "Expiration Date" in SharePoint 2010 with formula, =IF([Contingent Hire]=TRUE,(Created+90),(IF([Contingent Hire]=FALSE," ")))
This works in the SharePoint list but when I go to edit the Edit Form in Designer. I get the error specified in the title of this post. I'm trying to make it so the Expiration Date is blank when another column, "Contingent Hire" (a YES/No
column) is FALSE.
The Edit Form is essentially a DataViewWebpart. If I remove the " ", like so, "(IF([Contingent Hire]=FALSE,))" from the calc column, the error goes away; however, the Expiration Date field does not
remain blank like I want it to.
Does anyone have any suggestions? (Below is the error generated when I open Designer and then try to open the Edit form for the corresponding list containing the calc column)
JackSki123Hi Jack,
Could you provide a screenshot about this issue?
As Dimitri suggested, you can install the update for your SharePoint Designer and check again.
And you can also check if you can display "NA" instead of " " in your calculated column per the following post.
http://rajeshspillai.blogspot.in/2012/03/server-returned-non-specific-error-when.html
Thanks
Daniel Yang
TechNet Community Support -
I have a total of 66 SharePoint 2010 lists - yes, 66! - each lists contains between 1500 and 3200 list items. My employees update these various list items throughout their workday. Each update to a list item creates a new version of the list
item. On average each list item will have anywhere from 5 to 10 versions before it is done. I need to create a report that tells me how many list items they've updated in a certain time frame. I have come close but still cannot arrive at
the data I'm looking for.
This is what I have so far:
I've created a report using SQL Report Builder 2008 v3 where I've filtered it to show only items MODIFIED between, for example, Feb1 and Feb28. Of those records, I want the report to tell me how many versions were created during that time
frame. The result is one list item with 5 total versions. Versions 1.0, 2.0, & 3.0 were created on 12/12/14. The last two versions, 4.0 and 5.0, were created on 2/24/15. Therefore, the answer I'm looking for is 2 because they
created 2 versions between Feb1 and Feb28.
However I get the following results using these queries:
If I do a =Sum(Fields!owshiddenversion.Value) in the expression field I get the total versions which is 5
If I do a =Count(Fields!owshiddenversion.Value) in the expression field I get the instance which is 1
Is there a way to count ONLY the number of versions created in a time period? Is there another hidden field in SharePoint that I can use in the expression that will give me results I'm looking for?Hi Rafael70,
Per my understanding that you have already get all the need fields and informaiton of the updated version of list items and now you want to calculate how many versions of SharePoint list items created in a certain time period, you can't get desired result
using sum and count function, right?
I have tried to tested on my local environment but because I am not clear what is value in the field "owshiddenversion", I assumed you have two datatype parameters (StartDate and EndDate) to help filter the report in a certain time period.
Generally, if you have add the filter correctly, it will filter the correct number's updated version in this time period, I would like you to provide details information as below to help better analysis the requirements:
Could you please provide sample data of the table.
Please provide snapshot of the report structure you have currently designed.
Please try to provide all the expression you have used.
If you still have any problem, please feel free to ask.
Regards,
Vicky Liu
Vicky Liu
TechNet Community Support -
How to auto populate a column/SharePoint list with Current Date?
I have a SharePoint list and I created a column called ‘CurrDate’.
I need this column to;
Display the current date,
Auto populate all rows with the current date in the SharePoint list
Dynamically update with the current date
I first tried creating the column using the default SharePoint interface Date Time but it’s not doing any of the steps listed above:
I even tried entering =[Today] in the Calculated Value field.
Still nothing…
So, I’m sure you will toss out a code snippet to make this work, which is great.
However, I’m a total noob with SPD, where the heck do I insert this snippet?
Always in need of help.Hi ,
I understand that you want to add a column to a list to hold current date. Here is a workaround:
Add a single line of text column to the list. Name the list as Today.
Add a calculated column to the list. Use the [Today] as the formula. Set the calculated column to be Date and Time type.
Delete the Today column from the list.
Thanks,
Entan Ming
TechNet Subscriber Support in forum
If you have any feedback on our support, please [email protected]
Entan Ming
TechNet Community Support -
Hello,
I would like to create a form in InfoPath that looks similar to something you would see in excel, by that mean that I am able to enter multiple lines of data. After I submit the form, the data will be sorted/filtered by the first letter of the brand name
into their appropriate list in SharePoint.
JBL (InfoPath Form) -> (Sharepoint List) "J"
Bose (InfoPath Form) -> (SharePoint List) "B"
Lexicon (InfoPath Form) -> (SharePoint List) "L"
Etc...
I was wondering how I would achieve this? Workflow?
Thanks in advance,
Luke1. kudos on having JBL be both the first record of sample data, and also the initials of all three records :)
2. within SP, you can create a calculated column for the first character in the string (LEFT(col,1))... you may need to promote the field from IP into the list.
Scott Brickey
MCTS, MCPD, MCITP
www.sbrickey.com
Strategic Data Systems - for all your SharePoint needs -
Using Sharepoint List Columns to create a simple trend chart
Hello,
I am trying to use a single sharepoint list fields with as my data to create a chart.
I have only two columns I want to create the chart with: The date and time picker
column where the user picked a date and time and it is formatted accordingly and the Item ID.
I just want show how many items were created in each month and year. For e.g if there were 3 items created in between Jan 1st- 31st, 2014 then I want it to show a count of 3 for the month of Jan.
I used the MonthName and string conversion for the X axis and it seems to be showing the month and year, but I cannot get the items that were created to show up for each month.
Any guidance is welcome!
I would like to create a trend chart that shows how manyHi PinkPowerRanger,
Per my understanding that you have two fields in the table "Date and Time picker" which is Date/time type and another is "Item ID", you need to get the Month from the Date field to display in the X-axis and count(Item ID) related to each
month to display in the Y-Axis, right?
I have tested on my local environment and can do this by create two calculated fields to get the month and year values from the Date/Time field.
Details information below for your reference:
Right click the main dataset to select the "Add Calculated field", specify an name of the new calculated field and add the expression in the field source as below:
Year: =Year(Fields!Date.Value)
Month: =MonthName(Month(Fields!Date.Value))
Add the three field in the Chart as below and remember in the Value area you have got the Count(ItemID) but not SUM(ItemID):
Preview you will got the chart like below:
If you still have any problem, please feel free to ask.
Regards
Vicky Liu
Vicky Liu
TechNet Community Support -
Displaying a SharePoint List in a ListView Control with Grouping by Date
Dear All
I have created a ListView to display items from a SharePoint list:
<asp:ListView ID="UpAndComingEventsLV" runat="server">
<LayoutTemplate>
<ul>
<li id="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li id="Li1" runat="server">
<asp:Literal ID="CurrentDate" runat="server" />
<%#Eval("Title")%> <%#Eval("Event_x0020_Category")%> <%#Eval("EventDate", "{0:HH:mm}")%>
</li>
</ItemTemplate>
</asp:ListView>
To perform the binding and then display the date I'm doing the following:
Using oSiteCollection As New SPSite(_ListPath)
Using web As SPWeb = oSiteCollection.OpenWeb()
List = web.GetList(_ListPath)
End Using
End Using
Dim Query As New SPQuery
Query.Query = "<Where><And><Eq><FieldRef Name='Status' /><Value Type='Choice'>Approved</Value></Eq><Geq><FieldRef Name='EventDate' /><Value Type='DateTime'><Today Offset='4' /></Value></Geq></And></Where><OrderBy><FieldRef Name='EventDate' /></OrderBy>"
'Query.RowLimit = 1
Query.ViewFields = "<FieldRef Name='Event_x0020_Category' /><FieldRef Name='Title' /><FieldRef Name='EventDate' /></ViewFields>"
Dim ItemColl As SPListItemCollection = List.GetItems(Query)
UpAndComingEventsLV.DataSource = ItemColl.GetDataTable
UpAndComingEventsLV.DataBind()
dfgdfgfg
I would like to group my events by date though, rather than display the date against each row. To make things even more complicated, I would like to use friendly names like Today, Tomorrow, Monday, Tuesday instead of dates:
TODAY
Event number one
Event number two
Event number three
TOMORROW
Event number 4
Event number 5
MONDAY
Event number 6
Event number 7
At the moment, I've created a ItemDataBound event on the ListView control and I have been able to display the Today, Tomorrow, Monday etc bit but I can't figure out the best way to perform the grouping. Incidentally, I only want to group on the date not
on time:
Private Sub UpAndComingEventsLV_ItemDataBound(sender As Object, e As Web.UI.WebControls.ListViewItemEventArgs) Handles UpAndComingEventsLV.ItemDataBound
If e.Item.ItemType = Web.UI.WebControls.ListViewItemType.DataItem Then
'Retrieve data item
Dim DataItem As ListViewDataItem = DirectCast(e.Item, ListViewDataItem)
Dim RowView As DataRowView = DirectCast(DataItem.DataItem, DataRowView)
Dim EventDate As DateTime = RowView("EventDate")
'Get literal control
Dim CurrentDate As Literal = e.Item.FindControl("CurrentDate")
'Display friendly date
If Not IsNothing(CurrentDate) Then
Select Case EventDate.Date
Case Is = Now.Date
CurrentDate.Text = "Today"
Case Is = Now.Date.AddDays(1)
CurrentDate.Text = "Tomorrow"
Case Is = Now.Date.AddDays(2)
CurrentDate.Text = Now.Date.AddDays(2).DayOfWeek.ToString
Case Is = Now.Date.AddDays(3)
CurrentDate.Text = Now.Date.AddDays(3).DayOfWeek.ToString
Case Is = Now.Date.AddDays(4)
CurrentDate.Text = Now.Date.AddDays(4).DayOfWeek.ToString
Case Is = Now.Date.AddDays(5)
CurrentDate.Text = Now.Date.AddDays(5).DayOfWeek.ToString
Case Is = Now.Date.AddDays(6)
CurrentDate.Text = Now.Date.AddDays(6).DayOfWeek.ToString
End Select
Else
CurrentDate.Text = "-"
End If
End If
End Sub
Please could you help me understand the best way to perform the grouping by date?
Any help or advice is greatly appreciated!
Many thanks
DanielWhen I've done this in the past I've always used a calculated field that translated the days into the groupings I wanted. You couldn't do quite the groupings that you list above, but it would give you categories to group on. You could then
apply the groupings in the base view. Then you could use the Row Databound event to change the labels on the Groupings at runtime to the ones you want to use.
Paul Stork SharePoint Server MVP
Principal Architect: Blue Chip Consulting Group
Blog: http://dontpapanic.com/blog
Twitter: Follow @pstork
Please remember to mark your question as "answered" if this solves your problem. -
Powershell Script to Enable and Disable SharePoint list versioning
Hi,
We have a Sharepoint list with a date and time field named 'Today' which we update overnight
via PowerShell script to give the current date and this recalculates other calculated fields
in the list.
All is fine but we have versioning enabled on the list and so we get a new version created everyday.
Is there a way to disable the versioning prior to running the update and then re-enable
after?
This is the script
Add-PSSnapin Microsoft.SharePoint.PowerShell
Start-SPAssignment -Global
$SPWeb = Get-SPWeb "<SharePointSiteUrl>"
$List = $SPWeb.Lists["ListName"]
$Items = $List.Items
foreach ($item in $items)
$modifiedBy = $item["Editor"]
$modified = $item["Modified"]
$item["Today"] = Get-Date
$item["Editor"] = $modifiedBy
$item["Modified"] = $modified
$item.Update()
$list.Update()
$SPWeb.Dispose()
Stop-SPAssignment -GlobalHi
Here is a quick powershell script to iterate a site collection and remove versioning on all list of base-type Document Library. Also the iteration removes all the current versions of list items. Great for freeing up space and also to make publishing sites
a little more easy to manage content for trusted content approvers!
Check the below powershell script
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
# Get site
$site = new-object Microsoft.SharePoint.SPSite("http://YoServer:1002")
# Iterate all the webs of the site
foreach ($web in $site.AllWebs)
# loop through all lists in web
foreach ($list in $web.Lists)
# Ensure list is of base Document Library
if ($list.BaseType -ne "DocumentLibrary")
# Move on
continue
# Loop through each item
foreach ($item in $list.Items)
# Get the file
$file = $item.File
# Delete all versions
$file.Versions.DeleteAll()
# Remove version from the list
$list.EnableVersioning = $false
$list.EnableModeration = $false
# We still want to ensure check out
$list.ForceCheckout = $true
$list.Update()
$web.Dispose();
$site.Dispose();
Please mark the Answer and Vote me if you think that it will help you to resolved your issue -
Creating auto-increment field in SharePoint List
In SharePoint, we can create the auto-incremental field by many ways, I am going to discuss two ways of doing it.
Calculated field
Item Event Receiver
1. Using Calculated field:
Using this we can accomplish it without doing any programing and it is a relatively simple way of doing it. By using “Calculated” column in SharePoint List we can create auto-increment field. We can accomplish this by creating a new column and choosing the
column type as “Calculated (calculation based on other columns)”. And in Formula field, we have to enter [ID]
In fact this will be using the values from “ID” field from SharePoint list that starts from 1.
For example, if we want to start our auto-increment column from 100, we can modify the “Formula” field of Create New column screen, we can have to enter [ID] + 99
For detailed info please follow the blog I wrote here: http://faisalrafique.wordpress.com/2011/03/19/creating-auto-increment-field-in-sharepoint-list/
2. Using Item Event Receiver:
By using this strategy, users have advantage to edit the existing values, we can also avoid it by making field read-only on feature activation. Using item event receiver, on ItemAdded event, we have to find the highest value among previously added items
and then save the incremented value to current newly created auto-incremental column.
For code of event reciever please follow the blog I wrote here:
http://faisalrafique.wordpress.com/2011/03/19/creating-auto-increment-field-in-sharepoint-list/
Happy CodingUse Sharepoint Designer to create a Workflow for the list containing the field to increment. For my project I had an Invoice field that I wanted to start with 1001 and increment from there so I made the following workflow to do this.
In the new workflow screen in Sharepoint Designer create two actions in Step 1:
Calculate Current Item:ID plus 1000 (Output to Variable: calc)
then Set AutoIncrementNumber to Variable: calc
This is just a guide. If you just want the auto-increment to start with 1 then you can just use this step
Set AutoIncrementNumber to Current Item:ID
Also, make sure you select the correct name for your field in the Workflow action instead of AutoIncrementNumber.
Save the Workflow, close it, and then open it again in Sharepoint Designer. Check the box for "Start workflow automatically when an item is created." Save it again and then click on the Publish button to make it active on the sharepoint site. The value should
now increment for each new item created in the list. -
Split a text based on delimiter and add items to a sharepoint list using SPD workflow
Hi All
I have to store repeating table data into a sharepoint list. I have developed an approach to store data into a sharepoint list using web services as mentioned at
http://www.bizsupportonline.net/infopath2007/how-to-submit-items-rows-repeating-table-infopath-sharepoint-list.htm. However this approach is working when form opened client only but when I opened it in browser this approach is giving error. Now I'm looking
to promote repeating table data by combining items will a delimiter semi-colon (;). Please let me know how can I split the promoted field value using de-limiter and add it to a sharepoint list.
Note:
I'm working on SharePoint online 2010. (I don't have sharepoint on-premise, so I can't use SharePoint Object Model)
If anybody know how to deal with this, please let me know.
Thank you in advance.Hi Chuchendra,
According to your description, my understanding is that you want to split the promoted field value in InfoPath form which was combined using semi-colon and add it to a SharePoint list.
I recommend to submit the data to another SharePoint list first(use a column to store the value) and then create calculated columns to user formula to split the value, then use workflow to update the list where you want to add the value with the divided
values.
For example: the value is aa;bb;cc;dd.
Based on the number of the semi-colons, we need to create one column to store the original value(named test for example), four calculated columns(v1,v2,v3,v4) to store the divided values and two more calculated columns(flag1,flag2) for use in the formula.
v1: =LEFT([test],FIND(";",[test])-1)
flag1: =RIGHT([test],LEN([test])-FIND(";",[test]))
v2: =LEFT([flag1],FIND(";",[flag1])-1)
flag2: =RIGHT([flag1],LEN([flag1])-FIND(";",[flag1]))
v3: =LEFT([flag2],FIND(";",[flag2])-1)
v4: =RIGHT([flag2],LEN([flag2])-FIND(";",[flag2]))
We can also use Client Object Model to write code to split the value of the field.
You can download the dll files form the link below:
http://www.microsoft.com/en-in/download/details.aspx?id=21786
Best regards.
Thanks
Victoria Xia
TechNet Community Support -
SSRS Clustered Column Report with SharePoint List
Hi Guys,
I have a SharePoint List which has 3 columns: Team Status Date and i want to generate clustere column chart using SSRS report. Could you please provide me steps for the same?
X Axis - All the teams
Y Axis - Count
Legends
1. Pending - status <> "Completed"
2. Task Overdue - status <> "Completed" && (Date == Today between Date == Today - 30
please find attached sample of report.
This is what I have tried so far...
I just need help on forming expression.
Thanks, NileshHi Nilesh,
According to your description, you want to use a SharePoint list as datasource then create a chart.
In your scenario, we can add a calculated field which includes “pending” and “Task Overdue”. Then add the calculated field to the Series Groups panel. Please refer to the steps and results below:
1. Add a calculated field and specify the value with the expression below:
=switch(Fields!status.Value <> "Completed" and Fields!Date.Value <= now() and Fields!Date.Value >= dateadd("d",-30,now()),"TaskOverdue",Fields!status.Value <> "compeleted","pending")
2. Design the report like below and preview the report.
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu
Qiuyun Yu
TechNet Community Support -
How to import MS Excel data into an exisiting SharePoint List?
Hi Guys,
Is it possible to import an excel list or excel data into a SharePoint List that has already been created? Not create a new list.
I know you can import a spreadsheet which will create a new list, but I don't want that because I have created columns already that do calculations and such and I don't want to recreate them....
It can be either an excel or access list, but I want to make sure the pre-existing columns in still my SharePoint list.Sure,
Go to list datasheet view in IE
Open excel and copy the range
Paste in datasheet view
If column range match and validation overcome, data will start pasting as expected.
http://3sharp.com/blog/copy-and-paste-from-excel-to-a-sharepoint-list/
https://clintoncherry.wordpress.com/2008/02/27/bulk-copy-and-paste-into-a-sharepoint-list/
https://social.technet.microsoft.com/Forums/sharepoint/en-US/3c60ee05-1408-4b73-bb2b-2d42bf913572/how-to-copy-excel-sheet-data-to-sharepoint-2010-list
Hope this will help
Please 'propose as answer' if it helped you, also 'vote helpful' if you like this reply. -
Build XML for Custom Nested Accordian (like Tree View Structure) for SharePoint List Data
Expected output in Xml:
<?xml version="1.0" encoding="utf-8" ?>
- <TopRoot>
- <Root id="1" Name="Department">
- <Type id="2" Name="IT">
- <SubType id="3" Name="Technology">
<SubSubType id="4" Name="Sharepoint" />
<SubSubType id="5" Name="ASP.NET" />
<SubSubType id="6" Name="HTML 5" />
</SubType>
</Type>
</Root>
</TopRoot>
List Details:
list details for storing category / sub category data and code to build tree structure for the same.
1.Create Custom List named “CategoryDetails”:
2.Create Column “Category Name” of type single line of text. Make it as required field and check Yes for Enforce Unique values.
3.Create column “Parent Category” of type lookup. under Additional Column Settings.
Get information dropdown, select “CategoryDetails”.
4.Choice column ["SRTypeName"] 1.Root,2.SRTYPE,3.SubSRTYPE, 4.SUBSUBSRTYPE
In this column dropdown, select “Category Name”:
Referance:
http://www.codeproject.com/Tips/627580/Build-Tree-View-Structure-for-SharePoint-List-Data -fine but don't want tree view just generate xml string
i just follwed above link it work perferfectly fine for building tree view but i don't want server control.
Expected Result:
My ultimate goal is to generate xml string like above format without building tree view.
I want to generate xml using web service and using xml i could convert into nested Tree View Accordian in html.
I developed some code but its not working to generate xml /string.
My modified Code:
public const string DYNAMIC_CAML_QUERY =
"<Where><IsNull><FieldRef Name='{0}' /></IsNull></Where>";
public const string DYNAMIC_CAML_QUERY_GET_CHILD_NODE =
"<Where><Eq><FieldRef Name='{0}' /><Value Type='LookupMulti'>{1}</Value></Eq></Where>";
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
string TreeViewStr= BuildTree();
Literal1.Text = TreeViewStr;
StringBuilder sbRoot= new StringBuilder();
protected string BuildTree()
SPList TasksList;
SPQuery objSPQuery;
StringBuilder Query = new StringBuilder();
SPListItemCollection objItems;
string DisplayColumn = string.Empty;
string Title = string.Empty;
string[] valueArray = null;
try
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
using (SPWeb web = site.OpenWeb())
TasksList = SPContext.Current.Web.Lists["Service"];
if (TasksList != null)
objSPQuery = new SPQuery();
Query.Append(String.Format(DYNAMIC_CAML_QUERY, "Parent_x0020_Service_x0020_Id"));
objSPQuery.Query = Query.ToString();
objItems = TasksList.GetItems(objSPQuery);
if (objItems != null && objItems.Count > 0)
foreach (SPListItem objItem in objItems)
DisplayColumn = Convert.ToString(objItem["Title"]);
Title = Convert.ToString(objItem["Title"]);
int rootId=objItem["ID"].ToString();
sbRoot.Append("<Root id="+rootId+"
Name="+Title+">");
string SRAndSUBSRTpe = CreateTree(Title, valueArray,
null, DisplayColumn, objItem["ID"].ToString());
sbRoot.Append(SRAndSUBSRTpe);
SRType.Clear();//make SRType Empty
strhtml.Clear();
SRType.Append("</Root>");
catch (Exception ex)
throw ex;
return SRType.ToString();
StringBuilder strhtml = new StringBuilder();
private string CreateTree(string RootNode, string[] valueArray,
List<SPListItem> objNodeCollection, string DisplayValue, string KeyValue)
try
strhtml.Appends(GetSRType(KeyValue, valueArray, objNodeCollection);
catch (Exception ex)
throw ex;
return strhtml;
StringBuilder SRType = new StringBuilder();
private string GetSRType(string RootNode,
string[] valueArray, List<SPListItem> objListItemColn)
SPQuery objSPQuery;
SPListItemCollection objItems = null;
List<SPListItem> objNodeListItems = new List<SPListItem>();
objSPQuery = new SPQuery();
string objNodeTitle = string.Empty;
string objLookupColumn = string.Empty;
StringBuilder Query = new StringBuilder();
SPList objTaskList;
SPField spField;
string objKeyColumn;
string SrTypeCategory;
try
objTaskList = SPContext.Current.Web.Lists["Service"];
objLookupColumn = "Parent_x0020_Service_x0020_Id";//objTreeViewControlField.ParentLookup;
Query.Append(String.Format
(DYNAMIC_CAML_QUERY_GET_CHILD_NODE, objLookupColumn, RootNode));
objSPQuery.Query = Query.ToString();
objItems = objTaskList.GetItems(objSPQuery);
foreach (SPListItem objItem in objItems)
objNodeListItems.Add(objItem);
if (objNodeListItems != null && objNodeListItems.Count > 0)
foreach (SPListItem objItem in objNodeListItems)
RootNode = Convert.ToString(objItem["Title"]);
objKeyColumn = Convert.ToString(objItem["ID"]);
objNodeTitle = Convert.ToString(objItem["Title"]);
SrTypeCategory= Convert.ToString(objItem["SRTypeName"]);
if(SrTypeCategory =="SRtYpe")
SRType.Append("<Type id="+objKeyColumn+" Name="+RootNode+ ">");
if (!String.IsNullOrEmpty(objNodeTitle))
SRType.Append(GetSRType(objKeyColumn, valueArray, objListItemColn));
if(SrTypeCategory =="SRSubTYpe")
SRType.Append("<SRSubType id="+objKeyColumn+" Name="+RootNode+
">");
if (!String.IsNullOrEmpty(objNodeTitle))
SRType.Append(GetSRType(objKeyColumn, valueArray, objListItemColn));
if(SrTypeCategory =="SubSubTYpe")
SRType.Append("<SubSubType id="+objKeyColumn+" Name="+RootNode +"
></SubSubType");
SRType.Append("</SubType>");
SRType.Append("</Type>");
catch (Exception ex)
throw ex;
return SRType.ToString();
// Call method again (recursion) to get the child itemsHi,
According to your post, my understanding is that you want to custom action for context menu in "Site Content and Structure" in SharePoint 2010.
In "SiteManager.aspx", SharePoint use MenuItemTemplate class which represent a control that creates an item in a drop-down menu.
For example, to create or delete the ECB menu for a list item in
"Site Content and Structure", we can follow the steps below:
To add the “My Like” menu, we can add the code below:
<SharePoint:MenuItemTemplate
UseShortId=false
id="OLListItemLike"
runat="server"
Text="My Like"
ImageUrl="/_layouts/images/DelItem.gif"
ClientOnClickNavigateUrl="https://www.google.com.hk/"
/>
To remove the “Delete” menu, we can comment the code below:
<SharePoint:MenuItemTemplate
UseShortId=false
id="OLListItemDelete"
runat="server"
Text="<%$Resources:cms,SmtDelete%>"
ImageUrl="/_layouts/images/DelItem.gif"
ClientOnClickScript="%SmtObjectDeleteScript%"
/>
The result is as below:
More information:
MenuItemTemplate Class (Microsoft.SharePoint.WebControls)
MenuItemTemplate.ClientOnClickScript property (Microsoft.SharePoint.WebControls)
Best Regards,
Linda Li
Linda Li
TechNet Community Support
Maybe you are looking for
-
How do i upgrade from OS 10.4.11 to 10.5 or later?
i have a powerbook G4 and am having trouble running many of the newest apps, programs and updates. they all say i need OS 10.5 or later. however, even after searching through help pages, i'm not so sure what to purchase or install in order to make th
-
Buggy action - 'the command "high pass" is not currently available'
Hi, I've recently been speedtesting a couple of mac minis with different RAM and scratch configurations. To speedtest I'm running a Photoshop action. Today, I added 16Gb RAM (2 x 8Gb) to a 2011 i7 2.7 ghz mac mini and discovered that my previously we
-
Hi, I'm trying to setup one single folder space across three partitions with AUFS2, but so far I've been unsuccessful. These are three (XFS) partitions I'm trying to join: /dev/sda4 xfs 172G 33M 172G 1% /media/ST3250410AS /dev/sdb1 xfs 149G 33M 149G
-
How can we improve query performance with out indexes?
Hello Experts, I have a problem with table(calc) which contain 3 crore records and table doesn't have index, on that table one of the view(View_A) created. When i use the view in below query SELECT count(*) FROM Table A INNER JOIN Table B ON (A.a=
-
Removing OSX.RSPlug.a Trojan Virus / Using a Trial version of VirusBarrier
Hello, i have just downloaded the trial version of VirusBarrier and it has found 5 infected files with the RSPlug.a files Resourses> Post Install (OSX.RSPlug.a.postflight) Resourses> Pre Upgrade (OSX.RSPlug.a.preflight) Resourses> Pre Install (OSX.RS