AfWinImportFile
Mit dieser Anweisung wird ein Dialog für den Import von Dokumenten angezeigt. In (handle1) wird eine leere CTE-Liste übergeben, die zuvor mit AfCteOpen() angelegt werden muss. Die Anweisung ruft folgenden Dialog auf:
Der angezeigte Dialog wurde ohne optionale Parameter aufgerufen. In der Liste links unten werden alle Dateien des Standard Import-Pfades (siehe Parameter / Benutzer / Dateiimport) angezeigt. Wird in der Liste eine PDF-Datei oder eine Bild-Datei (BMP, JPG, TIF, PNG) ausgewählt, wird diese in einer Vorschau oberhalb der Liste angezeigt.
Auf der rechten Seite wird der Arbeitsmappenbaum dargestellt. In dem Eingabefeld "Arbeitsmappe" kann ein Suchbegriff eingegeben und eine Arbeitsmappensuche gestartet werden. Diese funktioniert identisch zu der Suche im Arbeitsmappenbaum.
Wird in der Liste der Dateien eine oder mehrere Dateien ausgewählt und anschließend die Schaltfläche [Importieren] geklickt, werden die ausgewählten Dateien nach ArcFlow importiert. Ist die Option "Separate Archive" ausgewählt, wird für jede Datei ein Archiv angelegt. Bei "Ein Archiv" werden alle ausgewählte Dateien in ein Archiv gespeichert. Das Archiv hat dann mehrere Anhangdateien. Der Name des oder der Archive kann in dem Eingabefeld "Name" angegeben werden. Durch Drücken der Schaltfläche kann ein anderes Quellverzeichnis ausgewählt werden. Mit der Schaltfläche
wird das ausgewählte Verzeichnis erneut eingelesen.
In dem angezeigten Dialog sind die Schaltflächen [Importieren] und [Schliessen] vorhanden. Der Dialog wird nur durch Drücken der Schaltfläche [Schliessen] geschlossen. Der Befehl gibt den Wert _WinIdCancel zurück. Bei [Importieren] werden die Dateien importiert, der Dialog bleibt aber für weitere Import-Vorgänge geöffnet. Das Skript wird erst mit Schließen des Dialogs fortgeführt.
Nach der Ausführung der Anweisung befindet sich in der in (handle1) übergebenen Liste für jede importierte Datei ein Element. Folgende Informationen werden in dem Element gespeichert:
Eigenschaft | Datentyp | Beschreibung |
Name | alpha(250) | Archivnummer_Anhangdateinummer |
Id | int | Arbeitsmappennummer |
Custom | alpha(4096) | Pfad und Dateiname der importierten Datei |
Die Arbeitsweise des Dialogs kann über optionalen Parameter angepasst werden. In (alpha2) wird der Pfad, aus dem die Dateien importiert werden sollen, angegeben. Im Dialog kann der Pfad gewechselt werden. Im Parameter (handle3) kann der Deskriptor eines übergeordneten Fensters (üblicherweise die Variable gAfActParentDlg) oder 0 übergeben werden. Hat der Dialog kein Eltern-Objekt, kann er in den Hintergrund verschoben werden. Da der Dialog modal angezeigt wird, ist eine weitere Verarbeitung erst nach dem Schließen des Dialogs möglich.
In (alpha4) kann der Name einer Notiztabelle angegeben werden (siehe Einstellungen Vorlagen / Notiztabellen). Der Archivname kann dann aus einer Liste mit vorgegebenen Namen ausgewählt oder eingegeben werden.
Über die Parameter (int5) und (int6) kann die Root-Arbeitsmappe und die selektierte Arbeitsmappe angegeben werden. Es wird dann nur der Teil des Arbeitsmappenbaums angezeigt, der ab der Root-Arbeitsmappe vorhanden ist. Die in (int6) angegebene Mappe wird im Arbeitsmappenbaum ausgewählt. Der Befehl berücksichtigt die für den ArcFlow-Benutzer definierten Berechtigungen. Arbeitsmappen ohne Leserecht werden im Arbeitsmappenbaum nicht angezeigt.
Im Übergabeparameter (alpha7) kann ein Archivname vorbelegt werden. In (alpha8) und (alpha9) kann ein Prefix und ein Suffix für die Archivnamen angegeben werden. Der Parameter (logic10) gibt an, ob die Originaldateien gelöscht werden (true) oder im Verzeichnis erhalten bleiben (false).
Beispiel:
local { tResult : int; tCteList : handle; tCteItem : handle; tAbmNo : int; tArcNo : alpha(12); tArcFileNo : int; tFileOrigin : alpha(1024); } { tCteList # AfCteOpen(_CteList); tResult # AfWinImportFile(tCteList,'C:\ArcFlow\Import',gAfActParentDlg,'Documenttypes', sAbmReceipts,sAbmDeliveryReceipts,'Lieferschein',true); for tCteItem # tCteList->CteRead(_CteFirst); loop tCteItem # tCteList->CteRead(_CteNext,tCteItem); while (tCteItem != 0) { tArcNo # AfStrGet(tCteItem->spName,'_',1); tArcFileNo # CnvIA(AfStrGet(tCteItem->spName,'_',2)); tAbmNo # tCteItem->spId; tFileOrigin # tCteItem->spCustom; ... } tCteList->AfCteCloseAll(); return(true); }