Date: prev next · Thread: first prev next last
November 2011 Archives by date, by thread · List index


On Fri, 2011-11-04 at 22:10 +0100, Christoph Noack wrote:
Hi Kohei, all!

A small disclaimer: currently there are so many topics at the same time,
that I have difficulties to follow all the mails ... so please bear with
me if I missed a comment from your side.


Am Donnerstag, den 03.11.2011, 12:01 -0400 schrieb Kohei Yoshida:
Hi Christoph,

On Thu, 2011-11-03 at 08:06 +0100, Christoph Noack wrote:
I assumed that because also Excel only provides to update one name or
range at a time.

Ah!  Well, this needs a bit more explanation, I suppose.  In short, this
assumption of yours is not entirely correct.

Thanks for the explanation below ... I wanted to have a look at Excel
2007 at work, since I don't have a version at home. So I have to rely on
your description, my brain and the documentation in the web.
Unfortunately, the information from the different sources seems to
differ ;-)

Just to remember: The original question was, whether people do
experience bad performance, if only one range name is changed at once.
You told me "yes", so we need to offer a "change multiply names, then
apply the changes". I've asked why Excel can do this, since I understand
their implementation that way.

So here we go ...

In Excel 2007 and up, the Name Manager dialog is in fact modal, and it
launches a separate sub dialog to allow editing of individual names one
at a time.

An example of the Excel 2010 manage names dialog can be seen here:
http://media.wiley.com/Lux/10/209010.image0.jpg

I understand it the following way ... adding / editing a single entry
launches a separate window that needs confirmation. It exists a shortcut
to change the expression - but that also needs confirmation via the
checkmark button. But, the manage names dialog itself is non-modal,
since it generally seems to allow working with the document. 

Only one exception: "You cannot use the Name Manager dialog box while
you are changing the contents of the cell." according:
http://office.microsoft.com/en-us/excel-help/define-and-use-names-in-formulas-HA010147120.aspx

So, in general, the name manager is non-modal.


Whether it updates the name directly in the model directly
when it's updated in the dialog is unknown (since we don't know what
Excel does internally), but because the main Name Manager dialog is
modal, it won't perform re-calculation until that dialog is dismissed.
What this means is that Excel's name manager dialog only performs
re-calculation *once* even when you modify two or more names as long as
you don't dismiss the main dialog between the editing of the names.

If I understand the Excel help well enough, it works differently. The
documentation (see link above) mentions several times: "The Close button
only closes the Name Manager dialog box. It is not required to commit
changes that have already been made."

This only indicates that Excel updates the names directly in the model
from the dialog.  But that alone has nothing to do with the modality of
the dialog, and when the re-calculation occurs, which is the heart of
this performance discussion.

I already indicated that this may be what Excel does in my previous
post, and based on what the above help says that's indeed what Excel
seems to do.  However, I also indicated that, even if we decide to
update the name directly in the model (which basically removes the
possibility of canceling the changes, but I guess that's the trend we
are following), we could still turn off auto re-calc temporarily before
launching the dialog, then turning it back on after dismissing the
dialog, to hold of re-calculation until the dialog is dismissed, as long
as the dialog is modal.  And, since Excel's dialog is modal, Excel can
do exactly that, to hold of re-calc until the dialog is closed.

To me it seems that all the actions within the manage names dialog do
handle "one change" per time - whether it is a modal dialog, or the
expression field. That was my starting point to ask why Excel seems to
perform well enough for such a interaction design.

Again, what we are primarily focusing on in this discussion is when to
perform the re-calculation, not when to modify the names in the model.
These two are closely related, but they are not the same thing.  Excel
updates the model one change at a time, but it doesn't perform
re-calculation at every name update; it performs it only when the dialog
is dismissed, which happens only once.  The only reason it can do that
is because the dialog is modal.  I hope that makes sense.

And Christoph, I sincerely hope that you will find the opportunity to
play with Excel 2007 or 2010 to see what this functionality works in
person, and see when and how often Excel performs re-calculation in
relation to name updates.  Otherwise we could go back and forth with
this endless see-saw.

All the best,

Kohei

-- 
Kohei Yoshida, LibreOffice hacker, Calc


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.