NvD Geplaatst: 7 april 2009 Delen Geplaatst: 7 april 2009 Beste forumleden, De functie 'veld op naam' is precies op tijd voor mij maar toch loop ik tegen een probleempje op. Ik heb een soort verjaardagskalender met 366 velden met het dagnummer waarop de juiste dag de verjaardag geplaatst moet worden. Doelveld opgegeven: "Kalender::dagnr Kopie" & DayofYear (Date ( Month ( Kalender::Geboren1 ) ; Day ( Kalender::Geboren1 ) ; Kalender::jaarinstellen )) Nu wil ik in het berekend resultaat eerst controleren of er al een waarde staat in het doelveld en zoja dan doelveld & " en " & ....... onderstaand Berekend resultaat: Kalender::Roepnaam1 & " " & Kalender::jaarinstellen - Year ( Kalender::Geboren1 ) & " jaar". Alle vele pogingen gedaan met get field en naamfield maar wil niet lukken. Alvast hartelijk dank Nico van Diepen Quote Link naar reactie
0 fmwebshop Geplaatst: 7 april 2009 Delen Geplaatst: 7 april 2009 Probeer de if() functie "als( er in dit veld iets staat; dan dit; anders dat) Quote Link naar reactie
0 NvD Geplaatst: 7 april 2009 Auteur Delen Geplaatst: 7 april 2009 Van alles al gedaan maar ik krijg de inhoud van het veld niet nico Quote Link naar reactie
0 hiker Geplaatst: 7 april 2009 Delen Geplaatst: 7 april 2009 case(doelveld>"";doelveld &" en " & berekende waarde;berekende waarde) Quote Link naar reactie
0 NvD Geplaatst: 8 april 2009 Auteur Delen Geplaatst: 8 april 2009 Alvast bedankt voor het meedenken maar helaas zijn dit niet de oplossingen. met veld op naam instellen heb ik geen echte veldnaam ter beschikking. Ik plaats een verjaardag op het dagnr van dat jaar. Maar er kunnen meer personen jarig zijn die dag dus ik wil controleren of er al een waarde staat in dat veld, maar hoe ?? Ik probeer van alles met 'GetField ( Evalueren(Get ( NaamActiefVeld ) ))' en de combi getfieldname maar krijg geen waarde terug. Probeer ik soms iets wat niet mogelijk is of doe ik het, hopelijk, verkeerd. Dus specialisten wie o wie heeft een oplossing Nico Quote Link naar reactie
0 andries Geplaatst: 8 april 2009 Delen Geplaatst: 8 april 2009 Mss dat dit je kan helpen. Als het veld leeg is, zet hij er haha in, anders laat hij gewoon alles staan. Alles wordt gedefinieerd in de scriptparameter. Veel plezier TestSetFieldIfEmpty.fp7 Quote Link naar reactie
0 NvD Geplaatst: 8 april 2009 Auteur Delen Geplaatst: 8 april 2009 Helaas Andries ook dit is niet de oplossing. Veld op naam instellen is nieuw in FM10 en pas in het uitvoeren van het script weet ik welk veld het gaat worden. Afhankelijk wie wanneer jarig is. In jouw script wordt test::test al toegewezen aan een variabele wat ik dus niet kan. Ik blijf zelf ook nog doorzoeken. Hartelijk dank voor de inzet Nico Quote Link naar reactie
0 hiker Geplaatst: 8 april 2009 Delen Geplaatst: 8 april 2009 Je wilt controleren of er al een waarde staat, maar wat wil je daar mee? Als doelveld>"" waar is, is er dus een waarde. De eerder gegevens formule plakt dan de nieuwe gegevens achter de bestaande waarde. Je hoeft niet te WETEN dat er een waarde is, dat WEET filemaker wel. Of wil je het om een andere reden WETEN? Of bedoel je dat je het veld eerst een naam moet kunnen geven voordat je het kan vullen, je moet dus eerst weten welk veld gevuld moet worden? Dat is het dan de waarde van Dagnummer? Dan wordt het iets van Veldopnaam=Dagnummer en dat veld dan vullen met de naam van de persoon? (ik heb nog geen FM10, kan dus niet testen) Quote Link naar reactie
0 andries Geplaatst: 9 april 2009 Delen Geplaatst: 9 april 2009 Veld op naam instellen is nieuw in FM10 en pas in het uitvoeren van het script weet ik welk veld het gaat worden. Afhankelijk wie wanneer jarig is. Dan zet je ipv met xml2var die gewoon script parameters in lokale variabele omzet, zet je die variabele via twee scriptstaps. Namelijk je zet $FieldName en $Value op het moment dat je dus de veldnaam wel kent en de waarde die je er zou in willen zetten. Verder blijft de berekening in de script stap Set Field By Name identiek. Enkel de plaats waar je dus die variabele zou declareren moet je aanpassen. Quote Link naar reactie
0 NvD Geplaatst: 9 april 2009 Auteur Delen Geplaatst: 9 april 2009 Andries bedankt, Je hebt mij op de goede weg gezet en heb nu de volgende werkende formule: veld op naam instellen ------------------------ doelveld opgeven: Let ( $dagveld = "Kalender::dagnr Kopie" & DayofYear (Date ( Month ( Kalender::Geboren1 ) ; Day ( Kalender::Geboren1 ) ; Kalender::jaarinstellen )) ; $dagveld ) ================================ berekend resultaat: If (GetField( $dagveld ) <>"" ; GetField( $dagveld ) & " & " ; "" ) & Kalender::Roepnaam1 & " " & Kalender::jaarinstellen - Year ( Kalender::Geboren1 ) & " jaar" groeten, Nico Quote Link naar reactie
0 fmwebshop Geplaatst: 9 april 2009 Delen Geplaatst: 9 april 2009 Ik hou niet van veel velden. Wel van relaties en records. Een andere oplossing binnen de kaders van je vraag hierbij. Simpel groeten Harry Naamloos.fp7 Quote Link naar reactie
0 andries Geplaatst: 9 april 2009 Delen Geplaatst: 9 april 2009 Blij je van dienst te zijn geweest, alhoewel ik ook niet al die velden snap mss is het toch goed eens om naar harries oplossing te kijken... Als ik het goed begrijp heb je een veld per dag... dat is wat overdreven, en werken met relaties ( en bijvoorbeeld een record per dag ) zal je nadien veel meer mogelijkheden geven... Quote Link naar reactie
0 NvD Geplaatst: 10 april 2009 Auteur Delen Geplaatst: 10 april 2009 Geweldig van iedereen om zo mee te denken. Ik zal toch nu uitleggen waarvoor ik het nodig heb en de werking. Het doel: Alle tennisleden krijgen op krijgen 1x op hun huisadres een kalender. In die kalender staan de verjaardagen alleen van die mensen die op dat huisadres wonen en tevens lid zijn van de tennisvereniging. De opzet: Ik krijg data met 2000 leden. Ik controleer hoeveel wie bij elkaar woont. De grootste was 6 personen. Uiteindelijk houd ik 1100 huisadressen over. Je begrijpt dat ik per record de hoofdbewoner heb met daarnaast max. 5 andere bewoners. Dus 6x voornaam, 6x geboortedatum en ga zo maar verder. Tevens 366 velden voor het jaar met de dagnrs. De werking: Het script wat ik nu gemaakt heb zorgt ervoor dat per record (dus het huisadres) de max. 6x geboortedatum in het juiste veld met dagnr. wordt geplaatst, resultaat; Marie 50 jaar en als er nog iemand op de zelfde dag jarig is (dit was het grootste probleem) staat er dus; Marie 50 jaar & Nico 8 jaar Resultaat: In een speciaal programma voor het personaliseren van bv. een pdf verwerk ik deze data en bij de digitale printer komen er dan 1100 gepersonaliseerde kalenders uitrollen met huisadres ingevuld op het eerste blad. Ik hoop dat het voor nu voor iedereen duidelijk is waarom er zoveel velden zijn maar ik hoef dit script maar 6x te gebruiken per record namelijk het veld geboortedatum uitlezen en klaar. Hartelijke groeten allemaal, Nico Quote Link naar reactie
0 andries Geplaatst: 12 april 2009 Delen Geplaatst: 12 april 2009 Is het dan niet logischer om twee tabellen te hebben? eentje met de adressen in, en eentje met je leden in ( inclusief geboortedatum )... en leg dan een 1-n relatie tussen beide. Moest er dan perongeluk eens een groot gezin bij komen, waar meer dan 6 mensen wonen per adres, moet je je tabellen niet aanpassen. Quote Link naar reactie
Vraag
NvD
Beste forumleden,
De functie 'veld op naam' is precies op tijd voor mij maar toch loop ik tegen een probleempje op.
Ik heb een soort verjaardagskalender met 366 velden met het dagnummer waarop de juiste dag de verjaardag geplaatst moet worden.
Doelveld opgegeven: "Kalender::dagnr Kopie" & DayofYear (Date ( Month ( Kalender::Geboren1 ) ; Day ( Kalender::Geboren1 ) ; Kalender::jaarinstellen ))
Nu wil ik in het berekend resultaat eerst controleren of er al een waarde staat in het doelveld en zoja dan doelveld & " en " & ....... onderstaand
Berekend resultaat: Kalender::Roepnaam1 & " " & Kalender::jaarinstellen - Year ( Kalender::Geboren1 ) & " jaar".
Alle vele pogingen gedaan met get field en naamfield maar wil niet lukken.
Alvast hartelijk dank
Nico van Diepen
Link naar reactie
13 antwoorden op deze vraag
Aanbevolen berichten
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.