Kassaformulier aanmaken



Vergelijkbare documenten
Artikelbeheer aanmaken

Klantendatabase aanmaken

[Microsoft Access 2007 Een eigen database maken] 16 oktober 2009

Normaliseren van tabellen Praktische oefeningen

Normaliseren van tabellen Praktische oefeningen

Systeemontwikkeling, Hoofdstuk 5, Formulieren maken in MS Access 2010

Info-books. Toegepaste Informatica. Deel 3d: Gegevensbeheer met Access Boekhouden-informatica Informaticabeheer. BI3d. Jos Gils Erik Goossens

In de ontwerpweergave van een formulier zie je de verschillende secties:

10.1 Inleiding. Formulierkoptekst [From Header] Paginakoptekst [Page Header] Detailsectie [Detail] Paginavoettekst [Page Footer]

Gegevens uit meerdere tabellen weergeven

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2

Vakrapport (Access XP)

1 Rapporteren in Office 2007

Handleiding Word de graad

Count-e Statistieken. Statistieken

Formulieren en rapporten

Leerlingdossier & handelingsplannen. Welke mogelijkheden biedt de online tekstverwerker in ESIS? FAQ

Een grafiek maken in Excel

Technische handleiding database ontslagmanagement

6.8 Lijsten: oefeningen

199 Kruidvat

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Geimporteerde gegevens aan een tabel toevoegen

Samen op zoek naar proeven

Leerlingdossier & handelingsplannen

Toelichting op enkele knoppen: (als u de muis bij een knop houdt, verschijnt een tekst met een korte aanwijzing (tooltip) bij deze knop).

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Picnic handleiding voor beginners

Excel Controller. Jaarrekening

Excel Controller. Jaarrekening

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Safira CMS Handleiding

Briefhoofd maken in Word. Handleiding van Helpmij.nl

Internet Explorer 7 (IE7)

HANDLEIDING RAPPORTEN

Central Station Urenregistratie

Publisher Handleiding

A & A Consultancy Het samenvoegen van een adressenbestand en het afdrukken op adresetiketten in Word. (versie 2003)

Doelstellingen: module 3 formulieren. 3.1 Doel. Tip: maximaliseer steeds je venster voordat je gegevens invoert.

Basisvaardigheden Microsoft Excel

Op basis van klanten-,product-,barcodegegevens wordt automatisch een barcode document aangemaakt

De acties die je als gebruiker stapsgewijs moet volgen, worden als volgt genoteerd.

DATABASEBEHEER IN EXCEL

Excel Controller. Jaarrekening in Excel. Handleiding Excel Controller. Jaarrekening. Auteur(s) G. Buurmans. Date of creation

Handleiding : Regletten in Pharmawin

2.4.4 LibreOffice Werkblad Mac

PLAKKEN Nadat u een gedeelte heeft geknipt of gekopieerd kunt u met dit icoon de selectie weer in het veld plakken.

Macro s. 4.2 Een macro maken

QUESTI OPSTARTGIDS ALGEMENE INSTELLINGEN EN LVS

Ledenlijsten + etiketten maken

Een veld (field) (geel omkaderd) is een vakje en omdat er gewone tekst instaat is dit dus een "tekstveld"

196 CEWE *)zie einde les

Afdrukken in Calc Module 7

Excel 2010 NL. Stap voor Stap formulier maken. Een formulier maken in Excel 2010 NL aan stap voor stap beschreven. Blad kopiëren en Afdrukken.

Algemene basis instructies

8. Adresetiketten maken

Trippeltrap Content Management System

6. Reeksen

Een toekomst voor ieder kind.

Samenvoegen met Word en Excel 2010

INDEX. Opmerkingen

Gebruikershandleiding Edit

Landelijk Indicatie Protocol (LIP)

Legal Eagle Agenda handleiding versie 2.8 december 2007

Inform 5-6. Toegepaste Informatica. Boekhouden-informatica Informaticabeheer. Deel 5c: Programmeren voor een bedrijfseconomische

Onderdeel: Opdracht Uitleg + Opdracht

Gebruikershandleiding Website RKVVO

3.4 Een Hoofd/subformulier maken zonder de hulp van de wizard.

Tekenen met Floorplanner

HANDLEIDING O F F E R T E S

2.2 Een tabel ontwerpen

Inhoudsopgave. Inleiding 11

EBUILDER HANDLEIDING. De Ebuilder is een product van EXED internet EXED CMS UITLEG

Handleiding Access 2010

Handicom. Symbol for Windows. Image Manager. (Versie 3) Handicom, 2006, Nederland

Factuurvoorstellen. Opmerkingen: Raadpleeg de facturatietoepassing voor meer details. De volgende hoofdschermen zijn beschikbaar:

Wiskunde en ICT 1. Met het lettertype wiskunde.ttf kan je onderstaande wiskundige symbolen invoegen.

UNAD Facturering versie:

195 Fotoalbum maken met Blokker

Opstarten van de GRATIS facturatiemodule

Gebruikshandleiding module Party-Feestdagen

1. Etiketten en visitekaartjes

Tutorial. Microsoft Access 2003

[Microsoft Access 2007 Een eigen database maken] 28 oktober 2009

Tips en Tricks basis. Microsoft CRM Revisie: versie 1.0

Vergelijkingseditor 2007

Handleiding ZKM Online. Versie 2.1

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen.

In het tabblad Maken, groep Rapporten kun je in één keer een rapport maken van een

Central Station. CS website

Office 2007 voor het examen!

Pagina 2 van 27. Kassa software

Basisvaardigheden Microsoft Excel

Een eenvoudige PowerPoint presentatie maken: Een stappenplan

HANDLEIDING. WordPress LAATSTE VERSIE: RODER!CKVS WEBDESIGN & WEBHOSTING

Een website ontwerpen in Dreamweaver met de opmaakweergave

OPLOSSINGEN. Deze cursus is eigendom van de VDAB. PS nr D2006/5535/216

Handleiding Enquêtemodule. Contents

Inleiding. - Teksten aanpassen - Afbeeldingen toevoegen en verwijderen - Pagina s toevoegen en verwijderen - Pagina s publiceren

Transcriptie:

Kassaformulier aanmaken Om in onze kassa artikels te kunnen inbrengen is het nodig om een formulier te maken waarin we een artikelnummer, het bestelde aantal kunnen invoeren. De kassa zal dan zelf het totaal berekenen dankzij formules die we invoeren in de velden die het totaal moeten weergeven. Bestellijnen bewaren en een ticketnummer toekennen We starten op het formulier : KL-frmOpzoekenKlanten. We voegen een tekstvak toe om het artikelnummer te kunnen invullen. We geven het object volgende eigenschappen mee. Dit doe je in <Eigenschappenvenster><Alle>. We maken de opmaak zoals in het voorbeeld : Artikelnummer : Eigenschap Waarde Tekstvak txtartikelnummer Tekstuitlijning Gecentreerd Tabvolgorde 0 Label lblartikelnummer Bijschrift Artikelnummer: Tekengrootte 8 Wanneer we een artikelnummer invullen moet ernaast de volgende gegevens verschijnen : artikelomschrijving eenheidsprijs btw-tarief. Tevens moet er de mogelijkheid zijn om het bestelde aantal in te kunnen vullen. 1 Frank Van Oost

Selectiequery maken om artikel op te zoeken Voor het eerste voorzien we een query die op basis van het artikelnummer (het criterium van de query) de gegevens gaat opzoeken in de tabel tblartikels. <Maken><Queryontwerp> We selecteren één voor één de tabellen tblartikels, tblbtwtarieven en tblsoorten en drukken telkens op <Toevoegen>. Daarna druk je op <Sluiten>. Uit deze tabellen kunnen we alle informatie halen die we willen afbeelden op het scherm. We plaatsen volgende velden in de query : A_ArtikelCode, A_Artikelomschrijving, A_Eenheidsprijs, B_Omschrijving (tblbtwtarieven) en S_Omschrijving (tblsoorten). Als criterium voor deze query gebruiken we de Opbouwfunctie in het veld A_ArtikelCode en gaan we de waarde halen op het formulier frmopzoekenklanten in het tekstveld txtartikelnummer. Dit geeft volgende query : We bewaren de query als : Kas-qryOphalenArtikelGegevens. Dit is het resultaat als we het artikelnummer 1 invullen. Dit is wat wij willen afbeelden op het formulier frmopzoekenklanten. Om deze gegevens te tonen op het formulier moeten we deze query koppelen aan het formulier en de nodige velden op het formulier plaatsen. Dat doen we als volgt : 2 Frank Van Oost

- Open het formulier in ontwerpweergave - Selecteer het formulier door op het kruispunt van horizontale en verticale liniaal te klikken. - In het Eigenschappenvenster bij het tabblad Gegevens kiezen we bij Recordbron de query KASqryOphalenArtikelGegevens en bewaren het formulier door even op het disketje te drukken. Via de knop Bestaande velden toevoegen naast de knop Eigenschappenvenster zien we nu welke velden voor dit formulier ter beschikking zijn. We selecteren alle velden buiten A_Artikelnummer en slepen deze op het formulier (ergens ter hoogte van txtartikelnummer ). Daarna maken we de verschillende objecten op volgens volgende eigenschappen en plaatsen deze tov het artikelnummer zoals in het voorbeeld : Artikelomschrijving : Eigenschap Waarde Label lblartikelomschrijving Bijschrift Artikelomschrijving : Tekengrootte 8 Tekstveld txtartikelomschrijving Tekengrootte 10 Tekengewicht Vet Tekstuitlijning Algemeen Tabstop (Overige) Vergrendeld (Gegevens) Ja Eenheidsprijs: Eigenschap 3 Frank Van Oost Waarde

Label lbleprijs Bijschrift E-prijs : Tekengrootte 8 Tekstuitlijning Gecentreerd Tekstveld txteenheidsprijs Tekengrootte 10 Tekengewicht Vet Tekstuitlijning Gecentreerd Tabstop (Overige) Vergrendeld (Gegevens) Ja BTWTarief : Eigenschap Waarde Label lblbtw Bijschrift BTW : Tekengrootte 8 Tekstuitlijning Gecentreerd Tekstveld txtbtw Tekengrootte 10 Tekengewicht Vet Tekstuitlijning Gecentreerd Tabstop (Overige) Vergrendeld (Gegevens) Ja Soort: Eigenschap Waarde Label lblsoort Bijschrift Soort : Tekengrootte 8 Tekstveld txtsoort Tekengrootte 10 Tekengewicht Vet Tekstuitlijning Links Tabstop (Overige) Vergrendeld (Gegevens) Ja Tabstop : op die manier zal de cursor niet op de opgezochte (en niet wijzigbare) gegevens komen en onmiddellijk straks naar het tekstveld txtaantal springen. De gegevens zijn ook vergrendeld 4 Frank Van Oost

