Functies voor import

Navigation:  Uitbreiding commercieel beheer > Artikelimportwizard > Stap 4: Koppelingen > Bewerk koppeling >

Functies voor import

Previous pageReturn to chapter overviewNext page

In principe zijn alle in Foxpro (DBFACTw is ontwikkeld in Microsoft Foxpro) gebruikt worden. Hier worden een aantal frequent gebruikte formules gedocumenteerd.

 

 

String (karakter) functies

 

Eenvoudige functies om karakterreeksen (strings) te manipuleren:

 

ALLTRIM(str)

Wordt gebruikt om er zeker van te zijn dat alle 'blancs' of spaties verwijderd zijn uit een bepaalde string.

UPPER(str)

Wordt gebruikt om kleiner karakters om te zetten naar grote karakters ( a à A )

LOWER(str)

Wordt gebruikt om grote karakters om te zetten naar kleine karakters ( A à a )

LEFT(str,n1)

Verkleint een bepaalde string zoals hij gedefinieerd wordt.

 

Voorbeeld:

LEFT("wasmachine",4) = "wasm"

 

RIGHT(str,n1)

Geeft de meest rechtse karakters weer van een bepaalde string. Opgelet: bij het inlezen komt voor dat de rechtse karakters eigenlijk alleen maar 'spaties' zijn. Deze kunt u best eerst verwijderen met de functie 'alltrim'

 

Stelt dat ARTIKEL = wasmachine

Dus       RIGHT(wasmachine van Whirlpool, 4) à pool  (geeft enkel de laatste 4 karakters weer)

SUBSTR(str,n1,n2)

Hier kan de lengte van een bepaalde string mee bepaald worden.

 

Stelt dat ARTIKEL = wasmachine

Dus       SUBSTR(artikel, 1, 5) à wasma  (wordt verkleind tot 5 karakters)

OF

SUBSTR(artikel,6) à chine (wordt weergegeven vanaf 6de karakter)

STRTRAN(str1, str2, Str3)

Hiermee kan je bepaalde onderdelen van of volledige stringen laten veranderen naar een vooraf gedefinieerde string of onderdeel daarvan.

 

Voorbeeld:

ARTIKEL = abracadabra

