ViewPanel sortable column using Relational Data - xpages

I recently attended the "Access Data from XPages with the Relational Controls" webinar hosted by Teamstudio and presented by TLCC. It was a very informative class and one topic covered was about enabling a column to be sortable in ASC/DESC order by simply clicking the column header.
Well, in a project I am currently working on we do have a DB2 backend where the viewPanel data uses a jdbcQuery with the sqlQuery parameter. I thought this was possible when starting the project and could never get it to work, then after seeing it discussed during the webinar figured I would give it another attempt.
Here are the All Properties for my viewPanel:
Here are the All Properties for the column I wish to sort:
Previewed in IE with column Unsorted
Previewed in IE with column sorted ASC
Problem
Clicking on the column heading sorts the column in ASC order, but on subsequent clicks doesn't sort in DESC or reset the sort.
Question
Is there something I am missing to make this work or was this issue fixed in a version after 8.5.3?
System
IBM Notes Designer: 8.5.3FP3
OS: Windows/Longhorn/64 6.2
Server Build: Release 8.5.3FP6

Try taking out the scope on your data (you have request).

Related

Sharepoint 2013/2016 Calculated Column stops calculating

I have a calculated column in SharePoint On-Premises that shows the number of days till a due date which works perfectly for a day or so then stops calculating, but if I go to the list settings and click the column and click ok then it calculates again?
Has anyone experienced an issue similar to this. I had this issue in both 2013 but within a few weeks moved to 2016 and still the same issue.
I've tried " " blank and also "" empty so not sure if that is causing the issue??
Is it a problem with the formula?
Here is the formula:
=IF(ISBLANK([Due Date])," ",
IF(ISERROR(DATEDIF(NOW(),[Due Date],"d"))," ",DATEDIF(NOW(),[Due Date],"d")))
Calculated columns cannot contain volatile functions, which includes those that depend on the current date.
The values in SharePoint columns--even in calculated columns--are stored in SharePoint's underlying SQL Server database.
The calculations in calculated columns are not performed upon page load; rather, they are recalculated only whenever an item is changed (in which case the formula is recalculated just for that specific item), or whenever the column formula is changed (in which case the formula is recalculated for all items).
If you need to show a dynamic value that changes with the passage of time, you have a few alternatives.
Client-Side Rendering
Consider using client-side rendering which lets you use JavaScript to dynamically determine how records in a list view are displayed. This JavaScript runs upon page load, so it can handle current time-dependent values much better than a calculated column.
To use client-side rendering, you create a JavaScript file that controls how the view displays. You upload that file to somewhere on SharePoint where people will have at least Read access to it, then edit the list view web part that you want to display differently and set its "JSLink" property to point to your JavaScript file.
Check out this answer for an example of using a JSLink file to spoof a dynamic date field.
Microsoft also provides some documentation here but I think they do more work than is necessary (creating an entire new list definition project in Visual Studio for their example instead of just creating a JSLink JavaScript file for an existing list).
Other Options
A few other options are mentioned in the older question linked above:
Conditional Formatting: You can apply conditional formatting to highlight records that meet certain criteria. This can be done using SharePoint Designer or HTML/JavaScript.
Filtered List views: Since views of lists are queried and generated in real time, you can use volatile values in list view filters. You can set up a list view web part that only shows items where Created is equal to [Today]. Since you can place multiple list view web parts on one page, you could have one section for today's items, and another web part for all the other items, giving you a visual separation.
A workflow, timer job, or scheduled task: You can use a repeating process to set the value of a normal (non-calculated) column on a daily basis. You need to be careful with this approach to ensure good performance; you wouldn't want it to query for and update every item in the list if the list has surpassed the list view threshold, for example.
To expand on the Filtered List Views option, you can have a view that shows only items that are due within a certain number of days. For example, you can display all the items due within 7 days by filtering where the Due Date field is less than [Today]+7 and Due Date is greater than or equal to [Today]. You could also sort the view to show the items with earlier due dates closer to the top.

Multiple values appear as a single entry in the lotus notes view

I have an issue with a lotus notes view. This view displays entries based on the number of problems in the field "All problems". This field is a multivalued field. In the view column properties for the column "problem", the multivalue separator is New line & under the sorting tab, the checkbox against "show multiple values as separate entries" is checked. When i see the view from my machine, multiple values appear as a separate entry. When i checked in another machine, the view was displayed as expected. The problem came, when i tried to do a search for documents based on a value. Now the multiple values come as a single entry which is not supposed to happen. The strange thing is it appears fine in my machine. But when i tried it in another machine, i face the issue. To make sure its not a version problem i checked it in a machine with the same version as mine(8.5.3) also tried in a lower version(7.5) but got the same result. I even tried the following: 1.delete the cache.ndk. 2. remove the DB icon from workspace and reopen the database from applications. 3. go to (Byurl) view in bookmark.nsf and delete all the documents and reopen lotus notes. 4.rebuild views using Ctrl+Shift+F9. Could not do a database rebuild(no access). Does any one know what can be the problem and possible resolutions?
The search is returning a single document, which is correct. It's the representation of the document that is annoying you, you want to have it displayed as it was originally, i.e. with a categorized column. If you are sorting another column in the view, the categorized column gets turned off.
Have a look in Search in View/More/Sort Results by, that might be your problem.