zodanig dat niemand iets kan wijzigen aan de gegevens van dat artikel. Dit mag enkel via formulieren die daar specifiek voor gemaakt zijn. Om nu te zorgen dat telkens we een artikel hebben ingevuld de gegevens getoond worden gaan we een macro maken die uitgevoerd wordt van zodra we het tekstvak txtartikelnummer hebben verlaten. Dat betekent dat de macro als gebeurtenis zal moeten opgeroepen worden bij Na bijwerken in het tabblad Gebeurtenis in het Eigenschappenvenster. Daarvoor maken we een nieuwe macro via <Maken><Macro>. In het macro-scherm klikken we onmiddellijk op de knoppen <Alle acties weergeven> en <Macronamen>. We maken een eerste submacro OpzoekenArtikel. De actie QueryOpnieuwUitvoeren (zonder argumenten) zorgt ervoor dat het formulier waarop we nu werken (frmopzoekenklanten) vernieuwd wordt waardoor de query die we eraan verbonden hebben opnieuw wordt uitgevoerd en de artikelgegevens op basis van het artikelnummer opgezocht en afgebeeld worden. Daarna moet de cursor naar het tekstvak txtaantal zodanig dat het aantal bestelde artikels kan worden ingevuld. Dit doen we met de actie "NaarBesturingselementGaan" met als argument "txtaantal" (zoals je kan zien op de figuur hierboven). We gaan terug naar ons formulier en het tekstveld txtartikelnummer en gaan daar de submacro Kas-mcrKassaBeheer.OpzoekenArtikel als gebeurtenis Na bijwerken aanduiden. 5 Frank Van Oost

We plaatsen nu nog een extra tekstvak txtaantal op het formulier zodanig dat we het bestelde aantal van het ingevulde artikel kunnen invullen. Aantal : Eigenschap Tekstvak Tekstuitlijning Tabvolgorde (Overige) Waarde txtaantal Gecentreerd Eén nummer hoger dan tabvolgorde van txtartikelnummer = 1 in ons voorbeeld Label lblaantal Bijschrift Aantal: Tekengrootte 8 Tekstuitlijning Gecentreerd Wanneer het aantal is ingevuld moeten we deze bestellijn kunnen opslaan om deze later te kunnen afdrukken op een kasticket. We voorzien hiervoor een knop cmdopslaan met achter deze knop een macro die een toevoegquery start die de gegevens van het formulier wegschrijft naar een nieuwe tabel Bestellijnen. We maken eerst de nieuwe tabel Bestellijnen - <Maken><TabelOntwerp>. Tabel : tblbestellijnen Veldnaam Gegevenstype Beschrijving BS_BestellijnCode Autonummering Unieke code per bestellijn BS_Artikelnummer Numeriek Artikelnummer BS_Aantal Numeriek Aantal bestelde artikels BS_TicketNummer Numeriek Nummer van de bestelbon - Elk gekocht artikel is een bestellijn op een kasticket, - Bij elk artikel hoort een uniek artikelnummer, - Bij elke bestelling hoort een besteld aantal, - Op één ticket staan één of meerdere bestellijnen om een ticket te kunnen afdrukken moeten we weten welke bestellijnen op welk ticket (of bestelbon) thuis horen. We bewaren de tabel als tblbestellijnen. Om de gegevens van het formulier nu weg te schrijven moeten we een toevoegquery maken die de gegevens van het formulier naar de tabel wegschrijft. Dit is al vertrouwd terrein. Zo ziet de toevoegquery eruit : 6 Frank Van Oost

Toevoegquery : KAS-qryOpslaanNieuweBestellijn Gebruik de tabel 'tblbestellijnen' als bestand naar waar je de informatie wilt wegschrijven. Veldnaam Toevoegen aan : Artikelnummer : [Forms]![KL-frmOpzoekenKlanten]![txtArtikelnummer] BS_Artikelnummer Aantal: [Forms]![KL-frmOpzoekenKlanten]![txtAantal] BS_Aantal Ticket:1 BS_TicketNummer In het laatste veld van de query gaan we het getal 1 opslaan als voorlopige oplossing voor het ticketnummer. Deze query moet nu telkens uitgevoerd worden wanneer op de knop Opslaan wordt gedrukt. We maken dus een knop op het formulier en koppelen daaraan een macro die de toevoegquery uitvoert. We maken eerst de knop cmdopslaan Knop Opslaan : Eigenschap Bijschrift Schikking van bijschrift Afbeelding Breedte Hoogte Tabvolgorde (Overige) Knopinfo (Overige) Waarde cmdopslaan Opslaan Geen bijschrift Opslaan 1,016 cm 0,578 cm 2 (ééntje hoger dan txtaantal) Opslaan bestellijn Daarna maken we de macro : <Maken><Macro> 7 Frank Van Oost

