[ http://tools.oasis-open.org/issues/browse/OFFICE-3494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=22925#action_22925 ]
Dennis Hamilton commented on OFFICE-3494:
-----------------------------------------
Andreas,
So what you are saying is that the table:base-cell-address is the address to which all relative references in the formula are relative.
Now I understand what Eike was claiming. Thank you.
So, somehow the HOST-REFERENCE-RESOLVER notices any situation like that in references it is being given from the formula evaluator and realizes that it should resolve the references accordingly.
So the examples I gave don't reveal what the complexities are, especially if the base cell is not mentioned directly in the formula. I need to think about that.
But for my three test cells, I gather that the formulas turn into:
<!-- This is cell [$'Sheet 1'.$A$1] -->
<table:table-cell
table:content-validation-name="+C23=42"
office:value-type="float"
office:value="17"
/>
the condition "is-true-formula([.A1]+[.C23]+[.$C$23]=42)"
becomes is-true-formula([$'Sheet 1'.$A$1]+[$'Sheet 1'.$C$23]+$'Sheet 1'$C$23]=42")
<!-- This is cell [$'Sheet 1'.$X$12] -->
<table:table-cell
table:content-validation-name="+C23=42"
office:value-type="float"
office:value="-1.5"
/>
the condition "is-true-formula([.A1]+[.C23]+[.$C$23]=42)"
becomes is-true-formula([$'Sheet 1'.$X$12]+[$'Sheet 1'.$Z$34]+$'Sheet 1'$C$23]=42")
<!-- This is cell [$'Sheet X'.$BB$11]
<table:table-cell
table:content-validation-name="+C23=42"
office:value-type="float"
office:value="0.05E-6"
/>
the condition "is-true-formula([.A1]+[.C23]+[.$C$23]=42)"
becomes is-true-formula([$'Sheet X'.$BB$11]+[$'Sheet X'.$BD$33]+$'Sheet X'$C$23]=42")
I assume that even this will work:
<table:content-validation
table:name="mode-swing"
table:base-cell-address="A5"
table:condition="is-true-formula(AVERAGE([.A1:A10]) > (MAX([A1:A10])+MIN([A1:A10])/2)"
/>
and this does a lot more than what CURRENTVALUE( ) can possibly accomplish.
OK, I will withdraw the CURRENTVALUE( ) resolution. But we need to make sure that the definition of table:base-cell-address is clear.
> Part 2 6.13 Add CURRENTVALUE function
> -------------------------------------
>
> Key: OFFICE-3494
> URL: http://tools.oasis-open.org/issues/browse/OFFICE-3494
> Project: OASIS Open Document Format for Office Applications (OpenDocument) TC
> Issue Type: Sub-task
> Components: OpenFormula, Part 2 (Formulas)
> Affects Versions: ODF 1.2 CD 05
> Reporter: Dennis Hamilton
> Assignee: Dennis Hamilton
> Fix For: ODF 1.2 CD 06
>
>
> The CURRENTVALUE( ) function is an additional Information Function that provides access to the existing value in the context for which the OpenFormula formula is being evaluated.
> This function corresponds to the current-content( ) function defined in ODF 1.2 style:condition and table:condition attributes and it has the same purpose:
> Whenever the evaluation is in a context where there is a current value, that value is made available to the evaluation as the result of CURRENTVALUE( ). [Note: a current value need not be associated with a specific cell or even a table, depending on the context in which the evaluation is employed.]
> Whenever the current value is that of a table cell, that value is delivered in the same manner as if CURRENTVALUE( ) were a reference to that cell.
> CURRENTVALUE( ) is a special form of reference that delivers a value based on the context of evaluation.
> When there is no current value available, CURRENTVALUE( ) returns an error-type value. If the current value is an error-type value, that error is returned.
> Evaluation of CURRENTVALUE( ) shall not induce recalculation. It does not constitute a recursive reference of any kind.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira