home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / adm30.lha / ADM / ARexx / ADM-ARexxMakros.lha / ImExport / SBase4toADM.adm < prev    next >
Encoding:
Text File  |  1996-03-29  |  4.3 KB  |  163 lines

  1. /* $VER: SBase4toADM V1.2 (8.3.96)
  2.  
  3.    Dieses Script exportiert eine auswählbare Menge von Addressen aus
  4.    Superbase Professional 4 nach ADM.
  5.  
  6.    Da in SBase4 der Datenbankaufbau universell gestaltet werden kann,
  7.    kann dieses Script nur ein Beispiel sein. Es ist also unbedingt
  8.    eine Anpassung an das erstellte SBase4-Format nötig. Dazu ist vor
  9.    den relevanten Programmteilen ein entsprechender Kommentar
  10.    vorhanden.
  11.    Zum Abändern der Klauseln verweise ich auf das Handbuch
  12.    SBase4-DML.
  13.  
  14.    Start erfolgt vom ADM-Menu. SBasePro4 muß bereits laufen. Die zu
  15.    exportierende Datei muß geöffnet sein.
  16. */
  17.  
  18.  
  19. /* Test, ob Superbase läuft. Achtung! Der ARexx-Port von Superbase
  20.    heißt nicht SBpro4, wie im Handbuch DML beschrieben, sondern SBase4.
  21. */
  22.  
  23. IF ~SHOW(Ports,"SBase4") THEN DO
  24.    SAY "Superbase läuft noch nicht! Bitte erst starten!"
  25.    EXIT
  26. END
  27.  
  28. ADDRESS 'SBase4'
  29.  
  30. /* Hier muß der Name der zu exportierenden Superbase-Datei angegeben
  31.    werden. <Datei> ist also zu ersetzen. Sicherheitshalber sollte man den
  32.    vollen Pfad zur zu exportierenden Datei angeben.
  33. */
  34.  
  35. 'adressen$="<Datei>"'
  36.  
  37.  
  38. /* Hier erfolgt die Selektion (WHERE-Klausel) und die Projektion
  39.    (SELECT-Klausel) der Adress-Daten. Die WHERE-Klausel kann
  40.    verschiedene Bedingungen enthalten (z.B. Nummer.<Datei> < 50). Die
  41.    Select-Klausel ist nötig, damit nur die für ADM relevanten Daten
  42.    exportiert werden. Das Ergebnis der Abfrage landet in der
  43.    temporären Datenbankdatei "T:Adressen", die eine Untermenge der
  44.    Ursprungsdatei bildet.
  45.  
  46.    Die Zuordnung SBase4-Felder zu den ADM-Feldern ist folgende:
  47.    (Die Feldnamen von SBase müssen entsprechend angepaßt werden.)
  48.  
  49.    SBase        ADM           Bemerkung
  50.    -------------------------------------
  51.    Knd_Nr    - .ID            Index
  52.    Anrede    - .SALUTATION    Anrede
  53.    Name      - .LASTNAME      Name
  54.    Vorname   - .FIRSTNAME     Vorname
  55.    plz       - .POSTCODE      Postleitzahl
  56.    ort       - .CITY          Ort
  57.    strasse   - .ADDRESS1      Strasse
  58.    telefon   - .TELEPHONE     Telefon
  59.    alter     - .BIRTHDAY      Alter
  60.    Ktn_Nr    - .ACCOUNT       Kontonummer
  61.    BLZ       - .BANKCODE      Bankleitzahl
  62.    Bank      - .BANKNAME      Bankname
  63.  
  64. Natürlich lassen sich weitere Felder angeben, um die von mir nicht
  65. benutzten ADM-Felder (email, fax etc.) zu belegen. Dann ist aber unbedingt
  66. für eine Übereinstimmung der SBase-Felder und der Stemvariable von ADM zu
  67. sorgen.
  68. */
  69.  
  70. 'open file adressen$'
  71.  
  72. /* Achtung: Feldnamen auf die Superbase-Namen anpassen und Bedingung
  73. ändern bzw. löschen, falls alle Datensätze exportiert werden sollen
  74. */
  75.  
  76. 'select Knd_Nr,
  77.         Anrede,
  78.         Name,
  79.         Vorname,
  80.         plz,
  81.         ort,
  82.         strasse,
  83.         telefon,
  84.         alter,
  85.         Ktn_Nr,
  86.         BLZ,
  87.         Bank
  88.  where 1=1
  89.  to file "T:Adressen"'
  90.  
  91. /* jetzt das temporäre DB-File aktuell machen und exportieren */
  92.  
  93. 'file "Adressen"'
  94. 'export "T:Adressen.ascii" using ";"'
  95.  
  96. /* temporäres DB-File schließen und löschen */
  97.  
  98. 'remove file "Adressen"'
  99.  
  100. OPTIONS RESULTS
  101.  
  102. datei="Adressen"
  103.  
  104. /* jetzt die exportierte Datei öffnen */
  105.  
  106. IF ~OPEN(datei,"T:Adressen.ascii","R") THEN DO
  107.    EXIT
  108. END
  109.  
  110. ADDRESS ADM.1
  111.  
  112. /* erste Adresse einlesen */
  113.  
  114. adresse = READLN(datei)
  115.  
  116. DO WHILE ~EOF(datei)
  117.   IF adresse ~= "" THEN DO
  118.  
  119.      /* Jetzt wird die eingelesene Adresse auf die ADM-Variable
  120.         gesplittet. Für eine Übereinstimmung der SBase und
  121.         ADM-Felder ist zu sorgen.
  122.      */
  123.  
  124.      PARSE VAR adresse ADM.id             ";"   ,
  125.                        ADM.salutation     ";"   ,
  126.                        ADM.lastname       ";"   ,
  127.                        ADM.firstname      ";"   ,
  128.                        ADM.postcode       ";"   ,
  129.                        ADM.city           ";"   ,
  130.                        ADM.address1       ";"   ,
  131.                        ADM.telephone      ";"   ,
  132.                        ADM.birthday       ";"   ,
  133.                        ADM.account        ";"   ,
  134.                        ADM.bankcode       ";"   ,
  135.                        ADM.bankname       ";"   ,
  136.  
  137.  
  138.      /* zusätzlich kann eine oder mehrere Gruppen angegeben werden
  139.         (siehe ADM-Beschreibung)
  140.      */
  141.  
  142.      ADM.Flags=G
  143.  
  144.      /* Adresse in ADM übernehmen */
  145.  
  146.      NEWADDRESS ADM
  147.  
  148.   END
  149.  
  150.   /* Nächste Zeile lesen */
  151.  
  152.   adresse = READLN(datei)
  153.  
  154. END
  155.  
  156. ok = CLOSE(datei)
  157.  
  158. /* temporäres ASCII-File löschen */
  159.  
  160. ADDRESS command
  161.  
  162. 'delete >NIL: T:Adressen.ascii'
  163.