solvax Posted June 21, 2011 Posted June 21, 2011 Mijn situatie is als volgt: ik ben momenteel een offerteprogramma aan het maken waarbij je dus verschillende layouts hebt. Als het gaat om een offerte met werkbeschrijving 'hamer' dan moet hij bij het klikken op een knop gaan naar offerte x. Zoiets zou ik willen bereiken dmv van een berekening, alleen weet ik niet hoe ik dit zou moeten aanpakken. Alle hulp is welkom! Mvg Christoph Quote
0 Rony Rabijns Posted June 21, 2011 Posted June 21, 2011 Ik denk dat je het te complex ziet, tabbladen zijn wellicht eenvoudiger te beheren en te ontwikkelen. Maar goed, de berekening die je vroeg kan je doen door een scriptparameter te hangen aan een knop. Deze scriptparameter is de naam van de layout waar je naar toe wil. Het script bevat een scriptregel "ga naar layout" met als berekende layout de scriptparameter. Maar nogmaals, ik zou het anders doen. Quote
0 solvax Posted June 21, 2011 Author Posted June 21, 2011 Ik stel de vraag omdat alle offertes zijn opgelijst. Als ik klik op één offerte wil ik onmiddellijk de desbetreffende offerte zien en geen lege layout die gerelateerd is aan een ander type offerte. Welke scriptparameters geef ik hiervoor best op? Kan iemand me een voorbeeldje geven? Alvast bedankt voor je hulp! Quote
0 JeanWM Posted June 21, 2011 Posted June 21, 2011 Het script bevat een scriptregel "ga naar layout" met als berekende layout de scriptparameter. Wat gaat er gebeuren indien de naam van de layout verandert wordt. "Offerte" wordt "Offertes" ? Maar nogmaals, ik zou het anders doen. Ik ook Quote
0 solvax Posted June 22, 2011 Author Posted June 22, 2011 De bedoeling is met zo weinig mogelijk clicks de gezochte informatie te vinden, dit is efficiëntie. Waarom zou ik het dan anders doen? Volgens mij is mijn vraag nogal logisch: als ik een lijst heb van offertes met verschillende layouts/velden en ik klik op een offerte wil ik dan ook de offerte openen met de bijhorende layout en velden afhankelijk van de werkbeschrijving. Is het dan zo moeilijk om zoiets te fabriceren? Alvast bedankt. Quote
0 Rony Rabijns Posted June 22, 2011 Posted June 22, 2011 Begrijp me niet verkeerd: Het is niet heel moeilijk om zoiets te maken en het kan zoals jij het wil doen, maar één van de "problemen" waar je mee gaat geconfronteerd worden, is wanneer de layoutnaam zou wijzigen. Dan ben je genoodzaakt om alle scripts en knoppen na te lopen om te kijken waar je eventueel de "oude layoutnaam" gebruikt hebt. (cfr JeanWM) Ik heb applicaties draaien met een tiental mogelijke werkomschrijvingen waarvan de data allemaal op dezelfde layout getoond wordt. Ik maak hiervoor gebruik van tabbladen, een paar herhalende velden voor de headers in de tabbladen, en verder wat parameters in gerelateerde tabellen om één en ander te tonen. Quote
0 solvax Posted June 22, 2011 Author Posted June 22, 2011 Dat begrijp ik. Ik ben echter niet van plan om de layouts te hernoemen. Kan je mij verderhelpen met de achterliggende berekening? Mvg Christoph Quote
0 Rony Rabijns Posted June 22, 2011 Posted June 22, 2011 In bijlage een snelle opzet (een variant op hetgeen ik hierboven voorstelde) wat doe ik hier: - maak een lijst van alle layoutnamen dmv een Design-functie - maak van dat veld een waardelijst - gebruik die waardelijst in een veld om keuzes te geven (dit zou jouw werkomschrijving kunnen zijn) - maak een knop met de functie GoToLayout() en als berekende waarde de veldinhoud van hierboven. Maar nogmaals ... dit is evenzeer tricky. Het volstaat om een layoutnaam te wijzigen en de boel werkt niet meer. De reden is onder andere dat het berekeningsveld geindexeerd moet zijn owv de waardelijst. GoToLayout.fp7 Quote
0 Jeroen de Wit Posted June 22, 2011 Posted June 22, 2011 Kan dit toevallig niet worden gerealiseerd met een Go To Related Record script step? Ik kan mij zoiets herinneren, en dan eventueel de lay-out naam via de script parameter meegeven inderdaad. Dan krijg je ongeveer het volgende: Bij je button selecteer je het script waar de Go To Related Record script stap in staat. In dit script zet je bij de GTRR stap de gebruikte lay-out op calculation, de definitie van de calculation is Get ( ScriptParameter ). Per knop die je aanmaakt geef je een andere script parameter mee in je Button Setup die de naam van de desbetreffende lay-out representeert. Wanneer je op de button klikt zal hij dan de offerte die is geselecteerd tonen volgens de lay-out die gedefinieerd staat als script parameter. Quote
0 Rony Rabijns Posted June 22, 2011 Posted June 22, 2011 Kan dit toevallig niet worden gerealiseerd met een Go To Related Record script step Dat kan ook, maar dan moet je wel voor iedere "werkomschrijving" een relatie/occurence maken. Alles hangt er vanaf hoe "dynamisch" die werkomschrijvingen zijn. Als er vaak nieuwe aangemaakt worden ... Ik zou hoe dan ook opteren voor een stabielere oplossing die "data-onafhankelijk" werkt. Quote
0 andries Posted June 22, 2011 Posted June 22, 2011 om het hardcoderen van layoutnamen te vermijden heb je deze custom function: http://fmcustomfunctions.com/functions_display_record.php?functionId=82 Quote
0 JeanWM Posted June 22, 2011 Posted June 22, 2011 Gebruik de layoutID, aangemaakt door FileMaker, voor iedere navigatie. Deze is uniek en is steeds verbonden met een object. Je kunt dus zoveel naamsveranderingen doen als je wil, het ID zal altijd hetzelfde blijven. Verwijs bij navigatie naar het ID en documenteer wat dit ID voorstelt. GetLayoutName ( Get ( FileName ) & "."; 3) // Layout_1 Je kunt inderdaad de CF van Fabrice gebruiken, maar die is vrij complex in opzet. Wij hebben voor ieder object (table, script, layout, field, TO etc) een afzonderlijke. Dat houdt het overzicht eenvoudiger. Quote
0 Rony Rabijns Posted June 22, 2011 Posted June 22, 2011 ... en documenteer wat dit ID voorstelt. Quote
0 JeanWM Posted June 22, 2011 Posted June 22, 2011 Dat wordt veel te weinig gedaan. Probeer maar eens in een enkele maanden oude applicatie je te herinneren waarom je een bepaald iets op de gedane manier deed. We zitten in de eindexamen periode en 1 van mijn vragen bij de beoordeling van een toepassing is altijd: "Leg mij eens uit waarom je dit op die manier deed". Guess what. Je krijgt het deer eyes in headlight effect...... Quote
0 Jeroen de Wit Posted June 22, 2011 Posted June 22, 2011 Hmm als ik het goed begrijp is je databaseontwerp dus iets in de trant van Offerte 1.N Werkbeschrijving N.1 Type werkbeschrijving. Waar zitten de verschillen in tussen de verschillende werkbeschrijvingen? Moet ik hier denken aan bijvoorbeeld logo's of echt een compleet andere indeling van de offerte lay-out per werkbeschrijving? Want in het eerste geval zou je aan de hand van het TypeID (die het soort werkbeschrijving per offerte definieert, inclusief unieke elementen per werkbeschrijving) onderdelen van een lay-out dynamisch kunnen laten generen. Het dynamisch genereren van de lay-out zelf is naar mijn idee niet mogelijk binnen FileMaker.... (zou wel erg handig kunnen zijn voor dit soort gevallen). Quote
0 andries Posted June 22, 2011 Posted June 22, 2011 Het dynamisch genereren van de lay-out zelf is naar mijn idee niet mogelijk binnen FileMaker.... (zou wel erg handig kunnen zijn voor dit soort gevallen). I couldn't agree more Quote
0 JeanWM Posted June 23, 2011 Posted June 23, 2011 Het dynamisch genereren van de lay-out zelf is naar mijn idee niet mogelijk binnen FileMaker.... (zou wel erg handig kunnen zijn voor dit soort gevallen). Met dynamic layout objects raak je toch al een heel eind ver..... Als basis neem je een Custom Function met multiple named parameters. En alles blijft native in FileMaker.... Quote
0 Jeroen de Wit Posted June 23, 2011 Posted June 23, 2011 Het dynamisch genereren van de lay-out zelf is naar mijn idee niet mogelijk binnen FileMaker.... (zou wel erg handig kunnen zijn voor dit soort gevallen). Met dynamic layout objects raak je toch al een heel eind ver..... Als basis neem je een Custom Function met multiple named parameters. En alles blijft native in FileMaker.... En dat is ook gelijk het nadeel, dat je er zelf maar voor moet zorgen dat je objecten dynamisch worden door een Custom Function te schrijven die iets probeert na te bootsen wat FileMaker vanuit zichzelf niet kan. Naar mijn mening schiet FileMaker anno 2011 echt tekort op het gebied van lay-out opmaak mogelijkheden. Je hebt de beschikking over een jaren 80' Paint palette met alleen effen kleuren, het is wel mogelijk om gradients toe te passen alleen dan mag je gelijk 80 euro neertellen voor een add-on, terwijl die functionaliteit naar mijn mening er standaard in zou moeten zitten. En ik zou zo nog wel een tijdje door kunnen gaan maar dat wordt erg off-topic.... Heeft de TS reeds een oplossing gevonden voor zijn probleem? Quote
0 JeanWM Posted June 24, 2011 Posted June 24, 2011 ... het is wel mogelijk om gradients toe te passen alleen dan mag je gelijk 80 euro neertellen voor een add-on.... Gradients is gebaseerd op berekeningen, dus native in FileMaker. We hebben geen add-on of plug-in nodig. Quote
0 solvax Posted June 24, 2011 Author Posted June 24, 2011 Het gaat dus om compleet verschillende layouts.. Ik heb Rony zijn voorbeeld gevolgd en voor mij volstaat dit. Bedankt allemaal voor jullie hulp! Quote
0 andries Posted June 24, 2011 Posted June 24, 2011 @JeanWM Ik ben onder de indruk! Zou je eens wat voorbeeldjes van dit soort elementen posten? Ik (en ik denk vele anderen) zou hier veel aan hebben. Kwestie om eens op een andere manier naar een layout/interface te gaan kijken. alvast bedankt! Quote
0 JeanWM Posted June 25, 2011 Posted June 25, 2011 @JeanWM Ik ben onder de indruk! Zou je eens wat voorbeeldjes van dit soort elementen posten? Ik (en ik denk vele anderen) zou hier veel aan hebben. Kwestie om eens op een andere manier naar een layout/interface te gaan kijken. alvast bedankt! Ik zou dat inderdaad kunnen doen....maar... Ik ben in de eerste plaats lecturer. Ik leg dus een verbinding tussen onderzoek en praktijk. Ik initieer en coördineer praktijkgericht onderzoek naar mogelijke vragen/oplossingen. Enkel op database gebied, met FileMaker/Sentences als core engine. Mijn taak is om de nieuwsgierigheid te wekken bij studenten, daarbij toon ik hen dat wat ik opper daadwerkelijk kan bereikt worden door ze een eind stadium van iets te tonen. Zoals dynamic gradients of een scrollbare checklist/buttonlist in FileMaker. Uiteraard moet ik zelf eerst de oplossing hebben. Daar kruipt heel wat tijd/onderzoek/trial-error in. Hoe ze het kunnen bereiken...een wijs man heeft ooit eens op dit forum iets gezegd in de trant van "Het is niet omdat ik kok ben in een restaurant dat ik gratis maaltijden moet geven aan iedere hongerige voorbijganger..." Als mij een vraag gesteld wordt zal ik niet gemakkelijk een pasklaar antwoord geven. Veeleer de richting aanduiden waarin moet gezocht worden, zodat het antwoord/oplossing zelf kan gevonden worden. Je vraag verbaasd we wel een beetje voor een FileMaker 9-10-11 Certified Developer.... Ik dacht dat dat alle gedetailleerde in en outs van FileMaker inhield.... Quote
0 andries Posted June 27, 2011 Posted June 27, 2011 (edited) Mijn taak is om de nieuwsgierigheid te wekken bij studenten, daarbij toon ik hen dat wat ik opper daadwerkelijk kan bereikt worden door ze een eind stadium van iets te tonen. Zoals dynamic gradients of een scrollbare checklist/buttonlist in FileMaker. Dat is nu net wat ik vroeg Enkele voorbeeldjes van wat jij als "dynamic layout object" aanschouwt. Die gradient was een mooi voorbeeld, ik zal er zelf wel uitgeraken hoe dit in een custom function kan geraken. Wat die "certified" betreft, wil vooral zeggen dat je de ingredienten die FileMaker aanbiedt goed kan gebruiken, en biedt geen garantie dat je al de creativiteit hebt om hier leuke dingen mee te doen. Ik ben altijd blij om naar een conferentie te gaan en te kijken hoe andere ontwikkelaars bepaalde zaken aanpakken (hoe structureren zij code, hoe filteren ze lijsten, ... ) En dit was gewoon zo een geval van interesse, omdat de kans klein is jou ooit op een conferentie tegen te komen (of toch een dicht bij de deur) Edited June 27, 2011 by Guest Quote
0 Ari Posted June 27, 2011 Posted June 27, 2011 (edited) om het hardcoderen van layoutnamen te vermijden heb je deze custom function: http://fmcustomfunctions.com/functions_display_record.php?functionId=82 Je kunt met een eenvoudig script records laten genereren van alle beschikbare layouts in je applicatie. Gebruik het ID dat FM aan de layouts geeft, dit veranderd nooit meer. Op het moment dat je een layout toevoegt of een layoutnaam wijzigt run je het script opnieuw en klaar is klara. Je verwijst niet meer naar een layoutnaam maar via het veld met de layoutnaam uit het record. Om het helemaal mooi te maken doe je hetzelfde met alle beschikbare tabellen en maak je ook nog records aan met klant- of gebruikersgroepen. Met een tussentabel tussen gebruikersgroepen en tabellen waarop het veld ID_Layout wordt gezet verwijs je elke klant- of gebruikersgroep naar hun eigen layouts. In het script hoef je alleen maar het tabelnummer aan te geven om bij de juiste layout te komen Edited June 27, 2011 by Guest Quote
0 andries Posted June 27, 2011 Posted June 27, 2011 (edited) oeps... op "citeer" geduwd:) Edited June 27, 2011 by Guest Quote
Question
solvax
Mijn situatie is als volgt:
ik ben momenteel een offerteprogramma aan het maken waarbij je dus verschillende layouts hebt.
Als het gaat om een offerte met werkbeschrijving 'hamer' dan moet hij bij het klikken op een knop gaan naar offerte x.
Zoiets zou ik willen bereiken dmv van een berekening, alleen weet ik niet hoe ik dit zou moeten aanpakken.
Alle hulp is welkom!
Mvg
Christoph
28 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.