Jump to content
  • 0

portal met unieke waarden


hezndepezn

Question

5 answers to this question

Recommended Posts

  • 0

Eerst even zeggen dat dit niet een techniek is die ik zelf heb uitgevonden, maar heb te danken aan Fabrice Nordmann.

 

Het principe zit hem in het volgende: een auto-enter wordt enkel geherevalueerd als de velden die het gebruikt in zijn calculatie

a) veranderen

b) behoren tot dezelfde tabel

 

Onder deze twee condities zal de calculatie geherevalueerd worden.

 

het probleem hier is dat we met een gerelateerde waarde zitten, en dus niet aan conditie b wordt voldaan ( als je dus de _trigger = thema zou weglaten werkt het niet ). Maar, het is ook zo dat we enkel willen dat deze waarde wordt geherevalueerd indien er iemand prutst met thema. Daarom voeg ik de _trigger = thema toe. Op die manier forceer ik de auto-enter om zich opnieuw te evalueren als het veld "thema" wordt veranderd.

 

Let ( 

_trigger = thema

;
Case ( uniek selfjoin::thema ; -1 ; 1 ) 

)

 

Ik gebruik dit vaak ipv een lookup, waarbij ik een foreign key als _trigger gebruik, en dan de gerelateerde waarde laat opzoeken indien de foreign key veranderd. Op die manier probeer ik veel unstored calculaties te ontwijken. Deze techniek werkt eigenlijk als een lookup, alleen kan je er nu een case ( ) aan vastkoppelen, wat niet kan met een lookup.

 

Voor dit concrete voorbeeld werkt dit inderdaad niet 100 procent (en dus eigenlijk niet moet ik eerlijkheidshalve toegeven). Het probleem is hier als volgt. Stel ik maak een record aan met thema a. Ik maak een nieuwe record aan met thema b. Beide geven dan 1 terug in de calculatie. Als ik nu in de tweede record thema b in thema a verander zal ik dus auto-enter triggeren en zal hij dus -1 geven ( maw het is een duplicaat). Probleem is nu het volgende, als ik record 1 in b verander, zal record 2 nog altijd aangeven dat hij niet uniek is, terwijl hij nu dus wel uniek is geworden.

 

Bovenstaande techniek werkt dus enkel binnen de context van die record, maar kan dus niet de waardes in andere records gaan aanpassen. Je zal het denk ik dus idd via doScript moeten doen. Ik dacht dat het de bedoeling was om bij de creatie van een record of het aanpassen van een record dat hij dan zou moeten kijken of een waarde uniek is. Maar het is natuurlijk ook de bedoeling dat als je een waarde verandert van een record of hij dan gaat kijken naar de andere of die al dan niet uniek zijn geworden, en dat doet hij dus niet. Of je moet werken met een unstored calculations, maar dan werkt je portaal niet meer...

 

Ik hoop dat dit een beetje duidelijk is... anders wil ik het nog eens proberen uit te leggen :-)

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