wiki-spaces-s1-pages-127762469-version-plus-8-dot-0-dot-2.md
By Andreas Langmaack (Unlicensed)
Jul 27, 2018
8 min
Add a reaction
Unter Einstellungen/Grundlagen können die Grundlagen für den Vergleich von Lösungen hinterlegt werden.
Open
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.
Open
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.
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:
Open
„Zu referenziertem Feld gehen“ (Register Metadaten oder Kontextmenü) springt zum Datenstrukturfeld:
Open
„Feld in Makros suchen“ (Register Metadaten oder Kontextmenü) zeigt alle gefundenen Referenzen in Makros:
Open
„Anzeigen“ (Kontextmenü einer Referenz) springt zum Ereignis:
Open
In Zeile 17, Parameter 1 findet man das Feld [A0Konto]:
Open
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.
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.
In Bereichen, in denen man Funktionen erweitern kann (Anhängen an), steht ein Assistent zur Verfügung.
Unter Oberfläche/Regiezentrum kann ein Eintrag vom Typ DLL-Aufruf hinterlegt werden.
Open
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.
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:
Open
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:
Open
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.
In einer Datenklasse können jetzt drei Schlüssel hinterlegt werden.
Open
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.
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.
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.
Bei den Makros „HinweisMelden“ und „FehlerMelden“ kann im dritten Parameter eine semikolonseparierte Feldliste hinterlegt werden. Im Hinweis/Fehler werden dann mehrere Feldbezüge angezeigt.
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“).
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
|
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
|
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
|
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.
|
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
|
|
|
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
|
|
|
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
|
|
|
Eigenschaft
|
Validierung
| | --- | --- | |
Funktionalität
|
| |
Breite
|
| |
Ausrichtung
|
| |
Alle Eigenschaften der Gruppe Ampelfunktion
|
|
|
Eigenschaft
|
Validierung
| | --- | --- | |
Feldtyp
|
| |
Nummer des Wertes
|
| |
Favorit in Listendarstellung?
|
| |
Funktionalität
|
| |
Breite in Listendarstellung
|
| |
Ausrichtung in Listendarstellung
|
| |
Alle Eigenschaften der Gruppe Ampelfunktion
|
|
|
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
|
|
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?
|
|
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
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
Collapse action bar
View all comments
Open Details Panel
Create page
Open Rovo Chat
Add a comment
Add a reaction