Funktionsaufrufe

Funktionsaufrufe (Function Calls) können den folgenden Elementen zugeordnet werden.

  • Kontextmenüs
  • Links

Funktionsaufrufe führen Standard-Funktionen, oder eigene codierte Programmabläufe aus. Die Verwendung, bzw. die praktische Anwendung wird in Kontextmenüs und Funktionsaufrufe in Kontextmenüs beschrieben, da dort auch die eventuell zu übergebenen Parameter beschrieben werden.

Eigenschaften

Bereich

Eigenschaft

Wert


Kommentar

(Comment)

Beliebiger Kommentar zur Dokumentation.

Der Kommentar wird nicht zum Client übertragen und dient nur zur Dokumentation von Besonderheiten, Hinweisen, etc. Bei Auslieferung/Weitergabe der Lösung wird der Kommentar eingeschlossen, so dass der Empfänger ihn im AppDesigner sieht.

Funktion

Typ

(Type)

0 = direkte Angabe VBA-Systax in VBA-Aufruf mit Verwendung der definierten Parameter 1 bis 6 (jeweils optional, aber ohne Lücken)

1 = Internet-Aufruf (URL steht in Attribut "FunktionAufrufParameter1" des Kontextmenü-Eintrages )

2 = Aufruf Drilldown-Funktion („gbControlCenterDrilldown“, die Parameter werden automatisch generiert; das Drilldown-Element wird in den "ChildPart"-Attributen des Kontextmenü-Eintrags angegeben)

3 =  Aufruf Drilldown-Funktion (siehe Type 2; Inplace im Control-Center)

4 = Aufruf Drag-Funktion Listen- und Diagramm-Elemente (die Parameter werden automatisch generiert und im Ziel-Element als Platzhalter „SenderField(n)“ zur Verfügung gestellt; Funktionen dieses Typs sind im Kontextmenü nicht sichtbar)

5 = Aufruf Drop-Funktion Listen- und Diagramm-Elemente (freie Definition eines VBA-Aufrufes analog „Type“ 0 mit Einbeziehung der Drag-Parameter „SenderField(n)“; Funktionen dieses Typs sind im Kontextmenü nicht sichtbar; alternativ auch ohne VBA-Aufruf: In diesem Fall wird das im jeweiligen Kontextmenü-Eintrag definierte "ExecuteMacro" ("Makro ausführen") beim Drop ausgeführt. Die Drag-/Drop-Parameter stehen im Makro automatisch als lokale Variablen "_SenderField1" bis "_SenderField6" zur Verfügung. Die Funktionsparameter 1 bis 6 werden im Makro nicht benötigt.)

6 = Neuer Datensatz

  • Aufruf in einem Daten-Edit-Element; die Schlüsselfelder stehen über den "PrimaryKey1" - bis "PrimaryKey9" - Attribute zur Verfügung. Es wird ein Datensatz-Template aus den "DefaultValue"-Eigenschaften geladen bzw. 

      die Methode "GetTemplate" des aktiven Datenservice ausgeführt)

  • Aufruf in einem Multi-Data-Edit-Element: Kann in einem Makro verwendet werden, um programmatisch einen neuen Satz anzufügen (mit dem Standard-Template). Dieser wird automatisch zum neuen Datenkontext des Makros. Er wird automatisch fokussiert.

7 = Datensatz bearbeiten (Der Name des aufzurufenden Elementes wird in den "ChildPart"-Attributen des Kontextdes Kontext-Menü-Eintrags angegeben) Diese Funktion kann in folgenden Szenarien verwendet werden:

  • In einem Listen-Element: Zum Öffnen eines Daten-Edit-
  • oder eines Master-Detail Elementes
    Hinweis: Besser ist die Verwendung der Makro-Befehle "DatenEditDialogÖffnen" und "AuskunftÖffnen", da diese besser parametrisiert werden können
  • In einem Multi-Data-Edit-Element:
    Zum Bearbeiten der aktuellen Zeile wird ein weiterer Daten-Edit-Detail-Dialog geöffnet (z.B. Kunden/Ansprechpartner, Schaltfläche "Bearbeiten")

8 = Datensatz löschen (Aufruf im Daten-Edit-Element; mit Sicherheitsabfrage; die Schlüsselfelder stehen im Daten-Edit-Part über den „PrimaryKey1“- bis „PrimaryKey9“-Attribute zur Verfügung)

  • Hinweis zur Verwendung im Daten-Edit-Element:
    In der Funktion kann "IsMultiselectSupported" = True (im Kontextmenü-Eintrag definiert) dazu verwendet werden, ein Löschen per Mehrfachselektion im Navigations-Element eines Daten-Edit-Elements zu ermöglichen.
  • Hinweis zur Verwendung im Multi-Data-Edit-Element:
    Das Löschen findet nur Client-seitig für den geladenen Datensatz des Daten-Edit-Elementes statt. Das Löschen bezieht sich auf alle selektierten Datensätze im Multi-Daten-Edit-Element. Die zugehörigen Makros "Vor Löschung" ("BeforeDelete") und "Nach Löschung" ("AfterDelete") treten paarweise für jeden zu löschenden Datensatz des Multi-Daten-Edit-Elementes auf. Das Löschen kann unabhängig von dieser Funktion auch über die Zwischenablage erfolgen, siehe Attribut "ClipboardFunctionality".

