Issue 117969

Summary: max/min values in "currency field" columns of table controls in db forms are wrongly interpretated
Product: Base Reporter: cluster15
Component: codeAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Normal    
Priority: P3 CC: frank.schoenheit, issues, r4zoli
Version: 4.0.1   
Target Milestone: ---   
Hardware: PC   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
Testcase for the use of currency fields in a table control none

Description cluster15 2011-05-02 14:58:35 UTC
Created attachment 76474 [details]
Testcase for the use of currency fields in a table control 

When you create a database form, which contains a table control in which a column is of type "currency field", the "value max." of the column effectively divided by 10^n where n is the number corresponding to its "decimal accuracy" property.

As an example :  

"Value max."|"Decimal accuracy"|Actual max value|Expected max value  
1000000.00      2                  10000.00            10000000.00  
1000000.000     3                  1000.000            10000000.000  

The same happens to minimum values correspondingly. 

This does not happen to normal "numeric" fields inside the table control.  

This does not happen for "currency fields" outside of a table control.  

Tested under Linux/Windows XP/Vista (32bit)/Mac OS X 10.6 with postgresql as backend (via jdbc) and also using the HSQL backend (see below for test database)  

Attached is a test database containing one table and 3 forms (using the HSQL backend): 

The database table contains 6 columns of type double. 

The forms:

Form "test_simple_fields":

contains "currency fields" for the corresponding db-table columns with the following max./min values:

real1 : 1000000.00/-1000000.00
real2 : 12345,67/-12345,67
real3 : 1000000.00/-1000000.00
real4 : 12345,67/-12345,67
real5 : 1000000.000/-1000000.000
real6 : 1000000.000/-1000000.000

Form "test_table_control":
contains "currency fields" for the corresponding db-table columns with the following max./min values:

real1 : 1000000.00/-1000000.00
real2 : 12345,67/-12345,67
real3 : 100000000.00/-100000000.00
real4 : 1234567,00/-1234567,00
real5 : 1000000.000/-1000000.000
real6 : 1000000000.000/-1000000000.000

Form "test_combined" 

contains both controls in one form.... 

In the table control multiplying the min/max values by 10^n (where n is the number of its decimal accuracy property) provides the "correct" behaviour but does _not_ constitute a valid workaround in my eyes. This was done in the columns real3 real4 and real6 of the table controls in the test database to check whether the decimal accuracy actually works (like for 12345.67 etc). 

Depending on via which control you use to change/enter the data the values in the database table may or may not be correct. If the table control only displays values exceeding its limits, the database entries are still correct, but incorrectly displayed. Only after changing the values via the table control the lower limits are enforced. 

Please play around with the forms and data. 

NOTE: Exceeding the max/min value leads to a rather silent change of the value in the database entries (no warning no flashing, I admit the change is visible in the control) I am not certain, that this is "wise"....
Comment 1 r4zoli 2011-05-02 15:57:51 UTC
I can confirm it, same happens in OOo 3.4 Beta.
Comment 2 Frank Schönheit 2011-06-09 08:11:00 UTC
grabbing, targeting, adjusting prio
Comment 3 cluster15 2012-03-21 09:44:01 UTC
Sorry, to bump this, but is there any progress here? Anything I could do to help?
Comment 4 Oliver-Rainer Wittmann 2012-06-13 12:31:27 UTC
getting rid of value "enhancement" for field "severity".
For enhancement the field "issue type" shall be used.
Comment 5 cluster15 2014-02-17 16:08:28 UTC
And again a bump, still present in the current release.
Comment 6 Marcus 2017-05-20 10:44:49 UTC
Reset the assignee to the default "issues@openoffice.apache.org".