I posted this on comp.lang, got several reactions (oClone which I never heard about, a seperate function) but all change the original listview. So in case someone missed this post and knows an alternative to copy a listview just like aClone works for arrays I post it here as well:
We show a listview in a window and use that LV variable to pass to a
method to export the contents to Excel.
Now 1 client wants to see a few of these columns omiitted in the Excel
export. It is not difficult ti remove the columns
(oLVl:DeleteColumn(2) etc) but thet should not be deleted in the
'master' listview showing in the screen.
Problem is that doing this:
and then delete the columns in oLVCopy also deletes these columns in
oLVOriginal, which is apparently copied by reference.
What would be the quickets way to copy the listview in such a way that
I can still pass it after deleting the required columns to my Excel
function without changing the original listview?
Although personally I would change the approach and not depend on a GUI item (ListView) for storing and passing the data, but use an intermediate array instead.
You are of course right in there. I think I was so concentrated on adapting the current routine that I hardly realized it's not the best way to solve it
One of my employees who wrote this LV->Excel years ago told me today she also wrote a function to remove columns from the multi-dimensional array we create from this LV and always use to export to Excel.
This worked nearly the same, just a bit further up in the program, and is more elegant.