home *** CD-ROM | disk | FTP | other *** search
- /* $VER: SBase4toADM V1.2 (8.3.96)
-
- Dieses Script exportiert eine auswählbare Menge von Addressen aus
- Superbase Professional 4 nach ADM.
-
- Da in SBase4 der Datenbankaufbau universell gestaltet werden kann,
- kann dieses Script nur ein Beispiel sein. Es ist also unbedingt
- eine Anpassung an das erstellte SBase4-Format nötig. Dazu ist vor
- den relevanten Programmteilen ein entsprechender Kommentar
- vorhanden.
- Zum Abändern der Klauseln verweise ich auf das Handbuch
- SBase4-DML.
-
- Start erfolgt vom ADM-Menu. SBasePro4 muß bereits laufen. Die zu
- exportierende Datei muß geöffnet sein.
- */
-
-
- /* Test, ob Superbase läuft. Achtung! Der ARexx-Port von Superbase
- heißt nicht SBpro4, wie im Handbuch DML beschrieben, sondern SBase4.
- */
-
- IF ~SHOW(Ports,"SBase4") THEN DO
- SAY "Superbase läuft noch nicht! Bitte erst starten!"
- EXIT
- END
-
- ADDRESS 'SBase4'
-
- /* Hier muß der Name der zu exportierenden Superbase-Datei angegeben
- werden. <Datei> ist also zu ersetzen. Sicherheitshalber sollte man den
- vollen Pfad zur zu exportierenden Datei angeben.
- */
-
- 'adressen$="<Datei>"'
-
-
- /* Hier erfolgt die Selektion (WHERE-Klausel) und die Projektion
- (SELECT-Klausel) der Adress-Daten. Die WHERE-Klausel kann
- verschiedene Bedingungen enthalten (z.B. Nummer.<Datei> < 50). Die
- Select-Klausel ist nötig, damit nur die für ADM relevanten Daten
- exportiert werden. Das Ergebnis der Abfrage landet in der
- temporären Datenbankdatei "T:Adressen", die eine Untermenge der
- Ursprungsdatei bildet.
-
- Die Zuordnung SBase4-Felder zu den ADM-Feldern ist folgende:
- (Die Feldnamen von SBase müssen entsprechend angepaßt werden.)
-
- SBase ADM Bemerkung
- -------------------------------------
- Knd_Nr - .ID Index
- Anrede - .SALUTATION Anrede
- Name - .LASTNAME Name
- Vorname - .FIRSTNAME Vorname
- plz - .POSTCODE Postleitzahl
- ort - .CITY Ort
- strasse - .ADDRESS1 Strasse
- telefon - .TELEPHONE Telefon
- alter - .BIRTHDAY Alter
- Ktn_Nr - .ACCOUNT Kontonummer
- BLZ - .BANKCODE Bankleitzahl
- Bank - .BANKNAME Bankname
-
- Natürlich lassen sich weitere Felder angeben, um die von mir nicht
- benutzten ADM-Felder (email, fax etc.) zu belegen. Dann ist aber unbedingt
- für eine Übereinstimmung der SBase-Felder und der Stemvariable von ADM zu
- sorgen.
- */
-
- 'open file adressen$'
-
- /* Achtung: Feldnamen auf die Superbase-Namen anpassen und Bedingung
- ändern bzw. löschen, falls alle Datensätze exportiert werden sollen
- */
-
- 'select Knd_Nr,
- Anrede,
- Name,
- Vorname,
- plz,
- ort,
- strasse,
- telefon,
- alter,
- Ktn_Nr,
- BLZ,
- Bank
- where 1=1
- to file "T:Adressen"'
-
- /* jetzt das temporäre DB-File aktuell machen und exportieren */
-
- 'file "Adressen"'
- 'export "T:Adressen.ascii" using ";"'
-
- /* temporäres DB-File schließen und löschen */
-
- 'remove file "Adressen"'
-
- OPTIONS RESULTS
-
- datei="Adressen"
-
- /* jetzt die exportierte Datei öffnen */
-
- IF ~OPEN(datei,"T:Adressen.ascii","R") THEN DO
- EXIT
- END
-
- ADDRESS ADM.1
-
- /* erste Adresse einlesen */
-
- adresse = READLN(datei)
-
- DO WHILE ~EOF(datei)
- IF adresse ~= "" THEN DO
-
- /* Jetzt wird die eingelesene Adresse auf die ADM-Variable
- gesplittet. Für eine Übereinstimmung der SBase und
- ADM-Felder ist zu sorgen.
- */
-
- PARSE VAR adresse ADM.id ";" ,
- ADM.salutation ";" ,
- ADM.lastname ";" ,
- ADM.firstname ";" ,
- ADM.postcode ";" ,
- ADM.city ";" ,
- ADM.address1 ";" ,
- ADM.telephone ";" ,
- ADM.birthday ";" ,
- ADM.account ";" ,
- ADM.bankcode ";" ,
- ADM.bankname ";" ,
-
-
- /* zusätzlich kann eine oder mehrere Gruppen angegeben werden
- (siehe ADM-Beschreibung)
- */
-
- ADM.Flags=G
-
- /* Adresse in ADM übernehmen */
-
- NEWADDRESS ADM
-
- END
-
- /* Nächste Zeile lesen */
-
- adresse = READLN(datei)
-
- END
-
- ok = CLOSE(datei)
-
- /* temporäres ASCII-File löschen */
-
- ADDRESS command
-
- 'delete >NIL: T:Adressen.ascii'
-