AfWinImportScan

Aus ArcFlow Wiki
Zur Navigation springen Zur Suche springen
Diese Seite enthält Bearbeitungen, die nicht zum Übersetzen freigegeben sind.
 AfWinImportScan(handle1[, handle2[, alpha3[, int4[, int5[, alpha6[, alpha7[, alpha8]]]]]]]) : int

Nicht ausführbar von der APINicht ausführbar von der Programmierschnittstelle (DLL)Nicht ausführbar mit der Application Remote ControlAusführbar von der Script-API

Dialog zum Scannen öffnen
handle1 Deskriptor einer leeren CTE-Liste
handle2 Deskriptor des übergeordneten Fensters (optional)
alpha3 Name der Notiztabelle für Archivnamen (optional)
int4 Id der Root Arbeitsmappe (optional)
int5 Id der Standard-Arbeitsmappe (optional)
alpha6 Standard Archivname (optional)
alpha7 Prefix der Archive (optional)
alpha8 Suffix der Archive (optional)
Resultat int gedrückte Schaltfläche oder Fehlerwert
Siehe

Verwandte Befehle

Mit dieser Anweisung wird ein Dialog für das Scannen 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. Auf der linken Seite kann der Scanner und Parameter des Scanvorgangs angegeben werden.

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.

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] wird der Scanner gestartet und nach dem Scanvorgang die Dateien importiert, der Dialog bleibt aber für weitere Scanvorgänge geöffnet. Das Skript wird erst nach dem Schließen fortgesetzt.

Der Arbeitsplatz, auf dem die Anweisung ausgeführt wird, muss als Scan-Arbeitsplatz definiert sein (siehe Einstellungen / Programm / Arbeitsplatz). Ist der Arbeitsplatz kein Scan-Arbeitsplatz, wird der Fehler sAfErrNoRecArb (-20046) zurückgegeben.

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)

Die Arbeitsweise des Dialogs kann über optionalen Parameter angepasst werden. Im Parameter (handle2) 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 (alpha3) 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 (int4) und (int5) 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 (int5) 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 (alpha6) kann ein Archivname vorbelegt werden. In den Parametern (alpha7) und (alpha8) kann ein Prefix bzw. Suffix für den Archivnamen angegeben werden. Die werden vor bzw. hinter den Archivnamen gesetzt.

Beispiel:

local
{
  tResult       : int;
  tCteList      : handle;
  tCteItem      : handle;
  tAbmNo        : int;
  tArcNo        : alpha(12);
  tArcFileNo    : int;
  tFileOrigin   : alpha(1024);
}

{
  tCteList # AfCteOpen(_CteList);
  tResult # AfWinImportScan(tCteList,gAfActParentDlg,'Documenttypes',
    sAbmReceipts,sAbmDeliveryReceipts,'Lieferschein');
  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;
    ...
  }
  tCteList->AfCteCloseAll();
  return(true);
}