Submacro in KAS-mcrKassaBeheer : OpslaanNieuweBestellijn submacro Actie Argument OpslaanNieuweBestellijn QueryOpenen KAS-qryOpslaanNieuweBestellijn Deze macro koppelen we aan de knop cmdopslaan In het eigenschappenvenster van de knop cmdopslaan kiezen we voor bij Gebeurtenis en Bij klikken voor de macro KAS-mcrKassaBeheer.OpslaanNieuweBestellijn. Na het opslaan moet alles leeg gemaakt worden en dat doen we door een nieuwe submacro te maken : KAS-mcrKassaBeheer.BestellijnLeegMaken Submacro in KAS-mcrKassaBeheer BestellijnLeegMaken submacro Actie Argument BestellijnLeegMaken WaardeInstellen txtartikelnummer Expressie : WaardeInstellen txtaantal Expressie : 0 QueryOpnieuwUitvoeren De twee tekstvelden worden blanco gezet en het formulier wordt een vernieuwd waardoor de informatie van het opgezochte artikel verdwijnt. Deze nieuwe macro moet opgeroepen worden vanuit de macro : OpslaanNieuweBestellijn en de cursor moet daarna terug gezet worden in het tekstvak txtartikelnummer. Submacro in KAS-mcrKassaBeheer : OpslaanNieuweBestellijn (aangepast) submacro Actie Argument OpslaanNieuweBestellijn QueryOpenen KAS-qryOpslaanNieuweBestellijn MacroStarten KAS-mcrKassaBeheer.BestellijnLeegMaken NaarBesturingselement txtartikelnummer 8 Frank Van Oost

Wanneer nu een bestelling niet moet opgeslagen worden voorzien we een Annuleer -knop. We maken de knop cmdannuleer door de knop cmdopslaan te kopiëren en de eigenschappen te wijzigen Knop Annuleer : Eigenschap Bijschrift Schikking van bijschrift Afbeelding Breedte Hoogte Tabstop (Overige) Bij Klikken (gebeurtenis) Knopinfo (Overige) Waarde cmdannuleer Annuleer Geen bijschrift Ongedaan maken 1,016 cm 0,578 cm KAS-mcrKassaBeheer.BestellijnLeegMaken Annuleer bestellijn Om per klant een ticket te kunnen maken waar enkel zijn bestelde artikels op staan is het nodig een ticketnummer te geven aan elk ticket dat afgedrukt wordt voor de klant. Dit betekent dat elke keer een nieuwe klant bediend wordt er een nieuw ticketnummer moet gegenereerd worden. We doen dat door telkens een nieuw ticketnummer te maken en bij te houden aan welke klant dit werd toegekend. Omdat mogelijk te maken ontwerpen we een nieuwe tabel : tblticket. Tabel : tblticketnummer Veldnaam Gegevenstype Beschrijving TK_TicketNummer Autonummering Unieke code per ticket TK_Klantnummer Numeriek Klantnummer TK_Datum Datum/tijd Afleverdatum Telkens een ticket wordt afgedrukt wordt het ticketnummer en de nodige gegevens bewaard. Bij het starten van een nieuw ticket wordt het laatste ticketnummer opgezocht dankzij een onzichtbaar formulier en wordt er telkens een eenheid aan toegevoegd. Dit nieuw ticketnummer wordt getoond op het formulier waar we de bestellingen invoeren. Om het laatste ticketnummer te vinden maken we een selectie- query die de ticketnummer omgekeerd sorteert KAS-qryOpzoekenLaatsteTicketNummer. Deze query gaan we koppelen aan een formulier dat het laatste ticketnummer toont op een verborgen formulier. Dit formulier wordt geopend wanneer het formulier, waar we onze bestellingen ingeven, wordt geopend. Dat is het formulier KL-frmOpzoekenKlanten. De query ziet er als volgt uit : 9 Frank Van Oost

Selectiequery : KAS-qryOpzoekenLaatsteTicketNummer We gebruiken voor deze query de tabel tblticketnummers Veldnaam TS_TicketNummer Sorteervolgorde: Aflopend sorteren Op basis van deze query maken we een formulier KAS-frmLaatsteTicketNummer. We selecteren de query en drukken in de liniaal op <Maken><Formulier> (niet op formulierontwerp). Daardoor wordt door Access een formulier gemaakt met alle gegevens van de query. We benoemen het tekstveld met het ticketnummer : txtlaatsteticketnummer en dit in het eigenschappenvenster van het tekstveld. In het tabblad Opmaak zetten de eigenschap "Zichtbaar" bij zowel het tekstveld als het label op "". Daardoor is het laatste ticketnummer niet zichtbaar maar kan het door Access toch gebruikt worden om het nieuwe ticketnummer te bepalen. Tevens verkleinen we zowel het label als het tekstveld in de breedte zodanig dat ze zeer weinig plaats nemen op het formulier en we het formulier straks zo klein mogelijk kunnen maken. Op hetzelfde formulier voegen we een tekstveld toe om het nieuwe ticketnummer te berekenen en te tonen. Daarvoor geven we aan het tekstveld volgende eigenschappen: 10 Frank Van Oost

