Version 8.0.2

Entwicklungsumgebung

Vergleich von Lösungen

Unter Einstellungen/Grundlagen können die Grundlagen für den Vergleich von Lösungen hinterlegt werden.

Das Vergleichswerkzeug ist kein Werkzeug und kann frei gewählt werden und ist kein Bestandteil des AppDesigners. Die Angabe der Argumente hängt von dem gewählten Vergleichswerkzeug ab.

Sie hinterlegen hier das Arbeitsverzeichnis und – falls gewünscht – das Verlaufsverzeichnis.

Innerhalb des AppDesigner können Sie auf einer Lösung den Vergleich (Kontextmenü oder Register Metadaten) starten.

Sie können den Vergleich auf die aktuellen Metadaten oder auf einen Stand aus dem Verlaufsverzeichnis (Version oder direkte Eingabe des Verlaufsdatums) ausführen. Bestimmte, sich generell ändernde Eigenschaften, können von dem Vergleich ausgeschlossen werden.

Suche und „Gehe zu“ Funktion erweitert

Die Suche und die Möglichkeit zu einem gefundenen Ort zu gehen wurde erweitert.

Beispiel: Suche alle Stellen im Data-Edit-Element „ediVKBelegerfassung“, in denen auf das Datenstrukturfeld „A0Konto“ referenziert wird.

Feld suchen auf „ediVKBelegerfassung“ setzt den Cursor auf die entsprechende Stelle im Data-Edit-Element:

„Zu referenziertem Feld gehen“ (Register Metadaten oder Kontextmenü) springt zum Datenstrukturfeld:

„Feld in Makros suchen“ (Register Metadaten oder Kontextmenü) zeigt alle gefundenen Referenzen in Makros:

„Anzeigen“ (Kontextmenü einer Referenz) springt zum Ereignis:

In Zeile 17, Parameter 1 findet man das Feld [A0Konto]:

Lösungen deaktivieren

Unter „Metadaten/Lösungen bearbeiten“ (oder Kontextmenü) kann eine Lösung deaktiviert werden. Technisch wird diese Lösung als nicht vorhanden behandelt. Bei einer Deaktivierung ist daher darauf zu achten, dass aktive Lösungen nicht auf die deaktivierte Lösung verweisen.

Erweiterte Einstellungen zur Ansicht

Im Register „Registerkarten“ kann das Verhalten der Register im Arbeitsbereich eingestellt werden.

Im Register „Experimentelle Einstellungen“ können Einstellungen für das Verfolgen bzw. Kenntlichmachen von Arbeiten im aktuellen Stand der Metadaten vorgenommen werden.

Anhängen an - Assistent

In Bereichen, in denen man Funktionen erweitern kann (Anhängen an), steht ein Assistent zur Verfügung.

Metadatenobjekte

Dll-Aufruf aus Regiezentrum

Unter Oberfläche/Regiezentrum kann ein Eintrag vom Typ DLL-Aufruf hinterlegt werden.

Es ist dann – wie in anderen Bereichen üblich – der Dll-Name und der Klassenname anzugeben. Es ist das Interface Sagede.OfficeLine.Engine.IDllCallExecute zu implementieren. Die Entry-Methode übergibt das Mandantenobjekt.

Ausführen von Makros in Kontextmenüeinträgen von List-Elementen

Die implementierten Funktionsaufrufe für List-Elemente (Control-Center- und Master-Detail-List-Elemente) wurde um den Funktionsaufruf „MakroStarten.Sage.System“ erweitert.

Folgende Makrobefehle werden unterstützt:

  • FestlegenLokaleVar
  • AufrufenKontextMenu
  • ListeAktualisieren
  • DatenReferenzAktualisieren
  • AufrufenDll
  • DatensatzSuchen
  • SelektionsdialogÖffnen
  • BerichtÖffnen
  • Wenn, SonstWenn, Sonst
  • Fehler
  • StoppMakro
  • Abbruch
  • FürJedenWert
  • ItemCount()
  • Meldungsfeld
  • ProtokollierenEreignis
  • FehlerMelden
  • HinweisMelden
  • Kommentar
  • AufrufenVba
  • IsEmpty(Feldreferenz)
  • IsVisible(Feldreferenz)

Beim Makro „AufrufenKontextMenu“ kann ein anderer Kontextmenüeintrag und dessen Makros aufgerufen werden. Aber auch hieraus werden nur die in der Liste aufgeführten Makros ausgeführt.

Im Zusammenhang mit dieser Implementierung wurde eine Vereinfachung für die Referenzierung von selektierten Datensätzen entwickelt, die somit auch für Datensätze eines Multi-Data-Edit-Elementes gültig ist. Statt der bisherigen Syntax „[$Parent.Ansprechparter($IndexSelected).Vorname]“ kann jetzt „[$Me($IndexSelected).Vorname]“ verwendet werden.

