Ga naar inhoud
  • 0

Calculatie via script


Femca

Vraag

Hallo iedereen

 

Wij hebben een vraag ivm het aanpassen van een calculatie formule adhv een script.

 

We hebben een grote database die bestaat uit verwerkte vragenlijsten met betrekking tot familiale voorgeschiedenis (vader, moeder, grootouders, broers en zussen). We maakten nieuwe kolommen aan adhv Calculations. Deze calculaties (ongeveer 20 per familielid, ca. 260 in totaal) vertragen FM pro 10 echter enorm! Daarom bedachten we scripts (replace field contents by calculation) om deze calculatie uit te voeren, en maakten we van de velden zelf een tekst-of numeriek veld.

 

Nu moeten we echter deze 260 formules kopiëren naar een script wat heel arbeidsintensief is.

De formules zijn als volgt opgebouwd:

vb: om volgend veld te maken 'Sudden_death_father' gebruiken we volgende formule

If (Position ( quest2::E6 ; "5" ; 1 ; 1); "Yes"; "No")

(In vraag E6, als 5 werd geantwoord is er plotse dood)

 

Voor de moeder:'Sudden_death_mother'

If (Position ( quest2::E6_2 ; "5" ; 1 ; 1); "Yes"; "No")

 

Voor een grootouder:

If (Position ( quest2::E6_3 ; "5" ; 1 ; 1); "Yes"; "No") enz

 

Zoals jullie zien, zijn de formules op dezelfde manier opgebouwd, behalve de referentievelden verschillen

Bestaat de mogelijkheid om een script te maken die voor de verschillende familieleden de referentievelden vanzelf verandert?

 

Vb 'Sudden_death_x': If (Position ( quest2::y ; "5" ; 1 ; 1); "Yes"; "No")

Kunnen we een dergelijk script maken:

if 'x' = father then 'y' in the formula must be E6

if 'x' = mother then 'y' in the formula must be E6_2 enz

 

Kan iemand ons hiermee helpen?

Bedankt!

Link naar reactie

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0
'Sudden_death_x': If (Position ( quest2::y ; "5" ; 1 ; 1); "Yes"; "No")

Kunnen we een dergelijk script maken:

if 'x' = father then 'y' in the formula must be E6

if 'x' = mother then 'y' in the formula must be E6_2 enz

Je hebt SetFieldByName() om velden van een waarde te voorzien en GetField() om velden uit te lezen, waarbij het 'veld' als een tekststring kan worden opgegeven en dus worden berekend.

 

Is dat wat je zoekt?

 

rmw

Link naar reactie
  • 0

Bedankt voor je reactie.

 

We hebben reeds geprobeerd om eerst een variabele 'x' aan te maken via Set variable, met voor 'x' de waarde 'father' of 'mother' enz bijvoorbeeld.

Daarna doen we 'Replace field contents (fieldname: 'sudden_death_x; If (Position ( quest2::E6_x ; "5" ; 1 ; 1); "Yes"; "No"))'. Het probleem is dat het veld 'sudden_death_x' niet bestaat (enkel 'Sudden_death_father', 'Sudden_death_mother' enz) en we het dus niet kunnen selecteren als veld waarin hij de calculatie moet zetten. Alsook veld E6_x bestaat niet, maar wel E6_father, E6_mother.

Kan Filemaker die velden toch vinden door een waarde aan die 'x' te geven? Zoja, hoe?

 

Alvast bedankt!

 

Femca

Link naar reactie
  • 0

Replace field contents is niet in staat om een veld aan te wijzen door middel van een berekening.

Set Field by Name kan dat wel, maar dat kan slecht op het veld in 1 record.

Je zoekt dus naar een manier om wel alle records af te gaan (wat replace doet), maar ook een veld te kunnen opgeven door een berekening (wat set field by name doet)

Dat kan door middel van een 'loop'

In je script kan je een aantal stappen laten herhalen door de scriptstappen 'loop / end loop' te gebruiken.

Alles tussen 'loop' en 'end loop' wordt zo vaak herhaald als je opgeeft.

Als je als laatste stap, voor 'end loop', go to record [next, exit after last] opgeeft moet het lukken.

 

HTH

 

rmw

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