Nieuw Ticketnummer : Eigenschap Tekstvak Tekstuitlijning Tabstop (Overige) Besturingselementbron (Gegevens) Ingeschakeld (Gegevens) Vergrendeld Achtergrondkleur Voorgrondkleur Waarde txtnieuwticketnummer Gecentreerd =[txtticketnummer]+1 Ja Geel Rood Label lblnieuwticketnummer Bijschrift Ticketnummer : Tekengrootte 8 Tekstuitlijning Gecentreerd In dit tekstvak wordt bij de opening van het formulier het laatste ticketnummer gelezen en wordt er één eenheid bij opgeteld. Dit vormt dan het volgende ticketnummer. Dit ticketnummer moet telkens bij het opslaan van een bestellijn ook opgeslagen worden in het veld BS_Ticketnummer van de tblbestellijnen. Daarom passen we de query KAS-OpslaanNieuweBestellijn aan. Het formulier zelf geven we ook nog wat opmaak mee. Selecteer het formulier en in het Eigenschappenvenster op het tabblad Opmaak wijzigen we volgende instellingen in : Eigenschap Formulier( Opmaak) Randstijl Recordkiezers Navigatieknoppen Schuifbalken Systeemmenu Knop sluiten Min. en max-knop Waarde Dialoog Geen We bewaren het formulier met bovenstaande naam : KAS-frmLaatsteTicketNummer. We plaatsen dit formulier nu als subformulier op het formulier KL-frmOpzoekenKlanten door het op het formulier te slepen. We verwijderen het label van het subformulier en wijzigen de eigenschap (op het tabblad Opmaak) "Randstijl" in 'Transparant'. We plaatsen het subformulier op de juiste plaats bovenaan het formulier 11 Frank Van Oost

en telkens we nu de kassa opstarten zal het systeem het laatste ticketnummer ophalen en het nieuwe ticketnummer tonen. Het "Annuleer"-knopje plaats ik nu rechts van de "Opslaan"-knop omdat daar nu wat ruimte is vrij gekomen. Bewaren van het nieuwe ticketnummer : Waar tot op heden de waarde 1 werd bewaard wordt nu de waarde opgeslagen die in het tekstveld txtticketnummer vermeld staat. We passen de query zo aan. Dit doen we door in het veld Ticketnummer de opbouwfunctie te starten en ipv van de waarde 1 het veld txtnieuwticketnummer aan te geven op het subformulier "KAS-frmLaatsteTicketNummer" op het formulier KL-frmOpzoekenKlanten. Dit doen we als volgt : Duid eerst in de opbouwfunctie het subformulier aan en dubbelklik op het subformulier zodanig dat het aangeduid wordt in het opbouwvenster bovenaan. 12 Frank Van Oost

Daarna selecteer je in de linkerkolom het formulier KAS-frmLaatsteTicketNummer en zie je in de middelste kolom al de objecten op dit formulier. Kies daar het tekstveld "txtnieuwticketnummer" en dubbelklik op dit tekstveld zodanig dat het ook bovenaan in het opbouwvenster komt te staan. 13 Frank Van Oost

In het opbouwvenster verwijder je nu de overbodige notaties. Je schrapt : "<<Expr>> Forms![KASfrmLaatsteTicketNummer]". Deze notatie is niet nodig omdat we dit al in onze opbouwexpressie hebben staan. We hebben enkel het laatste stuk nodig, nl. de naam van het tekstvak waarin het nieuwe ticketnummer staat. Dit is het resultaat : We drukken op <OK> en in het queryvenster geeft dit, na het vervangen van 'Expr1' door 'Ticketnummer'. Het nieuwe ticketnummer wordt weggeschreven in het veld 'BS_Ticketnummer'. Vanaf nu zal bij elke bestellijn het ticketnummer worden bewaard. Dit laat toe om straks alle bestellijnen met een bepaald ticketnummer te selecteren om te tonen op het scherm of om af te drukken. Overzicht maken van alle bestellijnen van een ticket Terwijl de kassier de artikels inbrengt is het belangrijk dat hij een overzicht heeft van alle artikels die voor deze klant (dit ticketnummer) al aangerekend heeft. Om dit mogelijk te maken moeten we een selectiequery maken op basis van het ticketnummer dat op dat moment op het scherm staat. Daarbij moeten we bepalen welke gegevens zichtbaar moeten zijn in het overzicht : - Artikelnummer - Artikelomschrijving - Eenheidsprijs - BTW-tarief - Aantal besteld - Lijntotaal = (eenheidsprijs + BTW)*aantal Dit overzicht moet in een doorlopend formulier waarbij het laatst toegevoegde artikel bovenaan verschijnt. 14 Frank Van Oost

Om al deze gegevens te kunnen weergeven hebben we volgende tabellen nodig : - tblartikels - tblbtwtarieven - tblbestellijnen Volgende velden worden in de query opgenomen : Veldnaam Uit Tabel : BS_BestellijnCode (om te kunnen omgekeerd sorteren) tblbestellijnen BS_Ticketnummer (om alleen de bestellijnen van het huidige tblbestellijnen ticketnummer te kunnen selecteren) BS_Artikelnummer tblbetellijnen A_Artikelomschrijving tblartikels A_Eenheidsprijs tblartikels B_BTWTarief om het btw-bedrag te kunnen bereken tblbtwtarieven BS_Aantal tblbestellijnen - Om de nieuwe bestellijnen bovenaan te laten verschijnen is het nodig om de bestellijnen "aflopend" te sorteren op basis van het BS_BestellijnCode. Dit veld is steeds chronologisch. Hoe hoger het de bestellijncode hoe recenter het artikel werd ingebracht. Kies in het veld BS_BetellijnCode ter hoogte van Sorteervolgorde voor 'Aflopend' - Om enkel de bestellijnen te tonen van het huidige ticketnummer zullen we een criterium bepalen in het veld BS_Ticketnummer. De waarde van het ticketnummer halen we van het kassaformulier In het veld BS_Ticketnummer gaan we een opbouwfunctie construeren waarbij we op het subformulier KASfrmLaatsteTicketnummer de waarde uit het tekstveld txtnieuwticketnummer gaan halen om te gebruiken als selectiecriterium. Dit doen we op dezelfde manier als we daarnet deze waarde hebben toegevoegd in de toevoegquery waarbij we de bestellijn en zijn ticketnummer wegschreven naar tblbestellijnen. 15 Frank Van Oost

