Ga naar inhoud
  • 0

Probleem met relatie


Arnoud

Vraag

Geplaatst: (aangepast)

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

aangepast door Gast

12 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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
Geplaatst: (aangepast)

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

aangepast door Gast
  • 0
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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

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

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