Beispiel:

Ergänzende Sortierung bei Datenquellen und Datenreferenzen

Die Sortierung einer Liste soll immer eindeutig sein. Bei Datenquellen, deren Schlüssel an der Oberfläche nicht sichtbar ist, muss unter Umständen nach mehreren zusätzlichen Feldern sortiert werden. Ein Beispiel dafür sind die Belege der Warenwirtschaft. Der Schlüssel ist die BelID, für den Anwender ist aber die sichtbare Eindeutigkeit die Kombination aus Belegjahr und Belegnummer. Sollen nun alle Felder reproduzierbar sortiert sein, müsste bei jedem Feld zusätzlich nach Belegjahr, Belegnummer und (um technisch eindeutig zu sein) nach BelID sortiert werden. Da dies bei vielen Feldern ein Aufwandsfaktor sein kann, wurde bei Datenquellen (und aus Konsistenzgründen auch bei Datenreferenzen) auf der Ebene der Datenquelle zwei (in Datenreferenzen ein) neues Attribut implementiert:

Die ergänzende Sortierung wird an die Sortierung aller Datenquellenfelder angehängt. Sollte durch das Anhängen in einem Feld ein Feldverweis doppelt vorkommen, wird es beim Anhängen nicht berücksichtigt.

Datenklassen mit 3 Schlüsseln

In einer Datenklasse können jetzt drei Schlüssel hinterlegt werden.

Filtern von Datenklassen

Bei gefilterten Datenklassen müssen bisher redundant mehrere Varianten dafür angelegt werden. Außerdem kann dieser Filter nur provisorisch über das Makro „FestlegenAdhocFilterSuche“ an den Suchdialog weiter gegeben werden. Um diese Probleme auszuräumen wurde eine Lösung entwickelt, die sich am Standard der Auskünfte orientiert.

Dafür wurde die Eigenschaft „Datenklassen-Filter“ für Datensatz- und Datenstrukturfelder eingeführt. In dieser Eigenschaft kann eine semikolon-separierte Liste von Name-/Ausdruck-Paaren eingegeben werden. Konstante Texte müssen in Anführungszeichen eingefasst werden, innenliegende Anführungszeichen sind zu verdoppeln.

Beispiel: Adressnr:=[VKA0AdressNummer];Kontonr:=[A0Konto];Art:= "D"

Wenn die Ausführung der Datenklasse erst zusammen mit der Server-seitigen Geschäftslogik erfolgt (weil "Automatische Datenklassen-Validierung" auf False gesetzt wurde), unterstützt die Geschäftslogik nur bei Bedarf diese erweiterte Filterung. Die Auswertung dieser Ausdrücke ist dann auf die Grundfunktionen beschränkt und auf die Daten des aktuellen Satzes.

Liste und Editierbereich drehen

Im Data-Edit-Element können die Liste der Datensätze und der Editierbereich jetzt auch nebeneinander dargestellt werden. Mit der neuen Eigenschaft „Anordnung“ (Gruppe Navigations-Element) wird die Default-Einstellung vorgegeben. Der Benutzer kann im Konfigurationsmodus die Vorgabe ändern.

“Nach Einfügen”-Ereignis im Multi-Data-Edit-Element

Im Multi-Data-Edit-Element können im Ereignis „Nach Einfügen“ (AfterPaste) Makros ausgeführt werden, die nach dem Einfügen von Datensätzen aus der Zwischenablage aufgerufen werden.

Das Ereignis wird nur dann aufgerufen, wenn die Funktion zur Serverseitigen Prüfung der Datensätze mit dem Ergebnis True beendet wurde.

Das Ereignis wird auf Client-Seite ausgelöst. Das Ereignis kann bei verketteten Daten-Edit-Elementen („AppendToPartnerId“ und „AppendToPackageId“) definiert werden, um zusätzliche Makros ausführen zu lassen. Die Ausführung der Makros erfolgt jeweils nach aufsteigenden Partner- und Lösungs-Ids mit Sage beginnend.

Fehlermeldungen mit mehrfachen Feldbezügen

Bei den Makros „HinweisMelden“ und „FehlerMelden“ kann im dritten Parameter eine semikolonseparierte Feldliste hinterlegt werden. Im Hinweis/Fehler werden dann mehrere Feldbezüge angezeigt.

Neuer Platzhalter ParentFieldValue(name)

Für spezielle Anwendungszwecke im Multi-Data-Edit steht ein neuer Platzhalter für SQL zur Verfügung:

ParentFieldValue(name)

  • nur für Datensätze
  • Ruft beim Lesen eines Child-Records den Inhalt des Parent-Feldes „name“ (Angabe ohne Anführungszeichen) ab.

