Query onderhoud

Een query is een intelligente zoekactie die opgeslagen en gekoppeld kan worden aan een rapportdefinitie. In dit artikel worden de verschillende onderdelen en instellingen van een query beschreven.

Query's worden net als rapportdefinities ook vanuit de module Rapportenbeheer aangemaakt en onderhouden. Hiervoor dient de weergave binnen Rapportenbeheer op 'Queries' te staan:




Kies bij het dropdown onder kopje 'Gegevens', in plaats van 'Rapporten' voor de optie 'Queries'. Het scherm 'Rapporten beheer' zal nu de menu-opties tonen voor het aanmaken, onderhouden en verwijderen van de query's. Kies voor een query en klik op de knop Wijzig of kies voor Nieuw om een nieuwe query op te bouwen. Net als voor rapportdefinities geldt dat je een MKG standaardquery alleen kunt inzien.


Onderhoud query

In het scherm 'Onderhoud query' worden onder andere de omschrijving en categorie van de query vastgelegd. Dit scherm kan geopend worden door het aanpassen van een bestaande query of door het aanmaken van een nieuwe query. Gebruik de verschillende submenu’s onder de query voor het vastleggen van aanvullende eigenschappen. Een submenu opent en sluit door op het bijbehorende donkergrijze vlak dubbel te klikken. Via de OK-knop worden de aanpassingen opgeslagen.

Het submenu Groepering is een historische functie die niet meer gebruikt wordt, daarom zal dit submenu niet beschreven worden.




Tabellen

Klik op de knop Toevoegen voor het toevoegen van een tabel binnen het query-onderhoud. In het overzicht van databasetabellen kan een tabel gekozen worden. Let op: de nieuwe tabel wordt gekoppeld onder de vooraf geselecteerde tabel.




  • Aantal kopieën. De bovenste tabel in een query kan een kopieaantal meekrijgen waarmee de uiteindelijke print één of meer kopieën oplevert. Standaard is de waarde 0, dus worden er geen kopieën aangemaakt.
  • Alias. Standaard wordt dit veld gevuld met de tabelcode, bijvoorbeeld 'ibsh' voor de tabel Inkoop bestelopdracht. Aanpassen kan ook, aangezien een tabel soms meerdere keren opgenomen dient te worden in een query. Voor de duidelijkheid kan, voor het vereenvoudigen van het gebruik van deze tabel in een Crystal Reports lay-out, een eigen omschrijving aan de tabel worden toegevoegd. Een alias van een tabel moet binnen een query uniek zijn.

Relatie voorwaarden

Indien de toegevoegde tabel een extra tabel is, dan wordt door MKG gekeken of er een standaardkoppeling bestaat vanuit de tabel waarmee gekoppeld wordt.




  • Kolom 'Relatie van'. De velden van de bovenliggende tabel worden hier getoond.
  • Kolom 'Relatie met'. De velden van de geselecteerde tabel worden hier getoond.
  • Toevoegen. Na het kiezen van een veld in de kolom Relatie van en Relatie met wordt de knop Toevoegen actief. Na het toevoegen wordt in het onderliggende scherm de koppeling getoond.
  • Verwijder. De knop Verwijder wordt actief als er een koppeling is geselecteerd. Door op deze knop te klikken wordt de koppeling verwijderd.
  • Herstel default. Hiermee worden de standaardkoppelingen tussen de tabellen hersteld.
  • Zoek. Met 'Ieder voorkomen' wordt gekozen om alle records op te nemen, ook als de tabel meerdere keren voorkomt voor de bovenliggende tabel. Met 'Eerste voorkomen' wordt alleen het eerste record van de tabel opgenomen, ook als deze vaker voorkomt.
  • Left outer join. Mits aangevinkt wordt hiermee aangegeven dat de gekoppelde tabel een verplicht aanwezig record moet hebben. Zo niet, dan wordt de bovenliggende tabel niet opgenomen. Zonder vinkje hoeft de tabel geen waarden te hebben en wordt de bovenliggende tabel toch opgenomen.

Selectie voorwaarde

