Ad-hoc importbestanden voor bijvoorbeeld Ms-Word of Ms-Excel
Het programma om ad-hoc importbestanden te kunnen maken is nieuw in release 5.6 van Basta. In de releasedocumentatie wordt beschreven hoe u dit programma activeert door het op een vrije plaats in het menu op te nemen. Dit programma maakt gebruik van de database met de bestandsindelingen uit de module 'euroconversie'.
Met dit programma kan een ad-hoc importbestand aangemaakt worden. De stuurgegevens, die bepalen hoe het ascii-tekstbestand samengesteld is, worden ook voor later gebruik opgeslagen. Op de laatste regel van het scherm wordt zoveel mogelijk aanvullende informatie gegeven.
De manier waarop het ascii-tekstbestand opgebouwd wordt, komt overeen met de zogenaamde CSV-standaard ('Comma Seperated Values'), met dien verstande dat voor het scheidingsteken gekozen kan worden uit de komma, de puntkomma of het TAB-teken.
Vanaf versie 2.78 van het Algemeen lijstprogramma kan vanuit dat programma ook gebruik gemaakt worden van de ad-hoc manier van aanmaken van ascii-tekstbestanden, zowel handmatig als via de batchverwerking van het Algemeen lijstprogramma.
Ingeven van de stuurgegevens voor een importbestand
![]()
Ingave: - Naam tbv ascii max. 6 A/N Onder deze naam worden de stuurgegevens opgeslagen in het bestand met stuurgegevens. Met functietoets F3 kan naar de al aanwezige indelingen gezocht worden. Met functietoets F1 kan men naar het toevoegen of wijzigen van de bestandsindelingen gaan. Bestaat de indeling al, dan volgt de keuze "<M>=Mute- ren; <V>=Verwijderen; <A>=Aanmaken; <RETURN>=Naar naam ind.". Met M kunnen de stuurgegevens gewijzigd worden, met V kunnen de stuurgegevens van deze indeling verwijderd worden en met A kan naar het aanmaken van het importbestand gegaan worden zonder de stuurgegevens te wijzigen. Ingave: - Bestandsnaam van het bestand max. 6 A/N Vanuit het opgegeven bestand en de stuurgegevens is dit programma in staat het gewenste importbestand te produceren. Met functietoets F3 kan een overzicht van de bestan- den, waaruit een keuze gemaakt kan worden, op het beeldscherm opgeroepen worden.
Vanaf versie 5.7 kan tijdens de bestaande functie "zoeken bestand" de <F7>-toets gebruikt worden om de nieuwe functie "Help me met zoeken" te starten. Deze nieuwe functie kan in de database met bestandsindelingen naar bestanden zoe- ken aan de hand van maximaal twee in te geven willekeurige zoektermen. Het maakt niet uit of deze zoektermen met 'HOOFDLETTERS' of 'kleine letters' worden ingegeven. In het geval van twee zoektermen kiest u of beide zoektermen in de betreffende bestandsindeling aanwezig moeten zijn (de tweede zoekterm achter 'en:' invullen) of dat één van beide termen aanwezig moet zijn (de tweede zoekterm achter 'of:' invullen en de zoekterm achter 'en:' leeg- laten). Vervolgens wordt de database doorgelezen en toont het programma alle bestanden, waarin de ingegeven zoek- termen volgens de gekozen selectie aanwezig zijn. De ge- vonden veldomschrijving(en), de bestandsnaam, de pakket- letter en de omschrijving van het bestand worden getoond. Uiteraard is vooruit en achteruit bladeren mogelijk. Selecteert u een bepaalde bestandsindeling voor gebruik, dan worden bestandsnaam en pakketletter mee teruggenomen naar het ingaveveld, waarop de oorspronkelijke zoekfunctie gestart werd. Via de <F3>-toets kan in deze zoekfunctie een andere zoekterm geprobeerd worden en via de <F4>-toets kan teruggegaan worden naar de plaats waar <F7> gegeven werd in het zoekscherm voor de bestanden. Ingave: - Pakketletter (mogelijke waarden: A = Agfta, 1 A/N B = Basta, D = Drankta, K = Kavta, M = Meuta). Met functietoets F3 kan naar de aanwezige pakket- ten gezocht worden. Ingave: - Omschrijving max. 60 A/N Hier kan de omschrijving van het importbestand worden ingegeven. Deze naam wordt alleen voor uw gemak opge- slagen, maar komt niet in het importbestand terecht.
Na een keuze ingaven goed (respectievelijk J of N ingeven) wordt het volgende programma-onderdeel, invoer mee te nemen velden, gestart.
Invoer mee te nemen velden
![]()
Op het scherm verschijnt de indeling van het gekozen bestand. Met functietoets F1 kan door de bestandsindeling in het linkerdeel van het beeldscherm "gebladerd" worden. Ingave: - Veldnummer van het mee te nemen veld 2 N De in het importbestand mee te nemen velden kunnen ingegeven worden. De volgorde van de velden is vol- komen vrij. Het veldnummer, dat ingegeven moet wor- den, staat in de kolom onder "Nr.". De geselecteerde velden staan in het rechterdeel van het beeldscherm. Opmerking: Datumvelden met de formaten DDMMJJ, DDMMEEJJ, JJMMDD of EEJJMMDD worden voor het ascii-tekstbestand omgezet naar het DD-MM-JJ of DD-MM-EEJJ formaat, afhankelijk van de lengte van het veld (6 of 8 posities). Is een datumveld in een bestand nog leeg, dan wordt in het ascii-tekstbestand geen '0' opgenomen, maar blijft het betreffende veld ook leeg. Zowel Excel als Access kun- nen dan beter met de betreffende velden als datumvelden omgaan. Datumvelden zijn te herkennen aan de tekst "*D*" of "*d*" in de veldomschrijving. Met functietoets F4 kan dit programma-onderdeel verlaten worden, en wordt het volgende onderdeel, invoer velden horizontale telling, gestart.
Invoer velden horizontale telling
In dit programma is het mogelijk om per verwerkt record uit een bestand een horizontale telling te maken. De vraag "Wilt u van bepaalde velden een horizontale telling?" moet dan met J beantwoord worden. Wordt deze met N beantwoord, dan wordt het volgende programma-onderdeel, invoer sorteer/selectievelden, gestart.
![]()
Ingave: - Omschrijving horizontale telling max. 20 A/N Hier kan de omschrijving van de horizontale telling worden ingegeven. Deze omschrijving is alleen voor uw gemak en wordt niet in het importbestand opgeno- men.
![]()
Ingave: - Veldnummer van het te tellen veld 2 N De in de horizontale telling te verwerken velden kunnen ingegeven worden. De geselecteerde velden staan in het rechterdeel van het beeldscherm. Als een veld van de telling afgetrokken moet worden, dan moet het veld met functietoets F3 worden ingege- ven. Achter het veldnummer wordt dan een "-" afge- beeld. Let op! Creditvelden in de records van een be- stand hebben meestal van zichzelf al een minteken. Deze hoeven dus niet met F3 ingegeven te worden. Ook is het mogelijk om een vermenigvuldiging uit te laten voeren binnen de horizontale telling. Het veld waarmee de tot op dat moment opgebouwde telling ver- menigvuldigd moet worden, moet met functietoets F7 worden ingegeven. Achter het veldnummer wordt dan een "*" afgebeeld. Op gelijke wijze kan met functietoets F8 de tot op dat moment opgebouwde telling door een veld gedeeld worden. Achter het veldnummer wordt een "/" afgebeeld. Met functietoets F9 kan een percentage-berekening uitge- voerd worden. De tot op dat moment opgebouwde telling wordt dan uitgedrukt in een percentage van het opgege- ven veld. Het resultaat gaat de horizontale telling in. Met functietoets F4 kan dit programma-onderdeel verla- ten worden, en wordt het volgende onderdeel, invoer sorteer/selectievelden gestart.
Invoer sorteer-/selectievelden
![]()
In dit programma is het mogelijk om tijdens het verwerken op maximaal 2 velden te sorteren en/of maximaal 5 velden te selecteren. De vraag "Wilt u tijdens het verwerken sorteren en/of selecteren?" moet dan met J beantwoord worden. Wordt deze met N beantwoord, dan wordt het volgende programma-onderdeel, het eventuele aanmaken van het importbestand, gestart.
Normaal gesproken wordt de records in het importbestand geschreven in de volgorde van de sleutel van het gelezen bestand. Moet het importbestand in een andere volgorde worden gevuld, dan kunnen 1 of 2 sorteervelden worden opgegeven. Hoeft geen sortering plaats te vinden, dan kunnen de sorteervelden via functietoets F7 overgeslagen worden.
Moet niet het hele bestand worden verwerkt, maar een deel, dan kunnen maximaal 5 selectievelden worden opgegeven. Bij het aanmaken van het importbestand zelf wordt om de grenswaarden gevraagd ("van" en "t/m"), hier wordt alleen bepaald op welke velden geselecteerd moet gaan worden.
![]()
Ingave: - Veldnummer van het sorteer- of selectieveld 2 N De sorteer- en selectievelden kunnen ingegeven worden. De geselecteerde velden worden in het rechterdeel van het beeldscherm getoond. In de handleidingregels wordt aangegeven welk veld gevraagd wordt (sorteerveld 1, sorteerveld 2, selectieveld 1 t/m 5). Na de ingave van een sorteerveld wordt de vraag "Op dit veld in omgekeerde volgorde sorteren?" gesteld. Wordt hierop met J beantwoord, dan wordt achter het veldnummer een "U" afgebeeld. Aan deze "U" is te her- kennen dat het om omgekeerd sorteren gaat. Bij normaal sorteren wordt een "S" achter het veld afgebeeld. Achter een selectieveld wordt altijd de letter "T" af- gebeeld. Als op de horizontale telling gesorteerd of geselec- teerd moet worden, dan is het voldoende om bij de keuze van het betreffende veld functietoets F3 te drukken. Als veldnummer wordt in dat geval "99" afge- beeld. Naast een selectie op een vast veld is ook een selec- tie op een willekeurig zoekgegeven mogelijk. Bij het betreffende selectieveld moet dan functietoets F8 gedrukt worden. Bij het verwerken wordt in dit geval niet om een "van" en een "t/m" waarde gevraagd, maar om het betreffende zoekgegeven. Een zoekgegeven is niet gebonden aan een bepaald veldnummer, maar mag over- al staan. Als veldnummer wordt wel "97" afgebeeld, maar het programma weet daardoor dat het om een willekeurig zoekgegeven gaat en zoekt alle veldnummers na of ergens het ingegeven zoekgegeven staat. Moet een sorteer- of selectieveld overgeslagen worden, dan kan dat met functietoets F7 gedaan worden. Met functietoets F4 kan dit programma-onderdeel verla- ten worden, en wordt het volgende onderdeel, de invoer van het scheidingsteken en het decimaalsymbool, gestart.
Invoer scheidingsteken tussen de velden in het importbestand
![]()
Voor het scheidingsteken tussen de velden van het importbestand kunt u kiezen uit de genoemde mogelijkheden. De te maken keuze is afhankelijk van het scheidingsteken dat het pakket, waarin u het importbestand wilt verwerken, verwacht. Een pakket als Ms-Excel kan met alle mogelijkheden overweg, maar als 'default'-waarde voor het scheidingsteken staat (meestal) de 'TAB' ingesteld.
Invoer decimaalsymbool numerieke velden
![]()
Voor het decimaalsymbool in numerieke velden kan tussen de punt (Amerikaanse notatie) en de komma (Europese notatie) gekozen worden. De te maken keuze is ook hier afhankelijk van het decimaalsymbool dat het pakket, waarin u het importbestand wilt verwerken, verwacht. Een pakket als Ms-Excel kijkt bijvoorbeeld naar het decimaalsymbool dat in de landinstellingen in het configuratiescherm van de pc is vastgelegd. Het programma controleert of het decimaalsymbool en het scheidingsteken tussen de velden niet dezelfde tekens zijn.
Invoer wel of geen omschrijving boven de kolommen
![]()
Met deze keuze kunt u aangeven of in het importbestand boven de kolommen (dus in de eerste horizontale rij van de spreadsheet) de omschrijving van de geselecteerde velden, zoals 'Debiteurnummer', 'Naam' enzovoort, moet worden opgenomen.
De keuze 'Wel of geen omschrijving boven de kolom' is inmiddels uitgebreid met keuze 3: 'Voor Access: wel omschrijving boven de kolom, alleen letters, cijfers en spaties worden overgenomen'. Bij deze keuze worden alle overige tekens, zoals punten en streepjes, niet meegenomen in de kolomomschrijvingen in het ascii-tekstbestand. Ook gegevens als '*D*' en '*d*', die in de veldomschrijvingen kunnen staan, worden weggelaten.
Het starten van het aanmaken van een importbestand
![]()
Nadat de gegevens voor een overzicht vastgelegd zijn, kan het importbestand aangemaakt worden. De keuze "<A>=Ascii-bestand aanmaken; <RETURN>=Naar naam indeling" moet dan met A beantwoord worden. Wordt deze met RETURN beantwoord, dan gaat het programma terug naar het Ingeven van de stuurgegevens voor een importbestand en wordt (nu nog) niets aangemaakt.
Het aanmaken van het importbestand
Met dit programmadeel wordt aan de hand van de stuurgegevens het importbestand aangemaakt. Het programma begint met het vragen om de eventueel in te geven selecties.
Ingeven van de selecties
Alleen als bij de stuurgegevens is opgegeven, dat selectie op bepaalde velden moet plaatsvinden (maximaal 5 velden), dan wordt dit programma-onderdeel uitgevoerd. Is geen selectie nodig, dan gaat het programma verder met het eventuele sorteren van het opgegeven bestand.
![]()
Per selectie op een veld (kan maximaal 5 keer ) de volgende ingaves:
Ingave: - Selectie op <Naam veld> 1 A/N Deze vraag met J of N beantwoorden. Wordt voor 'N' gekozen, dan vindt op dit veld geen selectie plaats. Bij de tweede en volgende selectie kan men via functie- toets F2 naar het vorige selectieveld terugkeren. Ingave: - Van <Naam veld> max. lengte uit bestandsindeling Met functietoets F2 terug naar de vorige ingave. Ingave: - T/m <Naam veld> max. lengte uit bestandsindeling Met functietoets F2 terug naar de vorige ingave.Na een keuze of de selectiegegevens goed zijn (respectievelijk J of N ingeven) wordt het volgende programma-onderdeel, de sortering, gestart.
Opmerkingen over dit deel van het programma:
Als voor selectievelden dezelfde veldnummers zijn ingevoerd, dan voert het programma een "of"-selectie uit: aan maar één van de selecties hoeft voldaan te zijn om verwerkt te worden. Als verschillende velden zijn ingevoerd, dan voert het programma een "en"-selectie uit: aan alle selecties moet voldaan worden om verwerkt te worden. Combinaties zijn toegestaan.
Bij selectie op een alfanumeriek veld is het mogelijk om op een gedeelte van het betreffende veld te selecteren. Als bijvoorbeeld vanaf de vijfde positie geselecteerd moet worden, dan moeten op de eerste 4 posities (zowel bij "van" als "t/m") vraagtekens staan. Bij het selecteren wordt gekeken op welke positie het eerste teken dat niet gelijk aan het vraagteken is, staat. Vergelijking vindt dan plaats vanaf die positie (op een selectie van ????AA t/m ????AZ wordt in het betreffende veld vanaf de 5e positie op AA t/m AZ geselecteerd en wordt de inhoud van positie 1 t/m 4 genegeerd).
Was voor een 'willekeurig zoekgegeven' als selectieveld gekozen, dan wordt niet om een "van" en een "t/m" waarde gevraagd, maar kan een zoekgegeven van maximaal 10 posities worden ingegeven.
Als voor een selectie op veld 25 van het artikelstambestand van Basta gekozen is (waar o.a. de grootboekcode en het crediteurnummer in staan), dan wordt bij de selectie gekeken of twee dan wel zes cijfers zijn ingegeven. Bij twee cijfers wordt automatisch met de grootboekcode vergeleken en bij zes cijfers met het crediteurennummer.
Een moeilijk punt is het volgende: de combinatie van selectieveld 1/sorteerveld 1 en selectieveld 2/sorteerveld 2 bij gebruik van het vraagteken in het selectieveld. Zoals al verteld is, vindt dan selectie pas plaats vanaf de eerste positie na de vraagtekens. Wordt hetzelfde veld ook als sorteerveld gebruikt, dan wordt niet het volledige veld als sorteerveld genomen, maar alleen dat deel van het veld, waar ook op geselecteerd is. In het genoemde voorbeeld wordt dus vanaf de vijfde positie gesorteerd. Hiermee is sortering op een bepaald deel van een alfanumeriek veld (dus alleen in combinatie met "?") mogelijk.
Tip: Als men voor veld 1 (in de meeste bestanden de sleutel van het bestand, bijvoorbeeld het debiteurnummr) verschillende series van dat veld wil verwerken door 3 of 4 keer op hetzelfde veld te selecteren (de zgn. "of"-selectie), dan mag u selectieveld 1 niet daarvoor gebruiken. Bij de invoer van de gegevens voor de indeling dat veld overslaan via de F7-functietoets. Bij gebruik van selectieveld 1 in combinatie met veldnummer 1 wordt een rechtstreekse positionering via de sleutel van het bestand uitgevoerd (snelheid!) en dan kan niet meer gekeken worden of dat veldnummer ook als selectieveld 2, 3, 4 of 5 gebruikt is. Bij gebruik van veldnummer 1 bij selectieveld 2 t/m 5 wordt geen gebruik van deze positionering gemaakt, en dan lukt deze "truc" wel om meerdere series van een sleutelveld te verwerken (maximaal 4 series per importbestand).
Sortering
Alleen als bij de stuurgegevens is opgegeven, dat een sortering moet plaatsvinden, wordt dit programma-onderdeel opgestart. In het andere geval wordt het volgende programma-onderdeel, het vullen van het importbestand gestart.
Als sortering moet plaatsvinden, dan wordt het noodzakelijke sorteerbestand aangelegd en vindt sortering plaats. Na de sortering wordt het volgende onderdeel, het vullen van het importbestand, gestart.
Op het beeldscherm is de sortering te volgen.
Vullen van het importbestand
Het importbestand wordt aangelegd en gevuld. Op het beeldscherm is dit te volgen. Na het afdrukken gaat het programma terug naar het ingeven van de stuurgegevens voor een importbestand.
Het gebruik van een importbestand in een pakket, bijvoorbeeld Ms-Excel
Het importbestand zal, afhankelijk van de instellingen van Bbx/Pro5/Visual Pro5, meestal in de /usr/bbx/tmp directory worden aangemaakt. Dit kan echter per systeem verschillen. Het bestand krijgt de naam van de indeling in kleine letters, gevolgd door de extentie .txt; in ons voorbeeld zal dus het bestand /usr/bbx/tmp/test.txt aangemaakt worden.
![]()
Hierboven wordt dit bestand in Ms-Excel via 'file' en 'open' geopend. De open-wizard begeleidt u verder bij het op de juiste manier openen van het importbestand.
![]()
In stap 1 laat u 'Delimited' gewoon aanstaan en ook aan 'File Origin' doet u niets. Wilt u zelf koppen boven de velden gaan zetten, wijzig dan alleen 'Start import at row' in het door u gewenste rijnummer. Klik dan op 'next'.
![]()
Omdat voor dit importbestand als scheidingsteken de komma opgegeven is, dient u dit in stap 2 aan te vinken en de tab-optie uit te zetten. De 'Text Qualifier' op het dubbele aanhalingsteken laten staan. Klik op 'next'.
![]()
In stap 3 doen we verder niets, alleen op 'finish' klikken.
![]()
Na het vergroten van de cellen en het opmaken van kolommen met bedragen is het importbestand in Ms-Excel ingelezen en kunt u ermee 'echt' aan de slag.
Vragen en mededelingen in dit programma
- Gebruik liever geen naam die met de letter 'f' begint; <RETURN> Om problemen met de standaardbestanden van uw programmatuur te voorkomen is het raadzaam om geen importbestanden aan te maken die met de letter 'f' beginnen. - Veld komt niet in bestand voor; <RETURN> Het ingegeven veldnummer kan niet in de bestandsindeling gevon- den worden. - Dit veld is geen numeriek veld; <RETURN> Het ingegeven veld is een alfanumeriek veld, en kan dus niet in een telling gebruikt worden. - Bestand onbekend; <RETURN> Niet aanwezig bestand ingegeven. - Wilt u de mee te nemen velden wijzigen? <J>/<N> Als deze vraag met J beantwoord wordt, kunnen de mee te ne- men velden gewijzigd worden. Wordt N geantwoord, dat wordt het volgende programma-onderdeel opgestart. U kunt nieuwe veld- nummers ingeven of met <RETURN> de oude veldnummers overnemen. Gebruikt u vroegtijdig de <F4>-toets om af te sluiten met tot dan toe minder geselecteerde velden als voorheen, dat volgt een waarschuwing dat u mogelijk gegevens verliest. U kunt kiezen om wel of niet door te gaan. Kiest u om niet door te gaan, dan gaat u terug naar het selecteren van veldnummers. Neem vervolgens de overige velden met <RETURN> over om deze velden alsnog te selec- teren en sluit dan pas af. Gaat u echter wel door, dan verdwij- nen alle nog niet opnieuw geselecteerde velden uit de selectie. - Wilt u de velden voor de horizontale telling wijzigen? <J>/<N> Zie antwoord op de vorige vraag, maar dan voor deze velden. - Wilt u de sorteer/selectie velden wijzigen? <J>/<N> Zie antwoord op de vorige vraag, maar dan voor deze velden. - Scheidingsteken tussen de velden is ook al een komma; geef <RETURN> Voor het decimaalsymbool is voor een komma gekozen en dat is ook het scheidingsteken tussen de velden. Beide tekens mogen niet hetzelfde zijn. Wijzig het decimaalsymbool in een punt of ga met de <F2>-toets terug naar het scheidingsteken tussen de velden om dat in een puntkomma of in een TAB te wijzigen. - Modelomschrijving meenemen? <J>/<RETURN> Voor de Meuta-gebruikers van dit programma is het ophalen van de modelomschrijving aan de hand van het modelnummer ingebouwd. Bij modelnummers, waar dit mogelijk is, staat in de veldomschrijving *M* vermeld. In dat geval wordt bovenstaande vraag gesteld. - Bestand XXXXXX niet beschikbaar; geef <RETURN> Het betreffende bestand is niet (meer) aanwezig. - Sortering op grootboekcode (G) of crediteurnummer (K) Bij een sortering op veld 25 van het artikelstambestand BASTA kan zowel op de grootboekcode als op het crediteurnummer ge- sorteerd worden. Geef de betreffende keuze in.