- Om het totaal van deze bestellijn te kunnen berekenen zullen we een berekend veld toevoegen aan de query. Voor we dit kunnen doen moeten we de query eerste bewaren. We geven hem de volgende naam : KAS-qryOverzichtBestellijnenHuidigTicketNummer In een extra veld gaan we het totaal berekenen van de bestellijnen. Dit doen we door uiterst rechts in de bovenste cel thv veld te klikken met de rechtermuisknop en de opbouwfunctie te activeren. We maken dan volgende formule : =( [A_EenheidsPrijs] +( [A_EenheidsPrijs] * [B_BTWTarief] /100))* [BS_Aantal] Al deze velden halen we op uit de query die bovenaan in de linkerkolom van het opbouwscherm ter beschikking is. In het queryvenster geeft dit volgende resultaat : Lijntotaal : ( [A_EenheidsPrijs] +( [A_EenheidsPrijs] * [B_BTWTarief] /100))* [BS_Aantal] Wanneer we nu ons formulier "KL-frmOpzoekenKlant" openen en dan voor het huidige ticketnummer de bestellijnen willen zien moeten we deze nieuwe query even laten lopen en toont hij alle reeds ingebrachte bestellijnen voor het huidige ticketnummer. Wil ik dit nu weergeven op het scherm moet ik een formulier maken op basis van deze nieuwe query. Via het tabblad <Maken><TabelOntwerp> maken we een nieuwe blanco formulier. 16 Frank Van Oost

We passen vooreerst volgende eigenschap aan : Formulier ( Gegevens) Recordbron KAS-qryOverzichtBestellijnenHuidigTicketNummer Naast de knop 'Eigenschappenvenster" klikken we op de knop 'Bestaande velden toevoegen' en plaatsen we volgende velden op het formulier door ze op het formulier te slepen. - Artikelnummer - Artikelomschrijving - Eenheidsprijs - BTW-tarief - Aantal besteld - Lijntotaal We bewaren even dit formulier met als naam : KAS-frmOverzichtBestellijnenHuidigTicketNummer We klikken met de rechtermuisknop op de balk "Details" in het formulier en selecteren daar "Formulierkop- /- voettekst". We maken nu volgende lay-out met volgende eigenschappen : Eigenschap Formulier ( Opmaak) Standaardweergave Randstijl Recordkiezers Navigatieknoppen Recordbegrenzingslijnen Schuifbalken Systeemmenu Knop sluiten Min. en max-knop Formulier ( Gegevens) Gegevensinvoer Toevoegingen toestaan Waarde Doorlopend formulier Dialoog Ja Ja Ja Alleen verticale 17 Frank Van Oost

Formulierkoptekst (Opmaak) Achtergrondkleur Access-thema 2 Access-thema 2 Achtergrondkleur Bij alle velden op deze koptekst Randstijl Bij alle velden op deze koptekst Transparant Details (Opmaak) Achtergrondkleur Alternatieve Achtergrondkleur Achtergrondkleur Bij alle velden in details Randstijl Bij alle velden in details Details (Gegevens) Vergrendeld Bij alle velden in details Alternatief gekleurde rij Achtergrondformulier Alternatief gekleurde rij Transparant Ja Als dit formulier volledig klaar is bewaren we dit nogmaals en sluiten we het formulier. We openen het formulier KL-frmOpzoekenKlant en slepen dit nieuwe formulier als subformulier onder onze kassa. We verwijderen de titel van het subformulier en plaatsen het subformulier mooi onder het invoervenster van de bestellijnen. Telkens we nu een artikel toevoegen moet dit formulier geupdate worden. We moeten op dit formulier (dat gebaseerd is op een query) de actie 'QueryOpnieuwUitvoeren' laten lopen. Dit doen we op het moment dat we op de knop "Opslaan" drukken zodanig dat telkens we een bestellijn bewaren deze onmiddellijk getoond wordt in het overzicht van de bestellijnen. 18 Frank Van Oost

Dit passen we aan in de macro "KAS-mcrKassabeheer.OplsaanNieuweBestellijn". We voegen onderaan deze submacro een lijn toe : Submacro in KAS-mcrKassaBeheer : OpslaanNieuweBestellijn submacro Actie Argument OpslaanNieuweBestellijn QueryOpenen KAS-qryOpslaanNieuweBestellijn MacroStarten KAS-mcrKassaBeheer.BestellijnLeegMaken NaarBesturingselement txtartikelnummer volgende regel toevoegen QueryOpnieuUitvoeren KAS-frmOverzichtBestellijnenHuidigTicketNummer Dit is het resultaat : Totaal berekenen van het kasticket Om nu de totaalprijs per ticket te berekenen baseren we ons op het overzicht van alle bestellijnen en gaan we het totaal maken van alle lijntotalen. Dit doen we met een query op basis van de query die het overzicht maakt van alle bestellijnen van een ticket. Daarbij gaan we de som maken van alle lijntotalen. We maken via <Maken><QueryOntwerp> een query op basis van de query "KASqryOverzichtBestellijnenHuidigTicketNummer" die we daarnet gemaakt hebben. 19 Frank Van Oost

