Issue 95381 - Calc function ADDRESS not retro-compatible
Summary: Calc function ADDRESS not retro-compatible
Status: CLOSED FIXED
Alias: None
Product: Calc
Classification: Application
Component: save-export (show other issues)
Version: OOO300m9
Hardware: All All
: P2 Trivial (vote)
Target Milestone: ---
Assignee: oc
QA Contact: issues@sc
URL:
Keywords: oooqa, regression
: 95380 (view as issue list)
Depends on:
Blocks:
 
Reported: 2008-10-23 16:35 UTC by bmarcelly
Modified: 2013-08-07 15:14 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description bmarcelly 2008-10-23 16:35:10 UTC
Calc function ADDRESS() has got a new argument called A1.
Problem is that this new optional argument is at position 4, before the sheet 
argument.
When Calc 3.0.0 loads a formula
=ADDRESS(3;5;4;"mySheet")
it converts it to
=ADDRESS(3;5;4;1;"mySheet")
Once stored, this document becomes incompatible with all previous versions.
This argument should have been added as a last (5th) and optional argument, so 
nothing needed to be changed in the formula.
Comment 1 Regina Henschel 2008-10-23 20:28:53 UTC
*** Issue 95380 has been marked as a duplicate of this issue. ***
Comment 2 Regina Henschel 2008-10-23 21:14:19 UTC
Confirm. Depending on "save in ODF" one of the versions is broken.

in 2.4.1
Sheet2.$B3   =ADDRESS(3;2;3;"Sheet2")
Sheet2.$B$3  =ADDRESS(3;2;;"Sheet2")

opened in 3.0
Sheet2.$B3   =ADDRESS(3;2;3;1;"Sheet2")
Err:502      =ADDRESS(3;2;;"Sheet2")

With 3.0 set to "save in ODF 1.2" I get:
reopened in 2.4.1
Err:504     =ADDRESS(3;2;3;1;"Sheet2")
Sheet2.$B$3 =ADDRESS(3;2;;"Sheet2")

With 3.0 set to "save in ODF 1.0" I get:
reopened in 2.4.1
Sheet2.$B3  =ADDRESS(3;2;3;"Sheet2")
Err:511     =ADDRESS(3;2;)


Comment 3 ooo 2008-10-24 12:11:24 UTC
The new argument had to be inserted at position 4 for interoperability with
other spreadsheet applications. See also
http://sc.openoffice.org/servlets/ReadMsg?list=features&msgNo=271

The case of
Stored 2.x opened in 3.0
Err:502      =ADDRESS(3;2;;"Sheet2")

should instead be transformed to
Sheet2.$B$3  =ADDRESS(3;2;;1;"Sheet2")
and saved again as =ADDRESS(3;2;;"Sheet2") when storing ODF 1.0/1.1

I regret that OOo2.4.x is even able to read the new ODF 1.2 formulas in
namespace 'of'. It would had prevented some hassle if it wasn't and imported
such formulas as text instead, as earlier versions such as OOo2.3 do.

Btw, this issue does not block issue 95382, removed dependency.
Comment 4 Stefan Weigel 2008-11-01 16:01:57 UTC
Confirm. When "save as SXC" document can not be used with OOo 2.x.x

Moreover: Document can not be used even by OOo 3.0, when it has been saved as
SXC by OOo 3.0, as you can learn from issue 95742.
Comment 5 ooo 2009-01-23 18:42:35 UTC
@sweigel: Do not confuse .sxc with ODF11, which also is .ods; .sx? was the
ancestor of .od? (ODF). This issue is not related to .sxc


In cws calcperf03:

revision 266849
sc/source/core/tool/compiler.cxx

OOo2.x
=ADDRESS(3;2;;"Sheet2")
now loads as
=ADDRESS(3;2;;1;"Sheet2")

Along with the changes for issue 95450 it is saved as
ODF11
=ADDRESS(3;2;1;"Sheet2")
ODF12
=ADDRESS(3;2;1;1;"Sheet2")
which effectively enables also OOo3.0 to correctly read and calculate the
function again.
Comment 6 ooo 2009-01-25 21:04:25 UTC
Reassigning to QA for verification.
Comment 7 oc 2009-02-06 15:38:02 UTC
verified in internal build cws_calcperf03
Comment 8 vladimir_hitekschool 2009-03-30 06:42:39 UTC
Issue 95381 has been fixed in master version OOo-dev 3.1 .0 (OOO310m7 
Build:9393)for Windows XP and can be closed.
Comment 9 amy2008 2009-03-30 07:32:25 UTC
Thank you, vladimir.
Verified in DEV310m7 on WinXP and Fedora8, it works very well.

Li Meiying