Dick Verschuur Posted November 28, 2007 Share Posted November 28, 2007 (edited) Hallo allemaal, is het mogelijk om, met case in een script, een bepaalde lay-out te kiezen? Concreet: Ik roep met een script een volgende lay-out op (blad 2a, 2b of 2c). De keuze van a, b of c is afhankelijk van de inhoud van een veld op blad 1. inhoud veld = a > ga naar lay-out a inhoud veld = b > ga naar lay-out b inhoud veld = c > ga naar lay-out c Of vraag ik nu iets heel eenvoudigs? Dick Edited November 28, 2007 by Guest Quote Link to comment
0 Rony Rabijns Posted November 28, 2007 Share Posted November 28, 2007 Dat kan, je hebt het zelfs helemaal uitgeschreven in je vraag. Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 Welnu, dan ga ik dat eens proberen... ofdadda lukt. Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 Nou... dat is nog niet zo eenvoudig als ik het uitgeschreven blijk te hebben. Ik kom niet verder dan: Case ( Tabel::Veldnaam = "A" ; dus: als in de tabel::veldnaam een A staat dan... en dan loop ik al vast want als resultaat wil ik naar layout A en daar kan ik un de functielijst geen functie voor vinden. Of zoek ik op de verkeerde plek? Dick Quote Link to comment
0 janjaap Posted November 28, 2007 Share Posted November 28, 2007 Script step 'Go to Layout' ? JJ Quote Link to comment
0 Maarten Witberg Posted November 28, 2007 Share Posted November 28, 2007 daar kan ik un de functielijst geen functie voor vinden. zit je wel in de scriptmaker? (sorry als dit een overbodige vraag is) bij de weg. als de veldinhoud precies gelijk is aan de naam van de layout kan je de veldwaarde rechtstreeks opgeven: ga naar layout [ op berekening ; JouwTabel::JouwVeldNaam ] Quote Link to comment
0 eroos Posted November 28, 2007 Share Posted November 28, 2007 Iets soort gelijks is reeds eens aan de orde geweest. Kijk eens of het bestand in deze draad iets voor je oplevert: http://www.clarify.net/viewtopic.php?p=29843&highlight=#29843 Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 zit je wel in de scriptmaker? (sorry als dit een overbodige vraag is) Nee... Ik zit niet in scriptmaker. (want daar zie ik de functie Case niet) Ik ben in Scriptmaker begonnen daar koos ik de functie Script uitvoeren vervolgens kom ik via Script opgeven en Optionele Scriptparameter in het functiekeuzemenu dat is dus niet goed begrijp ik Hoe moet het wel? Quote Link to comment
0 Maarten Witberg Posted November 28, 2007 Share Posted November 28, 2007 o, nee.... in scriptmaker moet je het met if[..] ... end if doen.... dus het zou worden if [ JouwVeld = "a" ] ga naar layout [ bij veldwaarde a ] else if [ JouwVeld = "b" ] ga naar layout [ bij veldwaarde b ] else if [ #enzovoort ] .... else ... end if maar het kan dus simpeler mits veldinhoud en layoutnaam overeenkomen, zie post boven. Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 Iets soort gelijks is reeds eens aan de orde geweest. Kijk eens of het bestand in deze draad iets voor je oplevert: http://www.clarify.net/viewtopic.php?p=29843&highlight=#29843 Precies hetzelfde probleem: Ga naar Lay-out (door berekening) vervolgens kom je in het fuctiekeuzemenu... en dan? Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 o, nee.... in scriptmaker moet je het met if[..] ... end if doen.... Het zit er dus in dat ik het inderdaad met If... moet doen en dat terwijl het me via Tip 21 van AvD zo simpel leek Quote Link to comment
0 Maarten Witberg Posted November 28, 2007 Share Posted November 28, 2007 ah zo. sorry... soms ben ik niet zo snel. het knaagde al bij me dat Rony zei dat het kon met case. ga naar layout [ #op berekening# Case ( JouwVeldNaam = "a" ; "layoutA" ; JouwVeldNaam = "b" ; "LayoutB" ; JouwVeldNaam = "c" ; "LayoutC" ) ] Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 Dat werkt inderdaad! geweldig bedankt Kjoe! eeuwige roem is je deel! Tot ziens Dick Quote Link to comment
0 JeanWM Posted November 28, 2007 Share Posted November 28, 2007 Nogal nodeloos moeilijk maken. Rony gaf je al de te volgen eenvoudige weg. Go to Layout (Get(ScriptParameter) Zet je Case() binnen de parameter. Je kunt zelfs van je 'inhoud veld' veld een knop maken waarbij je de keuze hebt om de data in het veld zo te laten of te veranderen en het script brengt je wel naar de juiste layout. Quote Link to comment
0 Maarten Witberg Posted November 28, 2007 Share Posted November 28, 2007 hoezo ingewikkelder? als ik de case() als script parameter doorgeef moet ik ook een berekening opgeven. dan zit ik dus op twee plekken wat in te vullen. bedoel je wat anders? Quote Link to comment
0 Dick Verschuur Posted November 28, 2007 Author Share Posted November 28, 2007 Het werkt en ik ben er blij mee Dick Quote Link to comment
0 JeanWM Posted November 28, 2007 Share Posted November 28, 2007 De Case() binnen de script parameter zetten is alles. Er is geen sprake om op twee plaatsen iets te berekenen of in te vullen. Bijkomend voordeel is dat je het basisscript voor andere navigaties kunt blijven gebruiken. De parameter veranderen is dan voldoende. Quote Link to comment
0 Maarten Witberg Posted November 29, 2007 Share Posted November 29, 2007 Er is geen sprake om op twee plaatsen iets te berekenen of in te vullen. je moet toch ook "get (scriptparameter)" invullen? maar dat streept dan weer weg tegen het potentieel hergebruiken van het script. dat is waar. Quote Link to comment
0 JeanWM Posted November 29, 2007 Share Posted November 29, 2007 je moet toch ook "get (scriptparameter)" invullen? Neen, FileMaker vult dat wel in vanuit de knopverbinding. Het is daar dat je de Case() plaatst. Je script heeft enkel Go to Layout (Get(ScriptParameter), dat is alles. Bij iedere knopverbinding van dit script vul je in als optional parameter wat je nodig hebt. Je hebt dus één enkelregelige script die je doorheen de hele toepassing kunt gebruiken. Quote Link to comment
0 Dick Verschuur Posted November 29, 2007 Author Share Posted November 29, 2007 @ JeanWM: Ik heb er vandaag nog eens een uurtje naar gekeken, maar ik zie nog niet hoe dat met een enkele knopverwijzing op te lossen is. In de bladermodus wil ik (op pagina 2) met een buttonklik naar: - het volgende (reeds bestaande) record Plus dat bij dat record ook nog de juiste lay-out gekozen moet worden. zoals dat nu gaat (via een script) werkt het Wanneer ik dat rechtstreeks (via een knopopdracht) wil oplossen dan kan ik òf naar het volgende record óf naar een volgende layout (o.b.v. berekening) - Ga naar record/verzoek/pagina [Volgende] - Ga naar layout Case ( bestand::veld = "A" ; "Pagina 2a" ; bestand::veld = "B" ; "Pagina 2b" ; bestand::veld = "C" ; "Pagina 2c" ) of zie ik iets over het hoofd misschien? Dick bestand.fp7 Quote Link to comment
0 JeanWM Posted November 29, 2007 Share Posted November 29, 2007 Zal 'ga naar volgend record' altijd de 'ga naar layout' voorafgaan ? Dick, vraag van de aangewezen vrijwilligster: kun je wat meer uitleg geven over de bedoeling van je navigatie ? Nu blader je gewoon door een bestaande found set. Daar waar je initiele vraag enkel navigatie naar een layout was.... Quote Link to comment
0 Dick Verschuur Posted November 29, 2007 Author Share Posted November 29, 2007 Hallo Jean De bedoeling van de navigatie is als volgt: Er is een inventarisatiemodule die bestaat uit 2 pagina's Na het invullen van de persoonsgegevens op pagina 1 en een enkele keuze (a, b of c) klikt de inventarisator op een button om naar pagina 2 te gaan. Die pagina; pagina 2, heeft 3 verschillende lay-outs (omdat de informatie wezenlijk verschillend is). Dus: pagina 2a, pagina 2b, pagina 2c Die worden verder ingevuld. Klaar. Het bladeren door de gegevens (in een later stadium) gaat niet via de rolodex maar via twee buttons (vorige, volgende). Daarbij is het de bedoeling dat bij de verschillende records de juiste lay-out gekozen wordt. Dus: in record 1 staat een A, daarbij hoort lay-out 2A in record 2 staat ook een A, daarbij hoort lay-out 2A in record 3 staat een B, daarbij hoort lay-out 2B in record 4 staat weer een A, daarbij hoort lay-out 2A in record 5 staat een C, daarbij hoort lay-out 2C enzovoorts. Op deze manier werkt het prima. Maar wanneer het slimmer kan is het mij ook goed. Persoonlijk ben ik al helemaal tevreden met de oplossing die Kjoe gegeven heeft. Ik heb overigens nog wel een paar andere vragen hoor... Dick Quote Link to comment
0 Stamper Posted November 29, 2007 Share Posted November 29, 2007 ""Maar wanneer het slimmer kan is het mij ook goed. Persoonlijk ben ik al helemaal tevreden met de oplossing die Kjoe gegeven heeft."" @ Dick Nou niet terug krabbelen hé - ben veel te benieuwd naar de gestelde oplossing. Heb zelf ook al gezocht doch de oplossing niet gevonden die Jeanwm suggereerd. Quote Link to comment
0 Maarten Witberg Posted November 29, 2007 Share Posted November 29, 2007 Die pagina; pagina 2, heeft 3 verschillende lay-outs (omdat de informatie wezenlijk verschillend is) als de informatie wezenlijk verschillend is, bijvoorbeeld contact info en catalogus info, ik noem maar een dwarsstraat, dan is het beter om verschillende tabellen te hebben. Dan gaat je navigatie vraag niet zozeer over hoe je van record naar record stapt en een andere layout erbij selecteert, maar over hoe je van record naar al dan niet gerelateerde record in een andere tabel stapt - en daarbij vanzelf een andere (te selecteren) layout te zien krijgt. maar dan hebben we het eerst over je database structuur en nog niet zozeer over de betrekkelijke details van de go to layout [ ] script stap hoe boeiend ook PS de vraag is dus, wat staat er op 2a, 2b en 2c en hoe verhoudt zich dat tot 1. Quote Link to comment
0 Dick Verschuur Posted November 29, 2007 Author Share Posted November 29, 2007 (edited) Jongens toch... we gaan er hier veel te diep op in Het is precies zo simpel als in mijn voorbeeldbestandje. Je staat op pagina 1 gaat naar 2 en daar blader je door 2 heen en weer de layout van die pagina wijzigt iets (maar niet zo veel) Ik beloof dat ik vanavond een nieuwe vraag post en wanneer jullie daar net zo hartstochtelijk naar de juiste oplossing zoeken (en die vinden) dan trakteer ik op bier op de volgende confituursessie! dick Edited November 29, 2007 by Guest Quote Link to comment
0 JeanWM Posted November 29, 2007 Share Posted November 29, 2007 't Is maar dat we willen helpen Dick. Je vraag ging eerst over naar een layout gaan. Maarten gaf je een werkend antwoord daarop. Mijn kids zagen het iets anders als oplossing, dus dat werd ook even doorgegeven. Nu we je bestand gezien hebben en de bijkomende navigatie, schijnt er iet mank te zijn met de structuur ervan. Het hangt er inderdaad vanaf welke informatie er op de pagina's terecht komt. Je hebt wel een navigatie, maar, om maar iets te zeggen, hoe vind je de informatie gemakkelijk terug ? Als je eerst zelf naar een bepaalde layout moet gaan en dan daar naar een bepaald record, is heel de zoekfunctie bijna overbodig.... Op het eerste zicht heb je verschillende entiteiten in 1 table gezet. Elke keer ik iets zie als XX1, XX2, XX3, of het nu om layouts or veldbenamingen gaat, weet ik dat er een designflaw is. Maar los daarvan, blijf je vragen stellen. @Stamper. Ons voorstel ging enkel over de navigatie van 1 layout naar verschillende, afhankelijk van 1 variabele in 1 veld. Als je daar nu nog recordnavigatie gaat bijnemen, lukt het niet meer omdat je met 2 variabelen zit. Het is dan OF je zit in 1 set van layouts en daar ga je door records bladeren, OF je zit in 1 set van records en daar ga je door layouts bladeren. Het kan wel, maar dan ga je een kanonsbal gebruiken om een structuurvlieg klein te krijgen. Vandaar dat wij zeggen: Dar síntomas erróneos, resulta en soluciónes erróneas. Quote Link to comment
Question
Dick Verschuur
Hallo allemaal,
is het mogelijk om, met case in een script, een bepaalde lay-out te kiezen?
Concreet:
Ik roep met een script een volgende lay-out op (blad 2a, 2b of 2c). De keuze van a, b of c is afhankelijk van de inhoud van een veld op blad 1.
inhoud veld = a > ga naar lay-out a
inhoud veld = b > ga naar lay-out b
inhoud veld = c > ga naar lay-out c
Of vraag ik nu iets heel eenvoudigs?
Dick
Edited by GuestLink to comment
29 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.