Ga naar inhoud
  • 0

Geen 'loop' functie in FM8 (calculation)?


rsmits

Vraag

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 naar reactie

18 antwoorden op deze vraag

Aanbevolen berichten

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

aangepast door Gast
Link naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...