Een "thin client" in Delhpi

Dit zijn enkele afbeeldingen van de meer dan 70 schermen van een backoffice dat een heel bedrijfsproces beheert.

Het is geprogrammeerd in Delphi en is een "thinclient" opzet, het programma heeft alleen interface logica. Bijvoorbeeld bij het opslaan van data wordt de validatie op webserver gedaan, bij een foutive invoer geeft de reponse informatie welk veld welke type fout heeft. De acties worden naar de (PHP) webapplicatie gepost, en het antwoord is in XML.

Hoofdscherm

De opzet is op basis van "tabs" en er is verder geen hoofmenu. Dit voorkomt zoeken in menu's, beperkt het aantal gestapelde vensters en venster acties. Het standaard sluit icoon is uitgezet, deze actie is veplaatst naar een knop "Stop" aan linkerkant, dit voorkomt het onbedoeld afsluiten van programma. De statusbalk onderin geeft aan wie er ingelogd is.

Login

Er moet ingelogd worden op de applicatie. Laatst ingevoerde email adres wordt onthouden. Wanneer de "test" checkbox wordt aangevinkt dan wordt de testserver gebruikt voor het testen. De testserver heeft een database die eens per dag wordt overschreven met de produktie database.

 

Updates

Een apart programma kan gestart worden om een nieuwe update van de webserver te halen. Programma vergelijkt versies en controleer of programma niet actief is.

 

Overzichts (lijst) schermen

De overzicht schermen hebben overal dezelfde opmaak; links een grid en rechts een panel met mogelijk een zoekfunctie, selectie filters, knoppen voor de acties en "pagina" navigatie. Dubbelclick op grid opent een detail (modal) venster, ctrl-dubbelclick levert een debugscherm. Sommige lijsten worden direct bij opstarten geladen, andere (grotere samengesteld datasets) pas bij aanklikken "tab".

Personen

Overzicht

[top]
Het openen van een detail scherm is hier anders, er wordt een extra tab geopend (wanneer al geopend dan geselecteerd). Op deze manier kan er snel geschakeld worden tussen personen zonder deze steeds weer opnieuw te moeten opzoeken. Hier kan gezocht worden op postcode (optioneel in combinatie met huisnummer), telefoon, naam, klantnummer.

 

Detail

[top]
Dit scherm toont alle gegevens van een persoon. De basis gegevens van de persoon worden via een click op de knop "wijzig" in een nieuw modal venster gewijzigd. Een click op de knop "Toon wijzigingen" links onder geeft aan welke gebruiker wat en waneer gewijzigd heeft van deze gegevens. Het vak "woning" geeft aan welke woning gekoppeld is. Een woning is niet zo maar even een adres wat gekoppeld wordt, er wordt een speciaal transactie log bijgehouden over wanneer een woning ontkoppeld is van- en gekoppeld is aan een persoon. Via een woning is dus te acherhalen wie er gewoond heeft, en via persoon waar deze gewoond heeft.

 

Orders

Overzicht

[top]
Het orderscherm is opgesplitst in produkt orders en onderhouds orders omdat deze sterk van elkaar verschillen kwa eigenschappen en route, wel delen ze hetzelde detailscherm waarin onderdelen aan en uit gezet worden op basis van ordertype.

 

Detail

[top]
 

Orderregel toevoegen

[top]
Aan een order kunnen produkt regels en "tekst" regels worden toegevoegd, hier getoond invoer scherm produkt regel.

 

Beheer produktgevens

De admin beheert van de produkt gegevens: merk, serie en produkt. De merken en series hebben eigen "tab" en invoer. Hier getoond; het wijzigen van "NL" specifieke eigenschappen van een product.

 

Boekhouding

Onder de tab "boekhouding" staan de betaalherinneringen, de geimporteerde "afschriften" en de incasso batches. Het bankafschift (een mt940 bestand) is leidend. Elke credit regel moet "gematched" worden met een order of incassobatch. Door aanklikken van de button "run match" zal het systeem (de webapplicatie) zoveel mogelijk matches maken. Deze selectie kan bekeken worden onder tab "matchen". Daar worden de matches bevestigd of gecorrigeerd en zullen de gekoppelde orders de betaalstatus "betaald" krijgen en wordt er voor elke order een betaalregel gemaakt. Hier getoond scherm met door systeem gemaakte incasso batches.

 

Selecties

De gebruiker kan zelf op een gebruiksvriendelijke manier selecties maken op de database en opslaan onder een naam. De selecties bestaan uit 1 of meer regels die kunnen worden toegevoegd. Een regel bestaat uit een veld, een voorwaarde en een waarde. De velden zijn bestaande entiteit velden of berekende velden (bv. aantal orders per klant). De selecties kunnen worden geexporteerd naar een csv bestand.

 

Data wijzigingen

Hier worden alle wijzigen getoond die er gemaakt worden in het systeem. Dus wie heeft wat wanneer gewijzigd en wat was de vorige waarde.

 

Monitoren crontaken

Er zijn een tiental achtergrondtaken. Bij een probleem is de eerste stap te contoleren of alle taken nog om de zoveel tijd draaien en of ze in de juiste status geeindigd zijn. Zo niet dan met dubbelclick de taak openen en het log bekijken.

Hier afgebeeld een log van de taak "handle_orders".

 

Beheer pagina's

Bij een pagina kan de positie en plaats en website worden aangevoerd. Er kan gebruik gemaakt worden van de paragraaf indeling zoals ik vaker toegepast heb (bv. dit document). De paragrafen splitsen zich aan de voorkant in meerdere pagina's en de url navigatie is op basis van paragraaf titels.

Hier afgebeeld; pagina scherm met afbeelding selectie scherm. De getoonde afbeelding komen uit album op server. Na de selectie van een afbeelding wordt een tag in de tekst toegevoegd.

 

Debug informatie

Om een applicatie te kunnen debuggen of optimaliseren is informatie nodig. Hiervoor 2 schermen.

Entity data scherm

[top]
Dit scherm, dat geopend wordt bij ctrl-dubbelclick op een data grid, toont de waardes van de object properties en de database velden van de entiteit die geladen wordt met het opvraagde ID (uit record van actieve grid rij).

Request / response scherm

[top]
Dit scherm toont de request parameters en de response XML. Er word ook query informatie meegegeven; aantal en tijdsduur, zo is de SQL / database te optimaliseren.