Anwendungsbeispiel:

Beim Lesen mit Left Join können Felder den Wert NULL haben, die in Unterabfragen aber verwendet werden. Falls die Felder auch im Hauptsatz existieren, können sie mit diesem Platzhalter ermittelt werden (siehe Element „recArtikelstammArtikelpreise.Sage.Wawi“, Feld „StatusStaffelpreise“).

Erweitern von Standard-Elementen (Anhängen an…)

Anhängen an Datenquellen

Folgende Eigenschaften der angehängten Datenquelle können editiert werden:

Eigenschaft

AppendTo-Mechanismus

OL-Klassen der benutzerdefinierten Felder

wird angehängt

SQL-Tabellen

wird angehängt

SQL-Where-Bedingung

Das Anhängen erfolgt hier durch Zeichenverkettung, d.h. die Clause muss mit "AND" bzw. "OR" beginnen. Die vor dem Anhängen vorhandene Where-Clause wird jeweils in Klammern gesetzt, um Nebenwirkungen zu vermeiden.

Es kann auch eine DCM verwendet werden.

SQL-Gruppierung

wird mit Komma getrennt angehängt

SQL-Where-Bedingung für Child-Elemente

Das Anhängen erfolgt hier durch Zeichenverkettung, d.h. die Clause muss mit "AND" bzw. "OR" beginnen. Die vor dem Anhängen vorhandene Where-Clause wird jeweils in Klammern gesetzt, um Nebenwirkungen zu vermeiden.

Es kann auch eine DCM verwendet werden.

Neue Felder

werden angehängt

Anhängen an List- und Diagramm-Element

Folgende Eigenschaften der angehängten Elemente können editiert werden:

Eigenschaft

AppendTo-Mechanismus

Neue Felder

werden angehängt

Folgende Eigenschaften von angehängten Standardfeldern können editiert werden:

Eigenschaft

DoAppendTo-Mechanismus

Spaltennummer, Spaltennummer in Listendarstellung

wird überschrieben

Sichtbarkeit, Sichtbarkeit in Listendarstellung

wird überschrieben

Anhängen an Datenklassen

Folgende Eigenschaften der angehängten Elemente können editiert werden:

Eigenschaft

AppendTo-Mechanismus

SQL-Where-Bedingung

Das Anhängen erfolgt hier durch Zeichenverkettung, d.h. die Clause muss mit "AND" bzw. "OR" beginnen. Die vor dem Anhängen vorhandene Where-Clause wird jeweils in Klammern gesetzt, um Nebenwirkungen zu vermeiden.

Lokatoren

werden angehängt

Erweiterte Editierbarkeit von benutzerdefinierten Feldern

Die Möglichkeiten Eigenschaften für benutzerdefinierte Felder in den Metadaten einzustellen, wurden erweitert (bisher Position und Sichtbarkeit). Dabei bleiben aber die Einstellungen, die im Administrator hinterlegt werden, führend und können in den Metadaten nicht überschrieben werden. Da bei der Bearbeitung im AppDesigner die Eigenschaften der benutzerdefinierten Felder nicht bekannt sind, kann im AppDesigner z.B. eine Datenreferenz zugewiesen werden, auch wenn im Administrator eine Werteliste hinterlegt ist. Beim Zusammenführen der Elemente auf Serverseite wird dies allerdings berücksichtigt. In den nachfolgenden Tabellen wird daher beschrieben, was beim Zusammenführen beachtet wird, und das Zusammenführen gegebenenfalls nicht durchgeführt wird.

Versteckte benutzerdefinierte Felder (USER+Doppelunterstrich) werden nicht berücksichtigt.

Alle in den Tabellen aufgeführten Eigenschaften werden überschrieben.

Bei Datenquellen wird auch die Eigenschaft „SQL-Abfrage“ überschrieben, da es gegebenenfalls notwendig ist, eine Aggregat-Funktion zu verwenden. Es ist also darauf zu achten, dass die SQL-Syntax stimmt, auch wenn man keine Änderung in dieser Eigenschaft machen müsste.

Datenquellenfelder

Eigenschaft

Validierung

Nur Filter-Feld?

-

SQL-Abfrage

-

SQL-Abfrage ist ein Aggregat

-

Datentyp

Indizierter String, Indiziertes Bild nur, wenn der Typ Integer, Long oder Boolean und kein Kombinationsfeld ist

Schlüssel einer Datenklasse nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Datentyp-Ergänzung

Validierung erfolgt durch Datentyp

Datenklasse

Validierung erfolgt durch Datentyp

Nachkommastellen

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen gemäß Feld

Datentyp Währung und kein Kombinationsfeld

Datenreferenz

Nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Filtertyp

-

Alle anderen Eigenschaften der Gruppe Filterung

Nur wenn ein Filtertyp eingestellt wurde

Alle Eigenschaften der Gruppe Sortierung

-

Summenzeile

Nur wenn in der Originaldatenquelle „Automatische Ermittlung gemäß Feldattributen“ und im Feld „Summierung“ eingestellt ist

Alle Eigenschaften der Gruppe Ampelfunktion

-

Datensatzfelder

Eigenschaft

Validierung

Datentyp

Indizierter String, Indiziertes Bild nur, wenn der Typ Integer, Long oder Boolean und kein Kombinationsfeld ist

Schlüssel/Matchcode einer Datenklasse nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Datentyp-Ergänzung

Validierung erfolgt durch Datentyp

Datenreferenz

Nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Zusätzliche Eigenschaften der Datenreferenz

Validierung erfolgt durch Datenreferenz

Datenklasse

Validierung erfolgt durch Datentyp

Zusätzliche Eigenschaften der Datenklasse

Validierung erfolgt durch Datentyp

Nachkommastellen

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen-Definition in übergeordneten Element

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen gemäß Feld

Datentyp Währung und kein Kombinationsfeld

Behandlung bei Datensatz kopieren

-

Alle Eigenschaften der Gruppe Validierung

-

Datenstrukturfelder

Eigenschaft

Validierung

Datentyp

Indizierter String, Indiziertes Bild nur, wenn der Typ Integer, Long oder Boolean und kein Kombinationsfeld ist

Schlüssel/Matchcode einer Datenklasse nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Datentyp-Ergänzung

Validierung erfolgt durch Datentyp

Datenreferenz

Nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Zusätzliche Eigenschaften der Datenreferenz

Validierung erfolgt durch Datenreferenz

Datenklasse

Validierung erfolgt durch Datentyp

Zusätzliche Eigenschaften der Datenklasse

Validierung erfolgt durch Datentyp

Nachkommastellen

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen-Definition in übergeordneten Element

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen gemäß Feld

Datentyp Währung und kein Kombinationsfeld

Alle Eigenschaften der Gruppe Validierung

-

Listen-Element-Felder

Eigenschaft

Validierung

Funktionalität

-

Breite

-

Ausrichtung

-

Alle Eigenschaften der Gruppe Ampelfunktion

-

Diagramm-Element-Felder

Eigenschaft

Validierung

Feldtyp

-

Nummer des Wertes

-

Favorit in Listendarstellung?

-

Funktionalität

-

Breite in Listendarstellung

-

Ausrichtung in Listendarstellung

-

Alle Eigenschaften der Gruppe Ampelfunktion

-

Daten-Edit-Element-Felder

Eigenschaft

Validierung

Soforthilfe

-

Funktionsname

-

Name der Bilddatei für Funktion

-

Tooltipp für die Funktion

-

Funktionalität

-

Deaktiviert

-

Mit TAB anspringen?

-

Hervorheben?

Nur wenn Änderbar deaktiviert ist

Multi-Data-Edit-Element-Felder

Eigenschaft

Validierung

Funktionsname

-

Name der Bilddatei für Funktion

-

Tooltipp für die Funktion

-

Hauptfeld?

-

Funktionalität

-

Für alle Vorlagen gültig?

-

Feldbreite

-

Deaktiviert

-

Feld-Titel anzeigen?

-

Mit TAB anspringen?

-

Sonstiges

  • Verlängerung der Lösungsnamen auf 50 Zeichen
  • Daten-Service-Klassen-Template für CSharp (beide Templates wurden überarbeitet)
  • Überarbeitung und Ergänzung der Editoren (z.B. Auswahl Bitmap via Dialog)
  • Validierungen erweitert
    • AppendTo (Anhängen an) auf sich selbst
    • Prüfen, ob das Feld, das in der Eigenschaft "Sortieren nach Feld" angegeben ist, auch selbst eine Sortierung hat
    • In der Sortierung keine doppelten Felder
    • Datentyp gegen Datenklasse in Datenfelder
  • Vorschau aus angehängten Metadatenobjekten
  • Beim Kopieren/Einfügen von String-Ressourcen wird nicht der Name, sondern der Index hochgezählt
  • Bei der Anlage neuer Datenquellenfelder wird automatisch deren Eigenschaften "Sortierung" und "absteigende Sortierung" gefüllt
  • Hat man mittels "Anhängen an" ein Metadatenobjekt miteinander verbunden, kann während der Bearbeitung auch auf die Felder des Originalmetadatenobjektes zugegriffen werden
  • Funktionsaufruf „gbOpenDataEditPart“ in Sage.System aufgenommen
  • Strengere Makro-Fehlerbehandlung