AfAbmArcLstGet

Aus ArcFlow Wiki
Version vom 4. Dezember 2025, 07:11 Uhr von Jens (Diskussion | Beiträge) (Stand 4.1.13 Beispiel geändert)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
 AfAbmArcLstGet(int1, int2[, logic3]) : int

Ausführbar von der API Ausführbar von der Programmierschnittstelle (DLL) Ausführbar mit der Application Remote Control Ausführbar von der Script-API

Archive in einer Arbeitsmappe ermitteln
int1 Arbeitsmappen-Nummer
int2 Deskriptor einer leeren CTE-Liste
logic3 Erweiterte Daten ermitteln (optional)
Resultat int Fehlerwert
Siehe

Verwandte Befehle

Mit der Funktion lassen sich alle Archive ermitteln, die sich in einer übergebenen Arbeitsmappe befinden. Die Arbeitsmappen-Nummer wird über den Parameter (int1) übermittelt.

Im zweiten Parameter muss der Deskriptor einer leeren Cte-Liste übergeben werden, die vor dem Aufruf der Funktion über den Befehl AfCteOpen() angelegt wurde.

Nach dem Aufruf der Funktion ist pro Archiv ein Objekt in der Cte-Liste vorhanden. Die Objekte können geladen und über die Eigenschaft "Name" die Archiv-Nummer ausgelesen werden. Wurde im Parameter (logic3) true übergeben, steht in der Eigenschaft "Custom" zusätzlich die Beschreibung des Archivs.

Wird ein ungültiger Deskriptor übergeben, kommt es zu einem Laufzeitfehler.

Bei der Verwendung mit der Application Remote Control werden die Parameter mit folgenden Namen übergeben:

/AbmNr Nummer der Arbeitsmappe
/ExtendedPara Erweiterte Daten ermitteln
/RsltPath Pfad und Name der externen Datei, in der das Ergebnis gespeichert wird.

Beispiele

local
{
  tErr     : int;
  tAbmNo   : int;
  tArcList : handle;
  tArcItem : handle;
  tArcNo   : alpha(12);
  tArcDesc : alpha(250);
}

{
  ...
  // Read all archives in a workfolder
  tArcList # AfCteOpen(_CteList);
  if (tArcList > 0)
  {
    tErr # AfAbmArcLstGet(tAbmNo,tArcList,true);
    if (tErr = _ErrOk)
    {
      for tArcItem # tArcList->CteRead(_CteFirst);
      loop tArcItem # tArcList->CteRead(_CteNext,tArcItem);
      while (tArcItem > 0)
      {
        tArcNo   # tArcItem->spName;
        tArcDesc # tArcItem->spCustom;
        ...
      }
    }
    else
    {
      // Error handling AfAbmArcLstGet()
      ...
    }
    tArcList->AfCteCloseAll();
  }
  else
  {
    // Error handling for AfCteOpen()
    ...
  }
  ...
}

local
{
  tErr     : int;
  tAbmNo   : int;
  tArcList : handle;
  tArcItem : handle;
  tArcNo   : alpha(12);
  tArcDesc : alpha(250);
}

{
  ...
  // Read all archives in a workfolder
  tArcList # CteOpen(_CteList);
  if (tArcList > 0)
  {
    tErr # AF.API:AfAbmArcLstGet(tAbmNo,tArcList,true);
    if (tErr = _ErrOk)
    {
      for tArcItem # tArcList->CteRead(_CteFirst);
      loop tArcItem # tArcList->CteRead(_CteNext,tArcItem);
      while (tArcItem > 0)
      {
        tArcNo   # tArcItem->spName;
        tArcDesc # tArcItem->spCustom;
        ...
      }
    }
    else
    {
      // Error handling AfAbmArcLstGet()
      ...
    }
    tArcList->CteClear(true);
    tArcList->CteClose();
  }
  else
  {
    // Error handling for AfCteOpen()
    ...
  }
  ...
}

af_rmtcontrol.exe /user=admin /password=troja /action=fnc /fnc=AfAbmArcLstGet /AbmNr=600448 /ExtendedPara=1 /RsltPath=c:\temp\AFAPIRES.TXT

In der Ergebnisdatei wird in der ersten Zeile die übergebene Anweisung geschrieben. In der zweiten Zeile wird der Rückgabewert der Funktion gespeichert. In den folgenden Zeilen werden die Archivnummern der gefundenen Archive aufgelistet. Werden die erweiterten Daten ermittelt, stehen die zusätzlichen Informationen in der gleichen Zeile durch # getrennt.

Neben den allgemeinen Fehlerwerten können folgende Werte zurückgegeben werden:

Konstante Wert Bedeutung
_ErrOk 0 ok - kein Fehler aufgetreten
sAfErrItemLimit -20015 Die maximale Anzahl an übertragbaren Elementen (ca. 5000) wurde überschritten
sAfErrNoRecAbm -20026 Die übergebene Arbeitsmappe existiert nicht

Für weitere CONZEPT 16-spezifische Rückgabewerte siehe die aktuelle CONZEPT 16-Hilfe.