[ Apologies for sending to this list; Eike Rathke suggested sending an 
  email here as it concerned form controls which are shared... ]

Background: I'm currently looking into an Excel import bug, in which the
Excel file contains form Option buttons that belong to the same group,
but each option button has a different name.  On import to Calc, the
option button control name is set to the Excel control name.

The problem is that option buttons cease to behave properly, as Calc
requires that all option buttons that are part of the same group have
the same name.  Since the name is set from the Excel document, they do
not have the same name; consequently *all* option buttons can be
enabled, instead of only one button within the group (as each button is
logically part of a different group).

Furthermore, I have a concern with scripting.  Consider the following
OOOBasic code:

        Control =
        ThisComponent.DrawPages(0).Forms(0).getByName("Option")

If there is an control with the name "Option" on a page, this works.

If that control is an option button, it still works.

If you have more than one option button sharing the same name (required
so that they're part of the same option group), it works...but you can
only get the *first* option button with that name.  All other option
buttons are NOT accessible via scripting, as far as I can determine.

So I see two problems with the current option button behavior:

     1. It complicates Excel compatibility.  Yes, we could map the Excel
        group name to the Control name, but then any imported VBA code
        that makes use of the control name -- e.g. to programmatically
        enable/disable the option button when other buttons are pressed
        -- will not work as expected.
     2. It doesn't permit scripting access to all of the option buttons,
        since they all share the same name.

Thus, the question: how best to solve these problems?  Following Excel
and adding a GroupName property to controls might work.

Alternatively, perhaps the Name property could contain a separator such
as ':' to separate the group name from the control name, so that
"GroupName:ControlA" and "GroupName:ControlB" would belong to the same
group of "GroupName", but would have separate names for access from
scripting code.  The problem I foresee with this is it will complicate
any VBA import support, as names will need to be "munged" on import and
export.

Thoughts?  Suggestions?  Comments?

Thanks,
 - Jon


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to