Jump to content
  • 0

Probleem met relatie


Arnoud

Question

Posted (edited)

Hallo allemaal,

 

Na lange tijd niets met FMP te hebben gedaan ben ik weer bezig met een projectje.

Daar loop ik tegen het volgende probleem aan.

 

BESTAND: Tijdelijk

Veld [getal] : id1

 

BESTAND: Basis

Veld [getal]: id2

Veld [calc]:: calc

 

Het is de bedoeling dat de gegevens van Tijdelijk via een picklist uit Basis gehaald worden.

De picklist dient alleen die waarden te bevatten die nog niet in Tijdelijk zijn opgenomen.

Dus als Basis 4 records heeft, met id2: 1, 2, 3, 4 en Tijdelijk 2 records met id1: 1, 4 dan moet de picklist alleen de id’s 2 en 3 weergeven.

 

Ik heb een relatie gelegd tussen de twee bestanden en kan in Basis dmv een calculatie per record weergeven met een 0 welke records nog ‘missen’ in Tijdelijk.

Ik was in de veronderstelling dat ik daarna via een relatie tussen de twee bestanden, in een

portal in Tijdelijk, de nog missende recordjes zou kunnen tonen maar dat werkt niet:

Tijdelijk: PK: globalNul ~ Basis: FK: calcNul

Het lukt overigens ook niet via een selfjoin in Basis.

Als ik nog een extra getalveld aanmaak met dezelfde veldwaarden als het calcveld en ik verleg de relatie naar dat getalveld dan is er geen probleem, maar ik wil niet steeds dit getalveld via een script laten opfrissen.

 

Wie kan mij een zetje geven?

 

m.vr.gr,

Arnoud

Edited by Guest

12 answers to this question

Recommended Posts

  • 0
Posted

Renzo zit goed.

Relaties werken via de indexering. Als een veld niet is opgeslagen (Tijdelijk01) dan kan je daar geen relatie NAAR TOE leggen.

Je kan ze wel gebruiken als begin van een relatie.

Als je goed kijkt in je relatie diagram, zie je ook een 'doodlopende weg' tekentje bij de relatie.

 

 

rmw

  • 0
Posted

Bedankt rmw en Renzo.

Jammer, dat dit niet relationeel kan want dan rest alleen

nog het gebruik van een loopje om een gewoon 0/1 getalveld

(via een loopje) te vullen met de waarden uit de calculatievelden.

Bij een paar honderd records duurt het erg lang voordat de

picklist in beeld komt......Tenzij ik het via de gewone listview ga oplossen

en ga zoeken op 0.

 

gr,

Arnoud

  • 0
Posted

Dank je voor bijdrage Fmwebshop.

Jouw oplossing is inderdaad het alternatief dat ik zelf ook al aandroeg....maar dat terzijde.

Maar......, dat wil ik helemaal niet, ik wil een klein windowtje met daarin een portalpicklist.

Eerlijk gezegd ben ik er nog niet helemaal van overtuigd dat zulks niet mogelijk is.

 

gr,

Arnoud

  • 0
Posted (edited)

Ik weet niet of het goed begrijp.

Het wel of niet voorkomen in Tijdelijk geld over alle records heen?

In welk record ik mij ook bevind in Basis, je wilt altijd dezelfde lijst met records zien?

 

rmw

Edited by Guest
  • 0
Posted

Als bovenstaande aanname klopt, heb je een functie nodig die FM standaard niet heeft.

Je kan met FilterValues wel een doorsnede van 2 arrays maken, maar er is geen methode om een verschil van twee arrays te berekenen.

In bijgaand voorbeeld heb ik daarvoor een custom functie aangemaakt.

Deze kan ook door een script worden vervangen.

 

Verklaring in het bestand.

 

rmw

Picklistv2.fp7

  • 0
Posted

Hi rmw,

 

Bedankt voor je tijd.

Volgens mij begrijp je precies wat ik bedoel, het gaat inderdaad om een verschil

of complement en niet om een doorsnede/overeenkomst van data.

Dus als Tijdelijk, Jan en Piet bevat, en Basis Jan, Piet, Willem en Kees

dan moet de portal alleen het verschil, dus Willem en Kees bevatten.

Voeg ik daarna Willem toe aan Tijdelijk dan zit alleen Kees nog in de portal.

Ik vind je CF vernuftig (hoewel ik de formule nog niet helemaal doorheb) maar zie in het

door jou gemaakte voorbeeld niet terug wat ik bedoel of ligt dat aan mij?

Ja, ik zou het scriptmatig ook wel voor elkaar krijgen maar dat vind ik minder elegant.

 

gr,

Arnoud

  • 0
Posted

Ik ben benieuwd wie er met een constructie komt die automatisch doet wat jij wilt.

Fm kan geen relatie leggen met een berekend veld en daar lijk je mij altijd op uit te koemen.

 

Het lijkt mij dat de loop constructie in je idee hierboven niet de goede oplossing is, die is nl langzaam en onnodig.

Verversen van je portal met een script kan binnen een deel van een seconde.

 

Vr groet

Harry

Picklist.fp7

  • 0
Posted
... maar zie in het door jou gemaakte voorbeeld niet terug wat ik bedoel ...

 

Refresh probleem.

Helaas nog al eens het geval bij FM.

Hoewel de gegevens wijzigen wordt de informatie die daarvan afhankelijk is niet altijd geupdate.

Na toevoegen of verwijderen van records in Tijdelijk op Refresh drukken en het wordt zichtbaar.

Omdat het toevoegen van info aan Tijdelijk waarschijnlijk toch wordt gescript, is het niet zo'n probleem om een refresh op te nemen in het script.....denk ik :wink:

 

Maar je hebt gelijk, liever zonder!

Maar ik zou zo niet weten hoe....

Vreemd genoeg wordt 'gIsErNog' wel geupdate, maar de informatie in de portal die daarop is gebaseerd niet...blijft altijd een puzzel.

 

rmw

Picklistv3.fp7

  • 0
Posted

Dank rmw en Fmwebshop voor het meedenken (en doen).

Ik ga zeker die CF uitproberen, inderdaad jammer van dat refreshen.

Typisch FM, net zoals die dialogs die zonder Freeze Window al op je scherm verschijnen

voordat het script er echt aan toe is.

 

vr.gr,

Arnoud

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