Dick Verschuur Posted December 3, 2007 Posted December 3, 2007 (edited) Allerbeste allemaal ik ben er bijna uit (uit m'n simpele planningprobleem) Om het niet al te ingewikkeld te maken stel ik m'n vraag in een nieuw topic Exit Loop If hoe werkt dat? In een gevonden reeks wil ik een kopieer/plak routine uitvoeren (ga naar volgend record, kopieer inhoud veld, ga naar vorig record, plak veld... ga naar volgend record) en zo verder Aan het eind van de records moet de loop stoppen en het script verder gaan. Maar... hoe gaat dat? Is er iemand met een klein voorbeeldje? Dick (die hier echt drie dagen aan heeft zitten knutselen) Edited December 5, 2007 by Guest Quote
0 AvD Posted December 3, 2007 Posted December 3, 2007 Een gevonden reeks is een found set, dus een beperkte reeks. De loop stop je dus met GotoNext + optie Exit after last. Je leven zou drie dagen aangenamer geweest zijn met één klik (plus een blik) op de online help onder bijvoorbeeld het trefwoord loop. Quote
0 Dick Verschuur Posted December 3, 2007 Author Posted December 3, 2007 Bedankt AvD En met die drie dagen bedoel ik overigens het 'simpele planningprobleem' in een ander topic d Quote
0 JeanWM Posted December 4, 2007 Posted December 4, 2007 In een gevonden reeks wil ik een kopieer/plak routine uitvoeren(ga naar volgend record, kopieer inhoud veld, ga naar vorig record, plak veld... ga naar volgend record) en zo verder (die hier echt drie dagen aan heeft zitten knutselen) Je gaat nooit aan het einde van je reeks geraken: Je vertrekt bv op record 5 uit een set van 12 record. ga naar volgend record: is record 6, kopieer inhoud veld: van record 6, ga naar vorig record: is record 5, plak veld... : is in record 5, ga naar volgend record:is record 6, en zo verder: wat verder ? Je blijft tot in het oneindige kopieren en plakken tussen record 6 en 5.... De tweede go to record zou een dubbele sprong moeten zijn, waarbij je terugkeert naar het vorige. Maar wat doe je dan met het laatste record ? De Go to Next exit after last, stopt daar (indien jer ooit geraakt) en je zit met twee identieke records (of zoiets). Maar als concept (cycle en copy/paste) zou ik het volledig afraden. Wat dan wel ? Bekijk de normalisatieregels eerst en daarna de Command Query Separation regels. Quote
0 Dick Verschuur Posted December 4, 2007 Author Posted December 4, 2007 Je gaat nooit aan het einde van je reeks geraken: Je vertrekt bv op record 5 ga naar volgend record: is record 6, kopieer inhoud veld: van record 6, ga naar vorig record: is record 5, plak veld... : is in record 5, ga naar volgend record:is record 6, en zo verder: wat verder ? Je blijft tot in het oneindige kopieren en plakken tussen record 6 en 5.... Je ziet wat over het hoofd, Jean. Mijn loop begint als volgt: ik vertrek bv op record 5 ga naar volgend record: is record 6, kopieer inhoud veld: van record 6, ga naar vorig record: is record 5, plak veld... : in record 5, ga naar volgend record:is record 6 en zo verder Ik sta dus, bij het begin van de volgende loop, inderdaad op 6 (en niet op 5). Daar begint de loop weer: ga naar volgend record: is record 7, kopieer inhoud veld: van record 7, ga naar vorig record: is record 6, plak veld... : in record 6, ga naar volgend record:is record 7 en zo verder Of zie ik dat verkeerd? Dick Quote
0 JeanWM Posted December 4, 2007 Posted December 4, 2007 Ik sta dus, bij het begin van de volgende loop, Welke volgende loop ? Je zit nog altijd binnen dezelfde loop vermits er geen exit loop geweest is. Maar probeer het. Bij het bereiken van het laatste record zal je loop blijven lopen op die plaats. Ik vermoed zelfs dat de loop niet zal eindigen en zal blijven cyclen tussen het laatste en het voorlaatste record tot je een exit forceert. Bekijk de normalisatieregels en de CQS regels voor de opzet van zoiets. Quote
0 Dick Verschuur Posted December 4, 2007 Author Posted December 4, 2007 Allerbeste Jean, Stel: ik heb een gevonden reeks van 11 records Nu wil ik van die records gegevens naar elkaar kopiëren (wat ik kan doen met iets als: 'ga naar volgend record' 'knip' 'ga naar vorig record' 'plak' 'ga naar volgend record') Welke functie gebruik ik dan om de loop 11 keer te laten lopen voordat de loop eindigt? Of... hoe doe ik dat? Dick Quote
0 JeanWM Posted December 4, 2007 Posted December 4, 2007 Met een set van 11 records ga je nooit 11 loopings gaan doen. Welke functie gebruik ik dan om de loop 11 keer te laten lopen De allmighty counter. (is geen functie) Deze kun je lokaal globaal maken (eerst zorgen dat die leeg is vóór je het script laat lopen) of als $variabele gebruiken in je script, waar n = aantal records waar doorheen moet gecycled moet worden. De counter of Var = (n-1) kun je laten mee aflopen met de loop. Set field (of $variable) counter = (n-1)-1 Exit loop if Var of counter = 0 Of je laat de counter mee oplopen. Set field (of $variable) counter +1 Exit loop if Var of counter = (n-1) Je moet wel op voorhand ergens vastleggen wat er met de gegevens van het laatste record moet gebeuren. Quote
0 Dick Verschuur Posted December 4, 2007 Author Posted December 4, 2007 Dankjewel Jean ik ga dit proberen te verwerken in m'n plan. Het is niet echt Filemaker-achtig maar wanneer mijn probleem op deze manier op te lossen is vind ik het allang best Dick Quote
0 Dick Verschuur Posted December 5, 2007 Author Posted December 5, 2007 Het was veel simpeler dan ik dacht: exit loop if het laatste record bereikt is Zulke dingen leer je nog wanneer je helemaal niets weet! Ik ben blij dick Quote
0 AvD Posted December 5, 2007 Posted December 5, 2007 Nou breekt m'n klomp! Dat is toch precies wat ik je meteen na je vraag geantwoord heb! Quote
0 Yves Posted December 5, 2007 Posted December 5, 2007 "Precies" zou ik het niet noemen : je gebruikte een ander dialect! Het was bekanst tselfste moe tog ni ieleganst... Quote
0 Dick Verschuur Posted December 5, 2007 Author Posted December 5, 2007 Nou breekt m'n klomp!Dat is toch precies wat ik je meteen na je vraag geantwoord heb! Allerbeste AvD Ik begrijp wat u bedoelt Maar kunt u misschien begrijpen dat ik dat een paar dagen geleden nog niet begreep? Kunt u zich inleven in het niveau van mensen die zojuist in Filemaker instappen, een stapel boeken kopen (30cm), nog niet weten waar ze precies moeten beginnen, hoe ze precies een vraag moeten omschrijven wanneer ze die willen stellen? U zou blij moeten zijn dat ik, met hulp van uw antwoord (want ja, zo is het), mijn probleem heb opgelost en dat ik er fier op ben. Ik heb bewondering voor uw kennis van zaken, maar had toch wel op een andere toon in uw antwoord verwacht. @Yves: Het heeft niet zoveel met het dialect te maken hoor: het ligt meer aan mijn niveau. Veel van de antwoorden in dit forum gaan uit van een bepaald niveau. En wanneer je dat niveau (nog) niet hebt dan is ook het antwoord soms niet te begrijpen. Tip: Probeer eens een aantal jaren terug te denken... aan de dagen waarin u uw eerste database maakte. En het zou ook prettige zijn wanneer er niet zo lacherig gedaan zou worden wanneer vragenstellers iets niet meteen snappen. Alleen maar om te voorkomen dat die het idee krijgen het domste jongetje van de klas te zijn. Dick Quote
0 Yves Posted December 5, 2007 Posted December 5, 2007 Geen paniek! Ik heb inderdaad herinneringen aan vervlogen tijden. De dialect-opmerking is trouwens voor AvD bestemd. (Ik vermoed dat dialecten een hobby van hem zijn. Snuffel hier maar eens rond op dit forum) Quote
0 AvD Posted December 5, 2007 Posted December 5, 2007 Maar kunt u misschien begrijpen dat ik dat een paar dagen geleden nog niet begreep? Ja, dat kan ik begrijpen. Wat ik niet begrijp, is dat je dan geen uitleg vraagt. Quote
0 Dick Verschuur Posted December 5, 2007 Author Posted December 5, 2007 Wat ik niet begrijp, is dat je dan geen uitleg vraagt. Ik heb u bedankt voor uw tip en ben er vervolgens mee aan de gang gegaan. Een dag later heb ik, op basis van uw tip, de oplossing in elkaar geknutseld Eén dag later dus. Daar maak ik melding van, dat het opgelost is, en ook dat ik er blij mee ben... Het is uw reactie daarop die mij vreemd overkomt. Dat geeft te denken: Zou ik nog wel eens wat vragen? Dick Quote
0 AvD Posted December 5, 2007 Posted December 5, 2007 Laten we het maar houden op een misverstand en... "Vragen staat vrij". Toch nuttig van altijd eerst eens in de online help te kijken: LoopDescription Repeats a set of script steps. The Loop script step and End Loop script step mark the beginning and end of a repeating structure of script steps. ScriptMaker™ performs the script steps that are enclosed within the loop structure until it encounters one of the following: - an Exit Loop If script step - a Go to Record/Request/Page script step or Go to Portal Row script step when the Exit Loop After First/Last option is selected Dan hadden we Jean ook niet laten ingrijpen waardoor voor jou de verwarring nog groter werd en je helemaal op een ander spoor werd gezet, namelijk dat van de database design-fase. Ik vermoed trouwens dat daarover ook al een misverstand is geweest toen Jean je schreef "Je design laat het niet toe". Het ging daar wel degelijkl om database design, niet over je lay-outs. Ik blijf dus bij mijn oude ervaring die samenvat hoe je een computeropleiding in één zin kunt samenvatten: "Klik, lees en blijf rustig". Succes met je verdere exploraties. Quote
Question
Dick Verschuur
Allerbeste allemaal
ik ben er bijna uit
(uit m'n simpele planningprobleem)
Om het niet al te ingewikkeld te maken stel ik m'n vraag in een nieuw topic
Exit Loop If
hoe werkt dat?
In een gevonden reeks wil ik een kopieer/plak routine uitvoeren
(ga naar volgend record, kopieer inhoud veld, ga naar vorig record, plak veld...
ga naar volgend record)
en zo verder
Aan het eind van de records moet de loop stoppen en het script verder gaan.
Maar... hoe gaat dat?
Is er iemand met een klein voorbeeldje?
Dick
(die hier echt drie dagen aan heeft zitten knutselen)
Edited by Guest16 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.