How can I hide columns and change their order? - apache-poi

Currently I'm using jxls and it works just fine. The basic element I use is transformXLS from net.sf.jxls.transformer.XLSTransformer class. In the template I use </jx:forEach>. The simplest use-case, I think. The question is, can I hide columns and change their order dynamically ? I see setColumnsToHide() in aforementioned class so I gues it is possible (I am not sure though), but Is it possible to change column orders too ?
EDITED:
maybe I will ask about the same thing in a different way. Can I achieve that ${el.${col.rate}} in any way ?
<jx:forEach items="${cols}" var="col"> ${col.name} </jx:forEach>
<jx:forEach items="${elements}" var="el">
<jx:forEach items="${cols}" var="col"> ${el.${col.rate}} </jx:forEach>
</jx:forEach>
*${col.rate} is the column name for el

Related

search in divs within a DataTable

I'm currently on a project in which I included partialviews in every single row of a datatable.
it used to not be in a datatable at all, but I thought it could be a good idea for the use of the search function.
but of course, the partialview contains many text spans, even an external js called summernote, which includes lots of hidden text spans itself, and the search results are including every text within the global div. no need to say this isn't as accurate as I thought it would be.
I've seen that the search plugin could let us filter, for example, every div that has some class, but what I'm looking for is a functionnality that lets us filter on text contained in divs that have some class. this way I could ignore every other unrelevant text, hidden or not.
is it even remotely possible ?
thanks
There is no plain magic thing which let you filter a div containing a text combined with the question for a class which has to be also included. but you may write such a thing byself or use data attributes. Here is something which might be useful. filter multiple data attributes

Kentico 11 System Generated GUID

Using Kentico 11 (Portal engine)
I would like to add a GUID field to one of my pagetypes. I would like the system to generate the guid (I assume this is done via a macro?). Any idea what macro might do the trick? Any help is appreciated.
I do not believe there is a macro which will generate a new GUID for you. You'd have to create a custom macro method to do that for you. The macro you're using won't work because the document isn't created at the time the macro is accessed. AND it wouldn't be unique either.
I had the same issue... I just ended up fixing it directly in SQL by adding default value:
ALTER TABLE [SomeTableName] ADD CONSTRAINT [ContraintName] DEFAULT NEWID() FOR [ColumName];
This is your custom column so you can set the value to whatever your want. I dont see any other use for GUID macro although it is not complicated thing to do.
For others that stumble upon this question in need of an auto-populating unique identifier field, I chose to use existing macro functions to piece together a unique string. This was a more appealing solution than going down the build-your-own macro path.
Here is the macro I used in the Default value field:
{% String.FormatString("{0:yyyyMMddhhmmssfffff}", CurrentDateTime) + Math.GetRandomInt(10000, 99999) #%}
Here's an example value:
201912200958109206631318
No, it's not technically a GUID. It does the job, though.

Kentico - Multiple Choice Dual List Form Control

I found this Multiple Choice Dual List (with Sort) form control and have a question about the sorting functionality. From the description, it looks like the sorting functionality only works if we have something like this CHARINDEX(','+CONVERT(varchar, ItemID)+',', ',1,3,2,5,4,') in the Order By field. I tested with a couple of items and saw that if I hard-coded the Order By as instructed, it worked. Is there a way / something to put in the Order By so that it accepts the (new) order of the items in the second (red) box - without hard-coding? THANK YOU!
My authors (the left box) are from a SQL query.
The WHERE statement of my Repeater is like this, if it's of any help:
'|' + '{%CurrentDocument.Authors#%}' + '|' LIKE '%|' + CONVERT(varchar, AuthorsID) + '|%' Everything is working; I just need that sorting functionality to work dynamically.
I think the easies way to achieve this would be implementation of some logic on the client with javascript/jquery.
That would be my tool. The example order by is meant to show kind of how it works, your order by would look like:
CHARINDEX(','+CONVERT(varchar,AuthorsID)+',', '{%CurrentDocument.Authors#%}')
Assuming that Authors is the field that has the multiselect with order form tool, and AuthorsID is the table's identity row.
Does that help?

Ignore ID in Attribute Selection

I have a dataset with an unique id for each instance. Now I am running some Attribute Selection on that dataset. Concrete I use the CfsSubsetEval for selecting the relevant attributes.
The problem is that I don't want to include the id in this attribute selection, but I need it later to write out a .arff File (which should contain the id and the selected attributes).
I found some posts which used the FilteredClassifier. But in my case I want to have something like a FilteredAttributeSelection. Something like an exklusive view on the data for the AttributeSelection Algorithm.
Is there a way solving this problem?
Thanks in advance!
I solved the problem by copying the attribute vector (the ids) before the filter. After selecting the attributes I restore it.

Is this the right way to filter channel entries using conditional variables?

Is this the most efficient way to filter a load of channel entries? I want to display entries that have no comments and that are not sticky. I'm using this code.
{exp:channel:entries channel="{segment_3}" status="open" orderby="date" disable="categories|category_fields|member_data|pagination"}
{if comment_total == "0" AND sticky == 'n'}
...
{/if}
{/exp:channel:entries}
Cheers
Lee
Using conditional variables, probably. But this will likely return lots more results than you need. Plus you won't be able to accurately use {count} (maybe not an issue for you, though).
Another approach which doesn't use conditional variables, but just goes straight after the results you want, and only the results you want, is to use the Query Module
{exp:query sql=
"SELECT title
FROM exp_channels
JOIN exp_channel_titles ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_name = '{segment_3}'
AND exp_channel_titles.status = 'open'
AND exp_channel_titles.sticky = 'n'
AND exp_channel_titles.comment_total = 0"
}
<li>{title}</li>
{/exp:query}
This could get tedious if you needed to access a bunch of custom fields, but it is an efficient way to get the results you want.
Sticky is an available parameter on the entries loop, so you could filter at least that element in the entries loop itself by simply adding sticky="no", but comments, unfortunately, is not an available parameter, so Alex's suggestion may be the best option if your requirements are fairly simple. If you need access to a significant number of custom fields, however, it may be a bit tricky. So you'll have to decide what approach to take based on what you need within your loop.

Resources