We slepen het veld "Lijntotaal" in het rooster en klikken met de rechtermuis in het rooster. Daar selecteren we "Totaal" en dan verschijnt een extra lijn in het rooster. Daar staat bij "Lijntotaal" 'Group by'. Wijzig dit in 'Som'. We bewaren de query als : "KAS-qryBerekenTicketTotaal". Bij de weergave zien we dat de query het totaal van het ticket berekent. Dit totaal moeten we nu nog op ons formulier tonen en dan zijn we klaar. Dit gaan we op dezelfde manier als bij het ticketnummer doen. We maken een formuliertje op basis van deze query met slechts één enkel veld op "Totaal". We bewaren dit formulier als "KASfrmTicketTotaal". Eigenschap Formulier ( Opmaak) Standaardweergave Randstijl Recordkiezers Navigatieknoppen Recordbegrenzingslijnen Schuifbalken Systeemmenu Knop sluiten Min. en max-knop Waarde Enkelvoudig formulier Dialoog Geen 20 Frank Van Oost

Formulier ( Gegevens) Gegevensinvoer Toevoegingen toestaan Tekstveld (Alle) txttickettotaal Achtergrondkleur Access-thema 4 Randstijl Transparant Tekstuitlijning Gecentreerd Tekengrootte 18 Label (Alle) lbltickettotaal Bijschrift TOTAAL Tekengrootte 14 Tekstuitlijning Gecentreerd Dit formulier slepen we dan als subformulier op het formulier 'KAS-frmOpzoekenKlant' en verwijderen de titel van het subformulier. We laten dit subformulier telkens vernieuwen als we een nieuwe bestellijn toevoegen. Daarvoor passen we de macro "KAS-mcrKassabeheer.OplsaanNieuweBestellijn". We voegen onderaan deze submacro een lijn toe : Submacro in KAS-mcrKassaBeheer : OpslaanNieuweBestellijn submacro Actie Argument OpslaanNieuweBestellijn QueryOpenen KAS-qryOpslaanNieuweBestellijn MacroStarten KAS-mcrKassaBeheer.BestellijnLeegMaken NaarBesturingselement txtartikelnummer QueryOpnieuwUitvoeren KAS-frmOverzichtBestellijnenHuidigTicketNummer volgende regel toevoegen QueryOpnieuwUitvoeren KAS-frmTicketTotaal Nu moeten we nog enkel het ticket afsluiten en het laten afdrukken op onze printer. Daarvoor gaan we een aantal acties moeten uitvoeren. - Het huidige ticketnummer moet bewaard worden in de tabel tblticket - Samen het huidige ticketnummer moeten we ook het klantennummer bewaren van de klant voor wie het ticket bedoeld is - Tevens gaan we een nieuw ticketnummer moeten opvragen en alles blanco zetten zodanig dat een nieuwe bestelling kan opgenomen worden. - Tenslotte zullen we ook het ticket moeten afdrukken met een rapport. Het huidige ticketnummer en het klantennummer lezen we af van het formulier en bewaren met een toevoegquery in de tabel 'tblticketnummer'. Deze query ziet er als volgt uit : 21 Frank Van Oost

We maken een toevoegquery. De tabel naar waar we de data wegschrijven is "tblticketnummer". Ticket: [Forms]![KL-frmOpzoekenKlanten]![KAS-frmLaatsteTicketNummer]![txtNieuwTicketNummer] wordt weggeschreven naar het veld TK_TicketNummer Klantnummer: [Forms]![KL-frmOpzoekenKlanten]![LstKlanten] wordt weggeschreven naar het veld TK_KlantNummer Deze query bewaren we als "KAS-qryOpslaanTicketGegevens" Deze query wordt gekoppeld aan een knop <Afdrukken Kasticket> die we op het formulier plaatsen. Bij deze knop gaan we een gebeurtenis koppelen. <Bij klikken> moet in een macro de query "KAS-qryOpslaanTicketGegevens" uitgevoerd worden. De submacro noemen we : KAS-mcrKassaBeheer.AfdrukkenKasticket. Submacro in KAS-mcrKassaBeheer.AfdrukkenKasticket submacro Actie Argument AfdrukkenKasTicket QueryOpenen KAS-qryOpslaanTicketGegevens MacroStarten KAS-mcrKassaBeheer.BestellijnLeegMaken NaarBesturingselement txtartikelnummer QueryOpnieuwUitvoeren KAS-frmOverzichtBestellijnenHuidigTicketNummer QueryOpnieuwUitvoeren KAS-frmTicketTotaal - gegevens bewaren - alles blanco zetten - cursor terug klaar zetten om volgende bestelling in te voeten - overzicht van het ticket terug vernieuwen waardoor het blanco komt te staan - tickettotaal terug op "0" zetten 22 Frank Van Oost

