To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=79924 Issue #|79924 Summary|Strong Typing in Formulas Component|Spreadsheet Version|OOo 2.2.1 Platform|All URL| OS/Version|All Status|UNCONFIRMED Status whiteboard| Keywords| Resolution| Issue type|FEATURE Priority|P2 Subcomponent|code Assigned to|spreadsheet Reported by|discoleo
------- Additional comments from [EMAIL PROTECTED] Mon Jul 23 18:23:45 +0000 2007 ------- *This is a killer feature*! = *INTRO* = Every decent programing language implements a typing mechanism of variables to reduce the rate of errors. One advantage of C++ over C was exactly the stronger typing mechanism (in addition to namespaces; classes and templates contributed strongly to the more robust typing). However, spreadsheets have failed to introduce typing, although a great number of errors could be prevented IF such a mechanism was built in. I consider this a *major design flaw* of existing spreadsheet applications, and one that makes it in my personal *TOP 5* of fundamental design flaws. I estimate (blindly) that almost one third of significant spreadsheet errors could be prevented by such a mechanism. Please note, that I have a vast experience in working with spreadsheets, overseeing 100+ employees that work extensively with spreadsheets. This issue has been partially discussed on the OASIS mailing list (see http://lists.oasis-open.org/archives/office-comment/200706/msg00005.html and the ensuing discussion). Though the aforementioned thread discussed units on a more broader scale, I wish to focus here entirely on currency. = *CURRENCY* = Calc should implement a strong typing system. In a first phase, I advocate implementing a general typing system for currency (a generic currency type), later extending it to further units (probably 'time-units' being next and followed by other units). = *OPERATIONS* = Valid operations with this unit: 1. (currency) + (currency) => (currency) 2. (currency) * scalar => (currency) 3. (currency) / scalar => (currency) 4. (currency) / (currency) => scalar Invalid operations: 1. (currency) + scalar !!! (many errors) 2. (currency) * (currency) (see statistics comment; maybe allowing this operation, BUT IF the cell formatting has UNIT<currency>, raise an ERROR) 3. (currency)^(x), where x != 1 [statistics should be possible to compute with currencies, although that would involve terms of form (currency)^2; this should be solved somehow] = *FURTHER DEVELOPMENT* = Various subtypes of currency should be possible to create in later versions of the implementation, e.g. 1. Euro as type <currency> 2. US$ as type <currency> 3. various other currencies (custom currencies) Still later, there should exist the possibility to define conversions between these currencies subtypes. There would be 2 types of conversions: 1. fixed: - defined once and stored with the document, e.g. 1 Euro = US$ 1.33 - every conversion between Euro and US$ would be accomplished using this explicit conversion factor 2. dynamic: - allow the conversion factor to be retrieved dynamically from a web-site, server, some other place, ... - conversions are done dynamically, either at: -- opening the document -- some pre-specified time point -- x-times per day -- some other condition [This would be especially interesting for international enterprises and the financial market.] = *ADVANTAGES* = - many spreadsheet ERRORS would be timely prevented (many at design time) - significant financial losses averted - a clear advantage over competing products - would set the standard in the field, not merely copying MS Excel --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
