Jump to content
  • 0

FileMaker bug?


rmw

Question

Posted

Zie ik het nou verkeerd of hebben we hier een bug?

 

Er zijn drie bestanden: File1, File2 en File3

 

File1 bevat in elk geval de velden Veld11, Sleutel11 en Sleutel12:

Sleutel11 is een geïndexeerd tekstveld.

Sleutel12 is een geïndexeerd tekstveld.

Veld11 is een geïndexeerd tekstveld.

 

File3 bevat in elk geval de velden Veld31 en Sleutel31:

Sleutel31 is een geïndexeerd tekstveld.

Veld31 is een geïndexeerd tekstveld.

 

File2 bevat tenminste de velden Veld21, Veld22, Veld23, Sleutel21 en Sleutel22

Sleutel21 is een geïndexeerd tekstveld.

Er ligt een relatie van File2 naar File1: Relatie1 = Sleutel21<->Sleutel11

Sleutel22 is een berekend veld (niet opgeslagen): =Relatie1::Veld11

Er ligt een relatie van File2 naar File3: Relatie2 = Sleutel22<->Sleutel31

Veld21 is een geïndexeerd tekstveld met een lookup van Relatie2::Veld31

Veld22 is een geïndexeerd tekstveld.

Veld23 is een berekend veld: =if(isempty(Veld22); Veld21; Veld22)

 

Is Veld23 volgens de theorie wel of niet opgeslagen?

 

De vraag stellen is hem beantwoorden: de theorie zegt dat het veld kan worden opgeslagen.

Zelfs FM zegt dat het kan (de checkbox voor het niet opslaan van de gegevens kan worden uitgezet)

 

Maar......

 

Als ik de velddefinities afsluit en weer open is Veld23 NIET OPGESLAGEN!

 

En het wordt nog mooier:

 

Als ik Relatie2 anders opbouw: Relatie2 = Sleutel21<->Sleutel12

kan Veld23 WEL worden opgeslagen.

 

Iemand?

 

rmw

Files.zip

8 answers to this question

Recommended Posts

  • 0
Posted

Veld23 is een berekend veld: =if(isempty(Veld22); Veld21; Veld22)

 

Is Veld23 volgens de theorie wel of niet opgeslagen?

 

De vraag stellen is hem beantwoorden: de theorie zegt dat het veld kan worden opgeslagen.

 

De theorie zegt, denk ik, het tegenovergestelde. Het hele probleem zit, als ik het me goed herinner, in de niet indexeerbaarheid van calculaties waarin de IsEmpty-functie betrokken is.

IsEmpty is redelijk nieuw en werd vanaf FileMaker 3 in gebruik genomen om het volstrekt onbetrouwbare = "" te vervangen. En ik geloof - maar ik vind dat nu niet direct terug - dat toen al problemen van die aard werden gemeld, juist omdat IsEmpty niet vanaf het begin in de calculation engine van FileMaker zat.

Nu, om te besluiten: zolang ik het artikel over dit probleem niet terugvind, moet je bovenstaande lezen met het nodige voorbehoud.

  • 0
Posted

Heb al iets gevonden in die richting, maar dat probleem is gemeld en al in 3.0 v3 opgelost:

The IsEmpty function will not work properly with number fields in a conditional script. Here is an example script that demonstrates the problem:

 

If["IsEmpty(Number field)"]

Show Message ["The field is empty"]

End If

 

In this example, the script will show the message whether the number field it references is empty or not.

 

Update to FileMaker Pro 3.0v3 to fix this problem.

  • 0
Posted

En dit is al beter:

Calculations do not calculate when the field that they are dependent on is blank.

 

En ze geven meteen de oplossing: het lege veld concatenaten met een ander dat gevuld is en dan die concatenate vergelijken met het gevulde:

 

In order to trigger the calculation, you need to have a field that will always have a value in it. Sometimes these are referred to as 'dummy' or 'constant' fields. A good way to do this is to create a calculation that has a value in it. It can have any value - a date, some text, a number, etc. In this example we will use text:

 

Check4Empty (Calculation, Text result) = "XYZ"

 

So here is the test that will be reliable:

 

ReliableTest(Calculation) = If (TestMe & Check4Empty = Check4Empty, Result if True, Result if False)

 

This test says, 'if you concatenate (combine) the contents of the TestMe field and the Check4Empty field, is that equal to the Check4Empty field?' If they are equal, then there is obviously nothing in the TestMe field.

 

Ik hoop dat dit je verder helpt.

  • 0
Posted

Wees gerust, het is een Bug!!

Iets dergelijks overkwam mij ook.

Sleutel22 is een berekend veld (niet opgeslagen): =Relatie1::Veld11

Zet ofwel Sleutel22 in de index of haal de lookup eruit van Veld21. Filemaker controleert of de index van veld23 mag worden gemaakt en test (ten onrechte!) ook op de lookup berekening. Deze lookup-berekening maakt gebruik van een niet geïndexeerd veld en dat is de clou.

 

Deze bug heb ik ook gehad en is op het forum beschreven. Ik weet even niet meer zo gauw wanneer.

  • 0
Posted
Deze lookup-berekening maakt gebruik van een niet geïndexeerd veld en dat is de clou.

En is dat dan niet op te lossen met het antwoord van FileMaker of vergis ik me?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...