Knopcomponenten in RagTime1 Overzicht"Knoppen" is in RagTime het verzamelbegrip voor een componenttype die bedieningselementen inhoudt. Het kunnen echte knoppen zijn, die bij het aanklikken een actie in werking stellen, of ook radioknoppen, pop-upmenu's en aankruisvakken. Wordt een van deze laatste drie varianten gebruikt, dan kunnen formules in het document de toestand van de knop opvragen en het document dienovereenkomstig wijzigen. Knoppen spelen in het bijzonder een rol bij het ontwerpen van formulieren, wanneer bij later gebruik standaardacties met één muisklik in werking gezet moeten worden. We zullen hier enkele toepassingsmogelijkheden beschrijven. Het zwaartepunt ligt bij de vraag wat er met knoppen in samenwerking met spreadsheets gedaan kan worden.
2 Actieknoppen met commando'sAls u in een RagTime-document een rechthoek met een knop creëert, ziet u eerst een "actieknop", een drukknop, die iets kan doen wanneer u erop klikt. In het gebied tussen de knop zelf en de rechthoek kunt u de component selecteren en de Info openen. (Wanneer er hier geen ruimte om te selecteren meer is, kunt u de knop ook met crtl-alt (PC) of Cmd-option (Mac) selecteren.) In het Info-dialoogvenster kunt u in het onderste deel kiezen of de knop een commando moet uitvoeren of dat hij een formule moet berekenen. Commando's toekennen is heel eenvoudig: sluit eerst weer de knop-Info. Open het dialoog "Extra's -> Commando's". Klap daar de lijst met ingebouwde commando's open en daar bijv. de "Venstercommando's". Met de muis kunt u nu een commando - bijv. Verberg gereedschapsbalk" - op de knop slepen. Daarmee heeft u aan de knop het commando toegekend. In het Info-dialoog van de knop is het commando als naam ingevoerd. (Mac-gebruikers kunnen op deze manier ook een AppleScript toekennen.)
3 Actieknoppen met formulesEr valt iets meer te vertellen over knoppen met formules. In spreadsheets worden formules vooral gebruikt, omdat ze een waarde leveren. Grappig genoeg kunt u met de waarde die een formule in een actieknop levert, niets beginnen. In knoppen hebben alleen formules, die een "neveneffect" hebben, zin; dus formules die nog iets anderes doen als alleen een waarde leveren. Van de standaardfuncties die in RagTime voorhanden zijn, is dit ZetCel. De functie schrijft iets in een willekeurige spreadsheetcel. Voor een voorbeeld nemen we aan dat er in een nieuw document een spreadsheet aangemaakt is. Die heeft dan de naam "Spreadsheet 1". De volgende functie in een knop plaatst een tijdstempel in de spreadsheet, telkens wanneer er op de knop geklikt wordt: ZetCel(Nu;Spreadsheet 1!A1) Als u op de knop klikt, wordt de functie "Nu" berekend (die geeft de actuele tijd) en het resultaat wordt in cel A1 van Spreadsheet 1 geplaatst. Zulke "stempel"-functies in de knop, die alleen iets berekenen wanneer er met de muis op de knop geklikt is, zijn vaak heel praktisch. Naast ZetCel kunnen er een groot aantal functies in RagTime-uitbreidingen goed voor knoppen geschikt zijn. "Martin's Power Functions" bevatten een hele reeks van zulke voor knoppen geschikte functies. Ook het gebruik van "stempel"-constructies kan door uitbreidingen duidelijk toenemen. FileTime X bijv. kan onder Mac OS gegevens van FileMaker overnemen. Een knop met ZetCel-functies kan deze gegevens door een klik van de muis invoegen, zonder dat deze gegevens dan nog verder met de database verbonden zijn. (Tussendoor: er kunnen meerdere ZetCel-functies in één knop staan, bijv. met "&" verbonden: ZetCel(...) & ZetCel(...) & ZetCel(...)).
4 Pop-upmenu's en radioknoppenPop-upmenu's en radioknoppen zijn twee concurrerende varianten op de computer voor dezelfde situatie: een gebruiker kan van meerdere, elkaar uitsluitende opties er één kiezen. De grafische weergave van deze twee varianten is verschillend, maar beide werken op dezelfde manier. In RagTime geven deze twee soorten knop-componenten een waarde die in formules kan worden gebruikt. Een verwijzing naar een knop heeft de vorm: "Knop 1!X". De ingangen in het menu / de namen van de radioknoppen worden door de titelinvoer bepaald. U kunt meerdere woorden door return gescheiden als vast invoeren, of u kunt met een formule een verwijzing naar een spreadsheet gebruiken. Als u gebruik maakt van een spreadsheetbereik, worden lege cellen aan het einde genegeerd. Het bereik kan dus iets te groot worden gekozen om een voorraadje te hebben. Bij pop-upmenu's kunt u menu-scheidingslijnen invoegen door binnen het gebruikte bereik cellen leeg te laten. Naar keuze is daarbij het resultaat dat de knop geeft, het nummer van de geselecteerde ingang of de naam. Het is flexibeler wanneer u het nummer van de knop terug laat komen. Via Index-functies in spreadsheets kunt u daarmee celinhouden willekeurig sturen. In een apart artikel zullen we t.z.t. beschrijven hoe u zo een complete pagina-opmaak via menukeuzes kunt wijzigen. We nemen hier een eenvoudig standaardvoorbeeld: in een verslagformulier moeten in de inleiding auteurs in een menu hun ingescande handtekening kunnen kiezen. In een spreadsheet zijn de handtekeningen als illustraties in kolom A opgenomen. In B daarnaast staat telkens de gebruikersnaam. IN een pop-upmenu op de documentpagina wordt voor de titel de volgende formule gebruikt: "Spreadsheet 1!$B:$B". In de tekst wordt via "Tekst -> Inhoudtstype -> Spreadsheet een meelopende spreadsheet ingevoegd. Het object en cel A1 worden op de gewenste grootte gemaakt. In cel A1 van de meelopende spreadsheet komt de formule: "Index(Spreadsheet 1!$A:$A;Knop 1!X)". In het pop-upmenu staan nu de namen. Wordt er een geselecteerd, dan verschijnt het bijbehorende plaatje in de spreadsheet in de tekst.
5 Gekoppelde pop-upmenu'sDe volgende constructie zal menig ontwerper van complexe formulieren bevallen: twee pop-upmenu's zijn zo gekoppeld, dat men in de ene een hoofdcategorie kiest, en in de andere worden dan de bijbehorende subcategorieën getoond. De trick in RagTime is de functie "Kiezen". In de spreadsheet staan in de eerste cel de hoofdcategorieën en telkens daaronder de sub-ingangen. Voorbeeld: Kolom A bevat: Melkproducten, Boter, Kwark, Kaas Kolom B: Graan, Tarwe, Haver, Rogge, Gerst Kolom C: Vis, Schol, Karper, Forel, Baars Het eerste pop-upmenu krijgt de titelformule: "Spreadsheet 1!$A$1:$C$1" Er wordt een tweede pop-upmenu aangemaakt met de volgende formule: "Kiezen(Knop 1!X;Spreadsheet 1!$A$2:$A$10;Spreadsheet 1!$B$2:$B$10;Spreadsheet 1!$C$2:$C$10)" Deze keuzefunctie schakelt tussen gebruikte bereiken om. Wordt er in het eerste pop-upmenu de tweede categorie (Graan) gekozen, dan gebruikt het tweede menu het bereik Spreadsheet 1!$B$2:$B$10 en laat dus de graansoorten zien.
6 AankruisvakkenAankruisvakken hebben altijd een van van twee toestanden: aangekruist en niet aangekruist. Ze geven altijd 0 of 1 terug. Per knop-component is er altijd één aankruisvak. Als u dus een reeks opties wilt hebben, moet u ook evenzovele knop-componenten aanmaken. De getalwaarden worden dan weer precies zo gebruikt als bij radioknoppen en pop-upmenu's.
7 Beschikbaarheid van knoppenEen praktische extra eigenschap van knoppen is dat ze een formule kunnen krijgen waardoor ze al dan niet beschikbaar zijn. De formule wordt in de knop-Info in het gebied "Volgorde" ingevoerd. De formrule moet een getal leveren. 0 geldt als onwaar, d.w.z. de knop kan dan niet gebruikt worden, ieder ander getal geldt als waar. Een knop kan zo uitgeschakeld worden wanneer hij geen zinvolle functie meer heeft. Wanneer we op ons eerste voorbeeld (de tijdstempel) terugkomen: er kunnen zich gevallen voordoen waarin er precies eenmaal een tijdstempel gemaakt mag worden. De knop zou dan de volgende beschikbaarheidsformule kunnen krijgen: IsLeeg(Spreadsheet 1!$A$1) Bij de eerst klik plaatst hij de tijdstempel. Daarmee wordt deze formule onwaar en iedere volgende klik op de knop doet niets meer.
Bron: RagTime GmbH - Jürgen Schell |
||