AfAbmLstGet

Aus ArcFlow Wiki
Zur Navigation springen Zur Suche springen
Diese Seite enthält Bearbeitungen, die nicht zum Übersetzen freigegeben sind.
 AfAbmLstGet(int1, handle2[, logic3[, logic4]]) : int

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

Liste der Arbeitsmappen
int1 Arbeitsmappennummer der Elternmappe
handle2 Deskriptor einer leeren Cte-Liste
logic3 alle untergeordneten Mappen laden (optional)
logic4 Sortierung des Benutzers verwenden (optional)
Resultat int Fehlerwert
Siehe

Verwandte Befehle, AfAbmLstGetByDescr()

Mit der Funktion lassen sich alle Arbeitsmappen ermitteln, die sich in der übergebenen Arbeitsmappe befinden. Die Eltern-Arbeitsmappennummer wird in dem Parameter (int1) übergeben.

Standardmässig werden nur die Arbeitsmappen zurückgegeben, die sich direkt in der Eltern-Arbeitsmappe befinden. Sollen alle Mappen aus allen untergeordneten Ebenen zurückgegeben werden, kann dies durch das Setzen des Parameters (logic3) auf true erreicht werden.

Die Arbeitsmappen werden unsortiert zurückgegeben, soll die bei den Parametern des Benutzers eingestellte Sortierung verwendet werden, muss in (logic4) true angegeben werden.

Im Parameter (handle2) 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 für jede untergeordnete Mappe ein Objekt in der Cte-Liste vorhanden. Die Objekte können geladen werden und über die Eigenschaften "Name", "Custom" und "ID" können die Mappen-Informationen ausgelesen werden.

Es werden nicht mehr als 5000 Arbeitsmappen übergeben. Sollten mehr Arbeitsmappen vorhanden sein, müssen die jeweils untergeordneten Mappen einer Arbeistmappe ausgelesen werden.

Die Informationen werden dabei je nach Option unterschiedlich abgelegt:

  • (logic3) = FALSE (Standard)

    Name In der Eigenschaft "Name" wird die Nummer der Arbeitsmappe gespeichert
    Custom In der Eigenschaft "Custom" wird ein Vorzeichen (+ oder -) gefolgt vom Namen der Arbeitsmappe gespeichert.

    Das Vorzeichen sagt aus, ob zu dieser Mappe weitere Untermappen vorhanden sind: "+", es sind Untermappen vorhanden, "-", es sind keine Untermappen vorhanden.

  • (logic3) = TRUE

    Name In der Eigenschaft "Name" wird die Nummer der Arbeitsmappe gespeichert
    Custom In der Eigenschaft "Custom" wird die Nummer der Elternmappe, gefolgt von einem Trennzeichen "#", anschließend ein Vorzeichen (+ oder -) gefolgt vom Namen der Arbeitsmappe gespeichert.

    Das Vorzeichen sagt aus, ob zu dieser Mappe weitere Untermappen vorhanden sind: "+", es sind Untermappen vorhanden, "-", es sind keine Untermappen vorhanden.

    Beispiel:

    12#-Arbeitsmappe1 - Diese Arbeitsmappe ist eine Untermappe der Mappe mit der Nummer 12. Sie besitzt keine Untermappen.

Über die Eigenschaft "ID" des Items kann die Mappen-Unterteilung der Arbeitsmappe abgefragt werden. Folgende Konstanten können zurückgegeben werden:

Konstante Wert Bedeutung
sAbmPartNone 0 keine virtuelle Unterteilung
sAbmPartYear 1 virtuelle Jahres-Unterteilung unter der Arbeitsmappe
sAbmPartYearMonth 2 virtuelle Jahres- und Monats-Unterteilung unter der Arbeitsmappe

Beispiele:

Im folgenden Beispiel werden die Arbeitsmappen auf einer Ebene nach einer Arbeitsmappe mit einem bestimmten Namen durchsucht:

tCteList # AfCteOpen(_CteList);

// untergeordnete Arbeitsmappen ermitteln
tErg # AFAbmLstGet(tAbmParent,tCteList,false);

// suchen nach Arbeitsmappe mit Name "Projekte" -> ID zurückgeben
tItem # CteRead(tCteList, _CteFirst | _CteSearch | _CteCustom, 0, '?Projekte');
if (tItem != 0)
{
  tAbmId # tItem->spName;
}

Sollen alle untergeordneten Arbeitsmappen durchsucht werden, kann das Beispiel wie folgt abgewandelt werden:

// suchen nach Arbeitsmappen mit dem Namen "Projekte" -> ID zurückgeben
tItem # CteRead(tCteList, _CteFirst | _CteSearch | _CteCustom, 0,'*#?Projekte');
while (tItem != 0)
{
  // Arbeitsmappe gefunden
  ...
  
  // Nächste Arbeitsmappe suchen
  tItem # CteRead(tCteList, _CteNext | _CteSearch | _CteCustom, tItem,'*#?Projekte');
}

Wird ein ungültiger Deskriptor in (int2) übergeben, kommt es zu einem Laufzeitfehler.

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 in (int1) übergebene Arbeitsmappe existiert nicht

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