Pedro Posted July 26, 2001 Posted July 26, 2001 Hello I had been working along the last years with FM, I started with FM 4 and recently I updated it to FM 5(everything works well) and after it to version 5.5 and I saw a serious Bug that would damage all the calculated data on my database. It's something like this: If(Field<>"X", 0, 1) When this field still empty on version 5.5 the result of this calculation still empty and it's wrong because it would receive a "0". With version 4 an 5 it works. My database is very big, with 31 files and about 2000 fields and most of then are calculated and I can't modify each calculated field. Is there a way to solve it??? HELP ME PLEASE> Thanks
Kurt Knippel Posted July 26, 2001 Posted July 26, 2001 Make the calc "unstored". Check to see if you display is set to not show zero. Make sure that the "do not evaluate if all referenced fields are empty" option is checked. There are likely some other things as well, but I cannot think of them at the moment. The above were the obvious possibilities. This is not a "bug" that I have ever seen, but seems like simple user error. I have upgraded to 5 without ever seeing this issue, I have also used 5.5 without seeing this.
Pedro Posted July 26, 2001 Author Posted July 26, 2001 But how can you explain me why it works on versions 4 and 5 and isn't works at version 5.5
Kurt Knippel Posted July 26, 2001 Posted July 26, 2001 quote: Originally posted by Pedro: But how can you explain me why it works on versions 4 and 5 and isn't works at version 5.5 Well since I cannot say that I have ever seen this problem, I cannot say why it might be happening. Can you send me the file in question?
Anatoli Posted July 26, 2001 Posted July 26, 2001 quote: Originally posted by Pedro: ... If(Field<>"X", 0, 1) Just guess -- what is the Calc result type? Character or Numeric? Maybe the 5.5 require more strict field types. You example as above MUST be Numeric. In any case, I think it is better to test for Empty(). Just my 2 cents.
h2o Posted July 27, 2001 Posted July 27, 2001 quote: If(Field<>"X", 0, 1) I have a similar problem. If(Field_1 = 1; 1;If(Field_2 = 1; 21; 0)) On version 5, with "Do not evaluate if all referenced fields are empty" checked, if Field_1 = empty and Field_2 is not empty, i have a result. On version 5.5, the result is empty. I have to uncheck "Do not evaluate..." to have the same result as in version 5. Some FSA member say me that is was a known problem, but not a bug. Just a correction. Now, the result is the right evaluation of the meaning of the expression "Do not evaluate if all referenced fields are empty". But it will be a problem if you have create a big development on pre-5.5 version and you will upgrade to 5.5.
Pedro Posted July 27, 2001 Author Posted July 27, 2001 Thank you everybody, i think the the solution is to do what Jean-Marie said
h2o Posted July 28, 2001 Posted July 28, 2001 An other suggestion, convert the "If" statements to "Case" statements. Case (test1; result1
rogermax Posted July 29, 2001 Posted July 29, 2001 I too prefer the case statement in most areas. the default result at the end of an IF statement being 0 (zero) is no longer empty. A result of "" would be empty. Zero could be evaluated for certain conditions. I haven't thought through whether it would make a difference in calc result of text vs. numeric. Feel free to correct if I missed something
Recommended Posts
This topic is 8559 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now