Dus      STRTRAN(artikel, 'a', 'z') à zbrzczdzbrz  (alle a's zijn veranderd in z)

ALLTRIM(str)

Verwijdert alle spaties voor én achteraan een bepaalde karakterreeks

 

Voorbeeld:

Stelt dat ARTIKEL = WH710PLOP & OMSCHRIJVING =         WASMACHINE

Dus      artikel+omschrijving à WH710PLOP         WASMACHINE (spaties voor wasmachine blijven weergegeven)

Dus      artikel+LTRIM(omschrijving) à WH710PLOPWASMACHINE (spaties voor wasmachine zijn verdwenen)

REMTXT(str1)

Verwijder alle leestekens, zet alles om naar grote karakters en verwijdert alle spaties.

 

Voorbeeld:

Stelt dat ARTIKEL = DBFACTw is praktisch, polyvalent en enorm uitgebreid !

Dus       REMTXT(artikel) à DBFACTWISPRAKTISCHPOLYVALENTENENORMUITGEBREID  (je ziet hier duidelijk dat alle leestekens, spaties verwijderd zijn en dat alles is omgezet naar grote karakters.

RemoveLeadingZeros(str1)

verwijderen alle 'nullen' vooraan een karakterreeks.

RemoveTrailingZeros(str1)

verwijderen alle 'nullen' achteraan een karakterreeks.

 

 

Functies combineren: door gebruik van haakjes, kan men zelfs functies combineren. Een voorbeeld:

 

upper(left("Wasmachine",4))  geeft   "WASM"

 

 

Numerieke functies

 

+ / - * en ()

DBFACTw kan perfect een combinatie van de standaard rekeningfuncties gebruiken, evenals het gebruik van haakjes om de nodige prioriteiten in berekeningen toe te laten.

int(n1)

Verwijdert alle cijfers na de komma van een bepaald getal

ceiling(n1)

Indien een getal cijfers na de komma heeft, zal het programma automatisch het getal afronden naar het juist hoger gelegen geheel getal.

 

Bij voorbeeld:

ceiling(3) = 3

ceiling(15.3) = 16

ceiling(-13.4) = 13

round(n1, n2)

Deze handige functie rondt een getal af volgens het principe van 4/5den. Het tweede getal duidt aan op hoeveel cijfers men wenst af te ronden. Voorbeeld: staat daar 0, dan zal DBFACTw het getal afronden op de eenheid. Om te weten of er afgerond moet worden naar boven of beneden, wordt gekeken naar het eerst volgende cijfer, in dit geval het eerste cijfer na de komma. Een ander typisch gebruik is met n2 = 2, om af te ronden op de eurocent. In dat geval wordt gekeken naar het derde cijfer om te evalueren of er naar boven of naar beneden moet afgerond worden.

 

Enkele voorbeelden:

round(134.3, 0) = 134

round(134.5, 0) = 135

round(134.6, 0) = 135

round(134.3343433 , 2 ) = 134.33

round(134,3351001, 2 ) = 134.34

 

 

Protip

Stel dat je een bedrag wilt laten afdronden op een éénheid, dan gebruik je de formule:

 

Round (bedrag, 0)

 

Dan wordt het bedrag afgerond op 0 cijfers na de komma (en wel afronden, dit is bij 4 naar beneden, bij 5 naar boven)

 

Dit truukje kun je ook gebruiken voor afronding op 1/20ste! Deel het bedrag bijgevolg eerst door 20, en daarna weer vermenigvuldigen.

 

Round (bedrag *20, 0) / 20

 

Afronden op 1/4, dus een getal zal eindigen op .00, .25, .50 of .75:

Round (bedrag * 4, 0) / 4

 

 

 

 

 

Conversiefuncties

 

Moeilijker is het als de geïmporteerde gegevens niet overeenstemmen qua type variabele. Daarvoor bestaan conversiefuncties. Hier worden er enkele besproken.

 

val(str)

Een karakterreeks wordt omgezet naar een numerieke waarde. DBFACTw scant positie per positie (eerste spaties worden overgeslagen), en tot dat er een 'puntje' staat, wordt de waarde 'opgebouwd'. De cijfers na het puntje worden automatisch gebruikt voor de decimalen.

 

Opgelet: bij gebruik van deze functie kunt u best controleren of de cijfers na de komma ook netjes meegenomen worden in de import. Indien niet, kunt u best de tip gebruiken om een spreadsheet te bewaren als Foxpro/dBase bestand

str(n1, n2, n3)

Doet juist het omgekeerde: zal van een waarde een karakterreeks maken. De waarde is n1, de lengte van de karakterreeks is n2, en het aantal decimalen te gebruiken vindt men in n3 terug. Deze laatste is bovendien een 'optionele' argument. U hoeft deze niet te gebruiken.

padr(n1,n2)

'Padding' betekent eigenlijk het aanvullen van spaties. Het getal wordt 'aangevuld' met spaties totdat het de lengte van n2 karakters bevat.

 

 

Krachtige controlerende structuren

 

Opgelet: het gebruik van deze functies veronderstelt minstens een degelijke kennis van geavanceerde Excel functies, of enige programmeerkennis. Verdere uitleg, vindt u ook onder foxpro bij de website van microsoft terug.

 

IIF(conditie, wrde1, wrde2)

Bekend als 'Inline' if, of 'IIF' bij Excel. Bij Nederlandse versies van Excel, spreekt men over de 'ALS'-functie.

Deze functie bevat drie argumenten:

1.de conditie: een evaluatie wordt gedaan, bv. bedrag> 13. Dergelijke evaluatie heeft slechts twee mogelijke uitkomsten: waar of onwaar. Indien de uitkomst war is, wordt wrde1 verkregen, indien de uitkomst onwaar is, wordt de wrde2 bekomen

2.wrde1: een uitdrukking, als resultaat verkregen indien de berekende conditie 'waar' blijkt te zijn.

3.wrde2: een uitdrukking, als resultaat wordt verkregen indien de berekende conditie 'onwaar' krijgt.

 

Voorbeeld van een verkoopprijs, die afhankelijk van een groep anders wordt berekend:

 

IIF( groep = "LC", inkoop  * 1.4, inkoop * 1.3)

 

Ingeval de ingelezen rij tot de groep 'LC' behoort, wordt de verkoopprijs berekend, met een markup van 40 %, in àlle andere gevallen wordt 30 % gebruikt.