Filtering a repeating table linked to a secondary datasource

I have an infopath form based on a sharepoint list (worktracker).
In that form there is a repeating section which holds data from a secondary source which is the worktracker list again.
I would like to filter that table using the value in a field on the form - this enables me to run a check on duplicate items on the list by using a calculated checking reference.
I have done this by using conditional formatting to hide the non-matching items but that this killing my form as IE throws tantrum as it takes too long.
Does anyone know another way to do this? I am stuck using IE8 - not my choice!
UPDATE:
So since posting the above, I had since tried using a REST connection which doesn't work as my list is too big. I have also tried using an XML connection to a filtered view and that didn't work either!
Cheers,
In the form, select the value field. Create a rule that sets the secondary data source's query field of the same name to that value. Then query the secondary data source. It will only return the items where the value matches.

Query problem with lookup column in SharePoint

Setup:
I have two lists on a SharePoint site, A and B. List A has a column 'b' that is a lookup to the ID field of list B. I have 500k+ records in A and about 6k records in B.
What works:
I am able to execute a query for items in list A using SharePoint web services, and am even able to filter the query based on a specific "lookup" value for column 'b'. For example, I can query for items in A whose column b matches 1234 (...<Value Type="Lookup">1234</Value>...), and so on.
What doesn't work:
The query does not work for items older than a specific date, even though my query does not involve dates in any way -- only the lookup column. Any query on data newer than two years old works fine, anything older than that fails. If I view items from the SharePoint web page they appear ok, and all the links from child records in B to parent records in A work just fine -- the lookup columns appear intact.
Question:
Is there some kind of maintenance task in SharePoint that can cause some underlying data to get corrupted that can prevent a query based on a lookup id to stop working, like a system restore, etc? In other words, the lookup column data appears correct on the surface in the web browser. But does SharePoint represent this value with a GUID or other invisible data that might be out of sync or stale?
Thanks.
Maybe you are hitting another limit; the maximum number of items retrieved in a query?
See list throttling
Try querying by the ID by adding the LookupId=”TRUE” attribute to your FieldRef element.
http://abstractspaces.wordpress.com/2008/05/05/caml-query-lookup-field-by-id-not-by-value/
The problem appears to be related to the fact that the column in question was indexed. When I removed the index everything started working. When I reapplied the index, everything kept on working. I'm attributing this problem to a corrupt index.

Retrieving a sharepoint list in Infopath only shows first 100 records

I am retrieving a list of values from a sharepoint list, which works well but my problem is that it only retrieves the first 100 records. there are currently 500 records that should be available.
Scenario: I have two comboboxes on an infopath form:
A List of Locations
A list of areas within the locations
the list of locations will filter the list of areas but as infopath seems to only retrieve the first 100 records so most of the locations do not show any areas as there is nothing to filter.
By design, the query will only return the first page of results from the default view for the list. Change the item limit for the default view in SharePoint, and you'll change the returned values for InfoPath.
EDIT (links from my comments, here for greater readability):
Here are sources describing this fix in MSDN forum (scroll to the bottom), a blog comment that describes the SharePoint setting step-by-step, one with a screen cap of the somewhat counter-intuitive interface, and another describing performance implications on the server side.
Hope this helps.
Just documenting what I have discovered trying to resolve the problem. I have not been able to change the default view as yet as I dont have the permission to. That should change though.
One possible workaround I have found is that you can export the list to Excel which contains all the data that I was looking for. the file that sharepoint produces is an Excel Query file like "export.iqy". You can save and open the file in notepad. which will look something like the following
WEB
1
http://SharepointSite/_vti_bin/owssvr.dll?XMLDATA=1&List={14C4ED2B-3050-4C47-B5F3-6333C3B0FB28}&View={8E6124E0-23F2-4BA2-86E7-96E7F36BAEC8}&RowLimit=0&RootFolder=%2fLists%2fSharepoint%20Sites
Selection={14C4ED2B-3050-4C47-B5F3-6333C3B0FB28}-{8E6124E0-23F2-4BA2-86E7-96E7F36BAEC8}
EditWebPage=
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False
SharePointApplication=http://SharepointSite/_vti_bin
SharePointListView={8E6124E0-23F2-4BA2-86E7-96E7F36BAEC8}
SharePointListName={14C4ED2B-3050-4C47-B5F3-6333C3B0FB28}
RootFolder=/Lists/My list
You can take the third line which is -
http://SharepointSite/_vti_bin/owssvr.dll?XMLDATA=1&List={14C4ED2B-3050-4C47-B5F3-6333C3B0FB28}&View={8E6124E0-23F2-4BA2-86E7-96E7F36BAEC8}&RowLimit=0&RootFolder=%2fLists%2fSharepoint%20Sites
And use that to retrieve the complete list. I added an new receive data connection, selected an xml document and added the above URL.
It is not formated particullary nice but it will return all the data that I was expecting.
I think that Argalatyr solution is much simpler at this point, but it depends on if i am able to get the default view changed.
there is yet one workaround of this without such hardcoding. If you open Query editor, then you have there available ribbon with menu items. Open "Home" -> "Select top rows" and enter there some realy high number (I have in my list 596 rows, so I entered there as limit of top rows 20000 and I got whole list).
Sorry, I don't have available English version of Excel, so I cannot add screenshots.
enter image description here

Resources