Om een query alleen de benodigde data te laten ophalen kan een selectie worden aangegeven. Er kan hierbij gebruik worden gemaakt van alle in de query opgenomen velden. Door een voorwaarde te stellen aan de inhoud van het veld kunnen de gegevens gefilterd worden. Ook kan de voorwaarde, bij het uitvoeren van het rapport, ingevuld worden door de gebruiker van het rapport.




  • Kolom 'L'. Geef in deze kolom de waarde 'en', of 'of' om aan te geven hoe de selectieregels onderling verband houden. Standaard zal hier de waarde 'en' ingevuld worden bij het maken van een selectieregel.
  • Kolom 'Veld'. In deze kolom kan via het driehoekje een databaseveld geselecteerd worden.
  • Kolom 'Voorwaarde'. Met een voorwaarde wordt aangegeven welke soort vergelijking gebruikt wordt. Afhankelijk van het type veld staan vaste voorwaarden ter beschikking. Bijvoorbeeld bij datumvelden de voorwaarde “afgelopen jaar” en bij tekstvelden de voorwaarde “bevat”.
  • Kolom 'Waarde'. Waarde invullen waarmee het veld wordt vergeleken.
  • Kolom 'Lijst'. Net als bij parameters in de rapportdefinitie is het hier mogelijk naar een keuzelijst te verwijzen. Bij het uitvoeren van het rapport kan de waarde via deze keuzelijst ingevuld worden.
  • Kolom 'P'. Bevat de waarde 'A', 'J' of wordt weggelaten:
    • Afvragen. Ingeven wanneer het rapport altijd de selectie moet afvragen.
    • Ja. De waarde afvragen, maar alleen als de waarde niet bekend is. Wanneer MKG de waarde zelf kan bepalen, zal de waarde automatisch gevuld worden.
    • De kolom leeg laten indien de selectie niet opgevraagd moet worden.

Velden

Door de databasevelden toe te voegen aan de query zal binnen Crystal Reports gebruik kunnen worden gemaakt van deze velden. Bedenk hierbij dat in de xml alleen de relevante velden moeten zitten om de performance optimaal te houden. Meer velden zal het xml-bestand vergroten.




  • Kolom 'Beschikbare velden'. Hier worden alle beschikbare velden van de gekozen tabel getoond.
  • Toevoegen. Kies een veld in de kolom 'Beschikbare velden' en klik vervolgens op de knop Toevoegen.
  • Kolom 'Gekozen velden'. Gekozen velden worden hier getoond (en bij uitvoeren in het xml-bestand opgenomen).
  • Verwijderen. Verwijder een veld door dit te selecteren en de knop Verwijderen te klikken.
  • Toon. Kies in het dropdown of de velden getoond worden met hun omschrijving, de technische veldnaam, of allebei.
  • Sla resultaten op in eigen tabel. Gebruik optioneel een eigen tabel als de gekozen velden meerdere keren voorkomen per bovenliggend record. Hierdoor zou een xml veel dubbele informatie gaan bevatten en dat betekent een grote vertraging van het rapport, indien er veel records in de bovenliggende tabel gevonden worden.

Door in de kolom 'Beschikbare velden' te dubbelklikken op een veld kun je deze direct toevoegen. Ook is het mogelijk om door middel van Ctrl of Shift meerdere velden tegelijk te selecteren en toe te voegen.


Functies

Functies binnen een query zijn bijzondere, voorgeprogrammeerde formules van bijvoorbeeld artikelaantallen of onderhanden werk waarden. Een functie voor voorraadaantallen wordt bijvoorbeeld gebruikt om aan een artikeltabel te koppelen. Een functie kan alleen gebruikt worden op tabellen die in een query op het eerste niveau toegevoegd zijn. Wanneer de focus op deze tabellen staat zal het submenu Functies verschijnen:




Door te dubbelklikken op het submenu Functies wordt het 'Functie onderhoud' scherm geopend:




  • Kolom 'Beschikbare functies'. Hier kunnen de functies geselecteerd en toegevoegd worden voor gebruik in het rapport.
  • Kolom 'Gekozen functies'. Hier worden al toegevoegde functies gepresenteerd. Nadat een functie gekozen is kunnen de functie parameters ingevuld worden. Dit kan in het submenu Parameters. Een functie heeft vaste parameters waarvan de waarde gevoed kan worden door de selecties van de gekoppelde tabel. De functie wordt namelijk per gevonden record van de hoofdtabel opnieuw uitgevoerd. Door op het driehoekje te klikken is aan te geven door welk databaseveld de parameter gevuld moet worden. Ook kunnen er een aantal systeemwaarden gekozen worden, zoals de huidige datum.



Nadat de functie gekozen en gekoppeld is kunnen de velden gekozen worden in het submenu Velden. Dit is gelijk aan de al beschreven veldselectie van een query:




Wanneer het rapport uitgevoerd wordt zal het xml-bestand de velden bevatten die in de functie zijn opgenomen. Deze velden worden binnen de gekoppelde tabel geplaatst. Indien het vinkje 'Sla resultaten op in eigen tabel' aan staat, zullen de velden van de functie in een aparte tabel geplaatst worden met als tabelnaam de code van de functie, bijvoorbeeld 'F0012' voor de functie 'Productie NC waarden'.


Rapportage: index


Gerelateerd