Knop Afdrukken : Eigenschap Bijschrift Schikking van bijschrift Afbeelding Breedte Hoogte Tabstop (Overige) Bij Klikken (gebeurtenis) Knopinfo (Overige) Waarde cmdafdrukken Afdrukken Onder Printer 2,683cm 2,683cm KAS-mcrKassaBeheer.AfdrukkenKasTicket Afdrukken ticket Nu nog enkel het kasticket afdrukken en ons programma is klaar. Om alle gegevens te verzamelen die op het kasticket moeten worden afgedrukt maken we een query met de volgende tabellen en query. 23 Frank Van Oost

- KAS-qryOverzichtBestellijnenHuidigTicket (query) : met deze query verzamelen we alle bestellijnen van het huidige ticket. - tblbestellijnen : om de klantgegevens van het ticket terug te vinden verbinden we aan deze query ook deze tabel. - tblticketnummer: hier vinden we de klantnummer waarmee we de gegevens van de klant halen uit de tabel tblklanten - tblklanten : adresgegevens van de klant ophalen - tblpostcodes : om het postnummer en gemeente op te halen van elke klant De volgende velden worden opgenomen in de query. We bewaren de query als : KAS-qryKasTicket Veldnaam KL_Contactpersoon KL_Adres PST_Postnummer PST_Gemeente TK_Ticketnummer BS_Bestelcode BS_Artikelnummer A_Artikelomschrijving A_Eenheidsprijs B_BTWTarief BS_Aantal Lijntotaal Tabel tblklanten tblklanten tblpostcodes tblpostcodes tblticketnummer qryoverzichtbestellijnenhuidigticketnummer qryoverzichtbestellijnenhuidigticketnummer qryoverzichtbestellijnenhuidigticketnummer qryoverzichtbestellijnenhuidigticketnummer qryoverzichtbestellijnenhuidigticketnummer qryoverzichtbestellijnenhuidigticketnummer qryoverzichtbestellijnenhuidigticketnummer Een rapport is te vergelijken met een formulier. Het grote verschil is het afbeelden bij een rapport gebeurt op papier. We maken ons kasticket zoals we gedaan hebben bij het formulier KASfrmOverzichtBestellijnenHuidigTicket. <Maken><Rapportontwerp>. Aan het rapport verbinden we via het <Eigenschappenvenster> de query KAS-qryKasTicket zodanig dat de verschillende velden (via de knop <Bestaande velden toevoegen>) ter beschikking komen. We slepen alle velden op het lege formulier en wijzigen de layout als volgt. We bewaren het rapport als "KAS-rptKasTicket". De klantgegevens en ticketnummer moeten maar éénmaal voorkomen op het kasticket. Daarom verplaatsen we deze in de "Rapportkoptekst". Deze tekst kom enkel voor bij het begin van het rapport. De rapportkoptekst kan je oproepen door rechts te klikken op "Details" en daar Rapportkop-/voettekst en Paginakop-/voettekst aan te klikken. 24 Frank Van Oost

De labeltjes zoals art.nr., artikelomschrijving, moeten op elke pagina verschijnen van het ticket (als het meerdere pagina's bevat). Vandaar dat deze labels in de "Paginakoptekst" geplaatst worden. De gegevens van de bestellijn moeten voor elke lijn afgebeeld worden dus moeten deze in "Details" geplaatst worden. Het Tickettotaal gaan we later in de Rapportvoettekst plaatsen omdat deze enkel op het einde van het ticket moet verschijnen. Dit is het afgedrukte resultaat : Om het tickettotaal af te drukken gaan we op basis van de query KAS-qryTicketTotaal een klein formuliertje maken. Via het <Eigenschappenvenster> verbinden we deze query aan een blancorapport dat we maken via <Maken><Rapportontwerp>. Dit doen we door in het 25 Frank Van Oost

<Eigenschappenvenster> van het formulier, in het tabblad <Gegevens> de bovenstaande query als recordbron op te geven. Via de knop <Bestaande velden toevoegen> zie ik het enige veld "SomVanLijnTotaal" en sleep ik dat op het blanco formulier. We passen de lay-out wat aan tot onderstaand voorbeeld en bewaren het rapport als KAS-rptTicketTotaal. We gaan nu op het andere rapport "KAS-rptKasTicket" gaan we dit formulier als subformulier slepen in de RapportVoettekst. We verwijderen de label van dit subrapport en passen de lay-out van het subrapport wat aan zodanig dat bij de afdruk het totaal mooi op het ticket verschijnt. Als eindresultaat krijgen we dan : 26 Frank Van Oost

Om het ticket nu af te drukken doen we een aanpassing aan de macro KASmcrKasBeheer.AfdrukkenKasTicket. Submacro in KAS-mcrKassaBeheer.AfdrukkenKasticket submacro Actie Argument AfdrukkenKasTicket QueryOpenen KAS-qryOpslaanTicketGegevens deze actie toevoegen : RapportOpenen KAS-rptKasTicket - Beeld : afdrukken MacroStarten KAS-mcrKassaBeheer.BestellijnLeegMaken NaarBesturingselement txtartikelnummer QueryOpnieuwUitvoeren KAS-frmOverzichtBestellijnenHuidigTicketNummer QueryOpnieuwUitvoeren KAS-frmTicketTotaal Het rapport wordt nu automatisch op de standaardprinter afgedrukt waarna alles op blanco gezet wordt en een nieuwe ticketnummer aangemaakt wordt. Op dat moment kunnen we met een nieuwe bestelling beginnen. 27 Frank Van Oost