9 = Datensatz kopieren (Aufruf im Daten-Edit-Element (nur Datensatz-basierend); mit Abfrage des neuen Primärschlüssels; die Schlüsselfelder stehen im Daten-Edit-Element über den „PrimaryKey1“- bis „PrimaryKey9“-Attribute zur Verfügung)

13 = Datensatz speichern (Aufruf im Daten-Edit-Element)

  • Parameter 1 optional analog zum entsprechenden Makro:
    • True = Speichern/Verwerfen-Dialog anzeigen (implizites Speichern)
    • False (Default) = Dialog nicht anzeigen und sofort speichern (explizites Speichern)

15 = Aufruf der „Execute“-Methode des in der verwendeten Datenstruktur definierten Daten-Service

  • Parameter 1: Name der aufzurufenden Methode
  • Parameter 2: Art der Datenübergabe (jeweils ohne Anführungszeichen):
    • "Vollstaendig:Ersetzen": Daten vollständig übergeben und die Rückgabe vollständig übernehmen
    • "Vollstaendig:Neu": wie "Vollstaendig:Ersetzen", aber es werden neu initialisierte Daten zurückgegeben (z.B. für die Beleg-Vorgangsübernahme)
    • "Vollstaendig:Ignorieren": Daten vollständig übergeben und die Rückgabe ignorieren
  • Parameter 3: Liste von Name-/Ausdruck-Paaren zur Übergabe von Werten (optional)
    • Hiermit können lokale Makro-Variablen, die z.B. durch einen vorhergehenden Selektionsdialog (siehe Makro-Befehl "SelektionsdialogÖffnen") gesetzt wurden, übergeben werden. Es können auch Werte, die nur kurzfristig benötigt werden, übergeben werden. Sie müssen dann nicht als Feld in der Datenstruktur vorhanden sein, sondern können hier nur für ihren konkreten Anwendungsfall übergeben werden.
    • Erfolgt der Aufruf der Funktion aus einem Makro heraus, können dessen lokale Variablen in den Ausdrücken verwendet und somit übergeben werden.
    • Die Liste ist wie folgt zu formatieren:

Format: Name:=Makroausdruck[;...]

Beispiel: Art:=1;Typ:=[_TypFeld];Titel:=[Titel]&" (Test)"

Hinweis: Server-seitig steht zum Zugreifen auf die Parameterliste die Methode Sagede.Core.Tools.GetParameter zur Verfügung.

    • Parameter 4: Ist es ein Daten-Service mit möglicherweise längerer Laufzeit? (optional)
      • True = Der Aufruf wird asynchron ausgeführt
      • False (Default) = Der Aufruf wird synchron ausgeführt

Anmerkung: Länger laufende Verarbeitungsprozesse, wie z.B. Importe, sollten asynchron ausgeführt werden, um Zeitüberschreitungen (Timeouts) zu vermeiden. Client-seitig wird dann eine "Fortschrittsanzeige" (Animation) angezeigt. Dabei bezieht sich "asynchron" nur auf die Client-Server-Kommunikation. Der Handlungsfaden im Frontend läuft erst weiter, wenn die Operation beendet ist.


    • Parameter 5: Handelt es um einen Daten-Service, der abgebrochen werden kann? (optional)
      • True = Die Verarbeitung kann abgebrochen werden.
      • False (Default) = Die Verarbeitung kann nicht abgebrochen werden.

16 = Aufruf einer VBA-Methode als Applikations-Service (wird später entfallen); für die Belegerfassungen und die Buchungserfassung wird der typisierte "gsAppServiceCall" (Datenzugriff per Interop-Objekt) verwendet; für alle anderen Data-Edit-Dialoge wird der generische "gsAppServiceCallGeneric" (Datenzugriff per XML) verwendet.
(AddIn-Methoden können dabei durch das Voranstellen des AddIn-Namens (ohne Versionierung) und eines Doppelpunktes aufgerufen werden (Beispiel: "MyAddIn.gEntryMyMethod").)

  • Parameter 1: Name der aufzurufenden VBA-Methode
  • Parameter 2: Art der Datenübergabe (jeweils ohne Anführungszeichen):
    • "Vollstaendig:Ersetzen": Daten vollständig übergeben und die Rückgabe vollständig übernehmen
    • "Vollstaendig:Neu": wie "Vollstaendig:Ersetzen", aber es werden neu initialisierte Daten zurückgegeben (z.B. für die Beleg-Vorgangsübernahme)
    • "Vollstaendig:Ignorieren": Daten vollständig übergeben und die Rückgabe ignorieren
  • Parameter 3: beliebiger Makro-Ausdruck, dessen Ergebnis an den VBA-Code übergeben wird (optional)
    • Erfolgt der Aufruf der Funktion aus einem Makro heraus, können dessen lokale Variablen im Ausdruck verwendet und somit übergeben werden.

