Jump to content
  • 0

Geen 'loop' functie in FM8 (calculation)?


rsmits

Question

Waarom is er geen 'Loop' functie in FileMaker 8 die je kunt gebruiken in een auto-calculation?? :x

 

Ik heb eigenlijk een loop functie nodig omdat ik uit een repeatingfield van 4 vakjes de waarde wil lezen.

 

Met een loop functie wil ik dan repeatingField[X] uitlezen. Waarbij X opgehoogt moet worden tot 5 middels een loopje of iets dergelijks.

 

Heeft iemand een idee hoe ik dit moet bewerkstelliggen zonder dat ik een loop functie nodig heb?

Link to comment

18 answers to this question

Recommended Posts

  • 0
Als je repeating field precies 4 repetitions heeft, dan is een loop toch niet nodig? Je kan gewoon herhaling 1-4 achter elkaar zetten.

 

Pas als je een variabel aantal nodig hebt is een loop interessant.

 

En FM kan geen variabel aantal herhalingen aan...

 

rmw

Ok, maar dan krijg ik een onnodig lang auto-enter calculation. Vooral als ik het vergelijk als ik hetzelfde script in een andere scripttaal moet maken....

Edited by Guest
Link to comment
  • 0

Hmmm onderstaande pikt hij niet. De waarde wordt gewoon in het repeatingfield begintijd[1] bijgeschreven.

 

Het is een repeatingfield van 4 velden het type is 'text'. Het script is een auto-enter calculation.

 

Let ( begin = Case ( PatternCount ( begintijd[1] ; "." ) > 0 
or PatternCount ( begintijd[1] ; ";" ) > 0  
or PatternCount ( begintijd[1] ; "," ) > 0 ;  
Substitute ( Substitute ( Substitute ( 
begintijd[1] ; 
"." ; "," ) ; 
";" ;"," );
"," ; "," ); begintijd[1] & ",00") ; If(begin = "0,00"; begin; If(Length(begin) = 4; begin & "0" ; 
If(Length(begin) = 3; begin & "0" ; 
If(Length(begin) = 2; begin & ",00"; begin) ) ) ) ) &

Let ( begin = Case ( PatternCount ( begintijd[2] ; "." ) > 0 
or PatternCount ( begintijd[2] ; ";" ) > 0  
or PatternCount ( begintijd[2] ; "," ) > 0 ;  
Substitute ( Substitute ( Substitute ( 
begintijd[2] ; 
"." ; "," ) ; 
";" ;"," );
"," ; "," ); begintijd[2] & ",00") ; If(begin = "0,00"; begin; If(Length(begin) = 4; begin & "0" ; 
If(Length(begin) = 3; begin & "0" ; 
If(Length(begin) = 2; begin & ",00"; begin) ) ) ) )

Link to comment
  • 0

Ik doe een import records...

Hoe kan ik testen in welk repeatingveld hij gaat schrijven?

Ik heb namelijk de Case functie geprobeerd alleen hij schrijft alleen maar in de 1e repeatingfield.

 

Case ( begintijd[1] ; 
Let ( begin = Case ( PatternCount ( begintijd[1] ; "." ) > 0 
or PatternCount ( begintijd[1] ; ";" ) > 0  
or PatternCount ( begintijd[1] ; "," ) > 0 ;  
Substitute ( Substitute ( Substitute ( 
begintijd[1] ; 
"." ; "," ) ; 
";" ;"," );
"," ; "," ); begintijd[1] & ",00") ; If(begin = "0,00"; begin; If(Length(begin) = 4; begin & "0" ; 
If(Length(begin) = 3; begin & "0" ; 
If(Length(begin) = 2; begin & ",00"; begin) ) ) ) ) ; 

begintijd[2] ; Let ( begin = Case ( PatternCount ( begintijd[2] ; "." ) > 0 
or PatternCount ( begintijd[2] ; ";" ) > 0  
or PatternCount ( begintijd[2] ; "," ) > 0 ;  
Substitute ( Substitute ( Substitute ( 
begintijd[2] ; 
"." ; "," ) ; 
";" ;"," );
"," ; "," ); begintijd[2] & ",00") ; If(begin = "0,00"; begin; If(Length(begin) = 4; begin & "0" ; 
If(Length(begin) = 3; begin & "0" ; 
If(Length(begin) = 2; begin & ",00"; begin) ) ) ) ) ; 

begintijd[3] ; "bla" ; "" )

Link to comment
  • 0

Ok ik zal mijn probleem beter omschrijven.

 

Ik ben bezig met het omzetten van een FM5 systeem naar FM8.

Nu heb ik een tabel met projecten.

Een project kan meerdere begintijden hebben (maximaal 4).

 

Die begintijden staan in 4 repeatingfields met als naam 'begintijd'.

 

Het omzetten geschied op een lokaal werkstation. Het FM5 systeem draait ook nog gewoon gedurende het omzetten. Nu moeten alle gegevens uit het FM5 systeem naar FM8. Het inlezen van deze gegevens die ik via 'import records' --> CSV file.

 

Na het inlezen moeten de begintijden omgezet worden.

Oude waarde: Nieuwe waarde:

17 17,00

15,5 15,50

8,5 08,50

1,25 01,25

 

Het omzetten wil ik realiseren middels de auto-enter calculation functie.

Maar alleen de 1e waarde (begintijd[1]) wordt omgezet en de volgende niet. Ze worden wel goed ingelezen vanuit het CSV bestand, maar niet omgezet naar de nieuwe waarde.

Link to comment
  • 0
Maar alleen de 1e waarde (begintijd[1]) wordt omgezet en de volgende niet.

 

Bij een auto-enter kan je ook niet opgeven voor welke herhaling deze moet gelden. En bij geen specificatie van de herhaling neemt FM de eerste.

 

Ik ben bang dat je dit moet scripten.

 

Een wens voor de volgende versie??

 

rmw

Link to comment
  • 0
Maar alleen de 1e waarde (begintijd[1]) wordt omgezet en de volgende niet.

 

Bij een auto-enter kan je ook niet opgeven voor welke herhaling deze moet gelden. En bij geen specificatie van de herhaling neemt FM de eerste.

 

Ik ben bang dat je dit moet scripten.

 

Een wens voor de volgende versie??

 

rmw

Is het dan misschien iets om de gegevens in te lezen en daarna een script te laten lopen die de begintijden omzet naar de gewenste nieuwe waardes.

Link to comment

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...