Jump to content
  • 0

Geen 'loop' functie in FM8 (calculation)?


rsmits

Question

Posted

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?

18 answers to this question

Recommended Posts

  • 0
Posted

Mogelijk met een custom functie toch, denk ik hoor, voor bepaalde toepassingen. Het fijne ervan laat ik aan de specialisten, maar bekijk het al eens als je een Pro Advanced versie moest hebben.

  • 0
Posted

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

  • 0
Posted (edited)
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
  • 0
Posted

Ik begrijp het niet helemaal.

 

In je eerste vraag heb je het over een auto-calculation

En in je laatst antwoord over een script.

 

Scripts hebben wel loops en een auto-calculation kan gewoon 4 herhalingen aan een rijgen.

 

:?:

 

rmw

  • 0
Posted

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

  • 0
Posted (edited)

Daar kan ik wel wat mee! Maar hoe kan ik in filemaker 8 een custom functie maken?

 

Ik zie het al....dat kan alleen met FM8 Pro Advanced... :oops:

Edited by Guest
  • 0
Posted

Kan wel,als je enkel vier herhalingen hebt.Je zou bvb 4 variabelen kunnen toewijzen aan elke herhaling.Dmv de case kan je dan de waarde aan de betreffende variabele en daarmee ook aan de juiste herhaling toekennen.

  • 0
Posted

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" ; "" )

  • 0
Posted

Kan je geen Vb'tje posten.Nu praat je over een import,misschien kan je alles op een heel andere manier aanpakken en gewoon van 1 tabel naar de andere schrijven (in de velden die je wil en waar je het wil)

  • 0
Posted

Kan je eens een voorbeeld geven wat je nu eigenlijk wil bereiken

 

 

vb van de input data

vb van de output data

 

misschien kunnen we dan wel iets verzinnen

 

 

mvg

 

 

Glenn

  • 0
Posted

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.

  • 0
Posted
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

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

  • 0
Posted

Daar het dus een eenmaile import is zou ik het herhalend veld importeren naar een veld oude waarde in 8.Maak een simpel loopscript en gebruik telkens setfield(nieuwewaarde) en getrepetition(oudewaarde) met hun respectievelijke herhalingen.

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