17 = Starten eines Makros (Parameter werden im Kontextmenü hinterlegt)

  • Erfolgt der Aufruf der Funktion aus einem Makro heraus, werden die lokalen Variablen gemeinsam genutzt (lesend und schreibend).
  • In Diagramm-Elementen steht im Makro nur der Makro-Befehl "PopupdialogÖffnen" zur Verfügung.

19 = Lokalen .NET-DLL-Applikations-Service aufrufen (Aufruf einer Client-seitigen .NET-Methode als Applikations-Service)

    • Parameter 1: Name der aufzurufenden DLL (z.B. "Sagede.OfficeLine.DLLTest.dll" ; muss im Ordner "Shared" liegen)
    • Parameter 2: Klassenname in der DLL (z.B. "Sagede.OfficeLine.DLLTest.TestKlasse")
    • Parameter 3: Name der Funktion, die aufgerufen werden soll (z.B. "MeineTestFunktion")
    • Parameter 4: Art der Datenübergabe (jeweils ohne Anführungszeichen):
      • "Vollstaendig:Ersetzen": Daten vollständig übergeben und die Rückgabe vollständig übernehmen
      • "Vollstaendig:Neu": wie "Vollstaendig:Ersetzen", aber es werden neu initialisierte Daten zurückgegeben
      • "Vollstaendig:Ignorieren": Daten vollständig übergeben und die Rückgabe ignorieren
    • Parameter 5: beliebiger Makro-Ausdruck, dessen Ergebnis übergeben wird (optional)
      • Erfolgt der Aufruf der Funktion aus einem Makro heraus, können dessen lokale Variablen im Ausdruck verwendet und somit übergeben werden.

Die Klasse muss von einer der in „Sagede.OfficeLine.Shared.ClientActions.dll“ definierten Basisklassen "AppLibraryExecuteBase" bzw. "ClientLibraryExecuteBase" erben und die "Execute"-Methode implementieren. "AppLibraryExecuteBase" bekommt ein volles Mandantenobjekt übergeben und kann daher ausschließlich im Access-Client verwendet werden. "ClientLibraryExecuteBase" bekommt ein Basis-Mandantenobjekt übergeben und kann im Access-Client und im neuen Client verwendet werden.

    • Mandant - volles Mandantenobjekt (nur bei "AppLibraryExecuteBase")
    • MandantBase - Basis-Mandantenobjekt (nur bei "ClientLibraryExecuteBase")
    • FunctionName - Funktionsname aus Parameter 3
    • ClientLink - im Access-Client das Access-Objekt (z.B. für Eval-Aufrufe), im neuen Client ein "ClientLink"-Objekt zur Kommunikation mit dem neuen Client
    • Data - Daten-Container der Nutzdaten
    • CustomParam - evaluierter Ausdruck aus Parameter 5

Der Rückgabewert enthält den anzuzeigenden Fehlertext.

20 = Makro ohne Datenbezug aufrufen (analog zu "Starten eines Makros" (Funktionsaufruf 17), allerdings erfolgt keine Überprüfung, ob ein Datensatz ausgewählt wurde; Einsatz nur für Makros, die nicht Daten-abhängig sind.)


VBA-Aufruf

(VbaCall)

VBA-Aufruf ohne Klammern und Parameter


Automatisch aktualisieren?

(RefreshAutomatically)

Soll nach dem Aufruf der Funktion automatisch eine Aktualisierung des Elementes erfolgen, aus dem die Funktion aufgerufen wurde?

Hinweis: Nur sinnvoll bei synchronen Aufrufen (z.B. Kontextmenüeintrag aus Auskunft mit VBA-Aufruf, der Daten der Auskunft ändert)

Alle Funktionsaufrufe sind Funktionen des Standards, die in eigenen Metadaten verwendet werden können.

Der Typ „Lokalen .NET-DLL-Applikations-Service aufrufen“ bedingt einen clientseitigen DLL-Aufruf und könnte damit nur vorübergehend zur Verfügung stehen. Sage ist sich bewusst, dass bestimmte Funktionen (z.B. das Öffnen einer Kassenschublade) clientseitige Aufrufe benötigen. Ansonsten verwendet auch Sage selbst Typen mit clientseitigen Aufruf, so dass bei einem Wegfall alternative Funktionsaufrufe, oder z.B. Metadateneigenschaften in Elementen zur Verfügung stehen werden.