Ga naar inhoud
  • 0

veld uit found set verzamelen


guyvt

Vraag

Een simpele vraag misschien, maar hoe kan ik in één keer al de values van een veld in de found set, in een return delimited list krijgen ?

 

Het veld is kwestie is de prime key van mijn tabel, maar dat maakt voor de oefening geen verschil uit denk ik.

Ik heb het geprobeerd met List() maar dat werkt enkel voor repeating fields, of voor related fields, niet voor de found set van de huidige tabel.

 

Ik kan natuurlijk een paar lijntjes script schrijven, de records overlopen en telkens de prime key & "enter" achter de vorige plakken, maar dat vind ik verre van elegant :-)

Link naar reactie

6 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Ah, dat laatste is schittered !

 

Een custom function die iteratief wordt opgeroepen en telkens mbv GetNthRecord de veldinhoud verzamelt :

GetNthRecord ( Field; StartValue ) &

If(IsValid(GetNthRecord ( Field; StartValue + 1));

¶ & GetValueSet(Field; StartValue + 1))

 

 

Dat ik daar niet opgekomen ben ;-)

Link naar reactie
  • 0
.....omdat het zijn eigen recursiemodel heeft ontwikkeld die blijkbaar sneller is dan die van FileMaker....

 

Is inderdaad een mooie, maar heeft als nadeel dat je de formule als tekst moet opgeven.

Daarmee wordt je opgegeven formule dus niet door FM zelf gecontroleerd op fouten en dat maakt hem gevoeliger voor problemen als er zaken wijzigen in de database structuur.

Maar snelheid heeft nu eenmaal zijn prijs :wink:

 

rmw

Link naar reactie
  • 0

normaal geeft deze functie de fout code terug die FileMaker vindt, je moet maar eens een functie ingeven die niet werkt. Maar je hebt gelijk dat het inderdaad zichzelf niet aanwijst. Het komt er dan ook op neer om goed te kijken wat er fout kan gaan.

 

Het enige wat echt fout kan gaan in dit voorbeeld is dat je idd de naam van het veld en tabel moet hardcoderen en als je dan de tabel of veldnaam verandert de functie niet meer werkt. Maar dit kan je dan weer omzeilen door gebruik te maken van de FM_Name_ID () custom functie, die je toelaat om het veld ID te coderen, waardoor je de veldnaam of tabelnaam weer wel mag veranderen, de custom functie zal dan aan de hand van de veld ID de juiste veldnaam opzoeken.

 

Ik zou de functie als volgt definieren (dit is wel uit de losse pols, dus kunnen fouten inzitten)

Let (
_functie = "GetNthRecord ( " & FM_Name_ID ( XX ; "T" ; "" ; "" ) & "::" & FM_Name_ID ( YY ; "F" ; "" ; "" ) & " ; [n] )"
;
CustomList ( 1 ; Get ( FoundCount ) ; _functie )
)

 

op die manier is ze terug dynamisch en kan je weer veld en tabel naam wijzigen.

 

 

Nog een voordeel van CustomList is dat het een recursie heeft tot 500.000, ipv 10.000 bij FileMaker.

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