HILFE! Vom Aufgabencenter zum AppDesigner

Paul@GEKKO

Mitglied
Hallo Miteinander,

seit kurzem habe ich begonnen mich mit dem AppDesigner auseinander zu setzen und möchte nun etwas einfaches aus dem Aufgabencenter "portieren"! Nun habe ich schon die Grundlagen und einige Beispiele aus dem Sage-Developer Kochbuch durchgearbeitet, aber ich kann nicht zwei Listen miteinander verknüpfen!

Nun habe ich 2 Datenquellen als Grundlage für 2 Listen-Elemente, diese ich mit einem Master-Detail-Element auf einem Formular bringen kann, jedoch ist mir nicht ganz klar, wie ich nun die 2.Liste (LBSysOnlinebez) mit der KHKArtikel-Liste(Master-List-Element) über die Artikelnummer verknüpfe?

Kann mir jemand den einfachsten und/oder gängisten Weg zur Realisierung schildern?

Ich habe das Gefühl, dass das Kochbuch schon einiges an Grundwissen voraussetzt, gibt es da noch eine andere Quelle oder sollte ich mir Tipps aus einem "älteren Kochbuch" holen?

Ich hoffe jemand kann mir ein paar Tipps geben und bedanke mich in jedem Falle für euer Verständnis.

MfG Paul@GEKKO :)
 
In der Datenquelle vom "Detail-Element" können in der Eigenschaft "SQL-Where-Bedingung für Child-Elemente" SQL-Where-Bedingungen eingegeben werden, die beim Einsatz als Detail-Element an die eigentlichen Where-Bedingungen angehängt werden.
In der Datenquelle vom "Master-Element" müssen dazu die für die Verknüpfung benötigten Schlüsselfelder definiert sein (Eigenschaft "Schlüsselfeld 1" etc.).
Über den Parameter "CFN_ParentKeyField()", der in der SQL-Where-Bedingung verwendet werden kann, wird auf das jeweilige Schlüsselfeld der Datenquelle vom "Master-Element" verwiesen.

Wenn also z.B. die "Detailliste" auf die Artikelnummer aus der "Masterliste" gefiltert werden soll, kann die Artikelnummer in der Datenquelle des "Master-Elements" als "Schlüsselfeld 1" definiert werden.
In der Eigenschaft "SQL-Where-Bedingung für Child-Elemente" der Datenquelle des "Detail-Elements" wird z.B. die Bedingung "LBSysOnlinebez.Artikelnummer = CFN_ParentKeyField(1)" eingetragen.
 
Ja, wunderbar... Vielen Dank @diakh habe folgenden Fehler korrigiert :)

SQL-WHERE-Bedingung
LBSysArtikelOnlinebezeichnung.Mandant = @Mandant AND -1 = CFN_IfParameterExists('Artikelnummer','AND LBSysArtikelOnlinebezeichnung.Artikelnummer = CFN_Parameter('Artikelnummer') ')

wurde lediglich auf: Mandant = @Mandant
gekürzt und nun wurde folgendes gesetzt:

SQL-Where-Bedingung für Child-Elemente (blieb mir bisher verborgen ^^')
[LBSysArtikelOnlinebezeichnung].[Mandant] = @Mandant AND LBSysArtikelOnlinebezeichnung.Artikelnummer = CFN_ParentKeyField(1)

Nun klappt es auch :) Vielen Dank
 
Freut mich.

Die Where-Bedingung bezüglich des Mandanten in der "SQL-Where-Bedingung für Child-Elemente" kannst Du weg lassen, da die zusätzlichen Bedingungen zur Filterung auf Basis des Masterdatensatzes an die "SQL-Where-Bedingung" angehängt werden und dort ja bereits die Abfrage auf den Mandanten enthalten ist.
 
Habe ich so abgeändert, damit sich nicht jetzt schon zuviel "Müll" ansammelt!

Ich möchte einmal versuchen, nun die ganze Hand zu nehmen und fragen, welches Oberflächenelement im AppDesigner denn mein Formular mit Registern ersetzt?

Habe ein Formular im Aufgabencenter, welches wie folgt aussieht:
upload_2020-7-20_13-16-48.png

Welches Konstrukt benötige ich nun, damit ich die Daten aus meiner Datenquelle in "TextBoxen" abbilde und nicht in einer Liste (nur 'lesende' Felder, keine Datenbearbeitung)?
Im Aufgabencenter hatte man ja nun einfach die Liste ausgeblendet und die Vorlagenfelder in einem Register arrangiert und fertig...

Nun gibt es das Daten-Info-Element, welches evtl. passend sein könnte, jedoch will dieses ausschließlich auf einen Datensatz verweisen, jedoch wirkt dieses Datenobjekt sehr eingeschränkt und ich kann dort scheinbar keine SQL-Abfragen als Vorlage hinterlegen, auch eine SQL-View ist nicht auswählbar! :-(

Gibt es dazu einen Kniff? Habe ich evtl. das Scheunentor wieder nur zur Hälfte geöffnet und sehe das offensichtliche nicht?
Kommen wir da schon an die Grenzen vom AppDesigner, muss ich dazu ggf. ein Geschäftsprozess bauen, der dann Daten in irgendwelchen Dummyfeldern packt? Oder gibt es irgendwo die Möglichkeit, die "Darstellung der Liste" zu bestimmen?


Ich würde mich über einen weiteren Gedankenastoß sehr freuen, denn dann hätte ich genug Werkzeug, um sämtliche Aufgabencenter Tools bei uns zu "porten"!

Nochmals Vielen Dank und MfG Paul@GEKKO :)
 
Zuletzt bearbeitet:
Insgesamt sieht es so aus, als wenn es nicht nur lesend wäre (Neu/OK-Button, Checkboxen...), daher würde ich sagen, es wäre so etwas wie das Dashboard in xRM oder die Buchungserfassung. Beides sind Erfassungen mit Datenstruktur und damit Programierung auf Serverseite. Folgende Metadatenobjekte werden verwendet:
Datenstruktur und Data-Edit-Element bilden die Hauptelemente (das gesamte Formular ist das Data-Edit).
Navigationsliste (Liste und Datenquelle) ist die mittlere Liste (wird dem Data-Edit zugeordnet)
Selektionselement am Listenelement der Navigationsliste ist der obere Bereich.

Ein anderer Weg könnte folgender sein:
Es gibt ein Konvertierungstool von AC-Elementen zu Metadatenobjekten. Da ich das Tool nicht kenne, weiß ich allerdings nicht, ob solch komplexe Elemente übernommen werden. Was ich aber weiß, ist dass das Data-Info-Element für die Umstellung AC->Metadaten entwickelt wurde (in der Applikation verwenden wir dieses Element nicht). Aber es funktioniert in der Tat nur mit einem Datensatz.
 
Hallo Zusammen,

habe einmal ein wenig herumprobiert, aber der Groschen ist bei mir wohl noch nicht gefallen!

Ich habe hier ein Data-Edit-Element erstellt und dort die Liste als Navigationselement gewählt:
upload_2020-7-21_12-2-34.png




Nun weiß ich derweilen, dass ich auf einen MasterDetail-Element mehrere Listen und auch Data-Info-Elemente als Detail-Elemente setzen kann... so dient die Liste Artikel als "Master"...

Das Data-Info-Element wurde nun automatisch mithilfe der Funktion "aus DataEdit-Element erstellen" erzeugt und konnte dieses dann auch als Detail Element bestimmen.

Bisweilen ist dies leider der beste Versuch mein Aufgabencenter-Tool im AppDesigner umzumünzen:
upload_2020-7-21_12-10-7.png
Der 2. Reiter mit den DataInfo-Element :-(
upload_2020-7-21_12-10-43.png
(Bitte nicht an den Daten selbst stören, diese sind vorerst nur als Platzhalter gedacht)


- Ein besonderes Dorn im Auge ist jetzt natürlich das DataInfo-Element, welches einfach nur die Daten herunterrasselt, jedoch weder Trennung noch Bezeichner davor zu erkennen sind im Gegensatz zu dem DataEdit-Element!

- Auch die Suchfelder in der Liste sind leider verschwunden, wie kann ich diese wiederholen?

- Zudem habe ich noch nicht gesehen, wie ich eine Detailliste mit einer "weiteren Detailliste" versehen könnte, siehe Beispiel aus dem Aufgabencenter Tool:

upload_2020-7-21_12-37-56.png


MfG Paul@GEKKO
 
Sie können auf einen Data-Info-Element keine Register definieren, wohl aber Feldgruppen. Schauen Sie bitte in der Hilfe des AppDesigners bei der Beschreibung des Data-Info-Elementes nach (https://sagegmbh.atlassian.net/wiki/spaces/S1/pages/612597780/Daten-Info-Elemente). Dort ist ein Beispiel mit Gruppierung. Das Data-Info-Element ist wie ein schreibgeschütztes Data-Edit-Element. Daher wird hier auch keine Tabellenform, sondern Feldgruppen dargestellt. Sie haben also keine Suchliste in einem Data-Info-Element.

Zum letzten Punkt:
In einem Master-Detail-Element können keine 1:N:M-Beziehungen dargestellt werden. Sie können höchstens auf einen Detaildatensatz ein Drilldown machen (https://sagegmbh.atlassian.net/wiki/spaces/S1/pages/109051905/Aufruf+Drilldown-Funktion). Die Seriennummern würden dann also in einem extra Fenster und nur nach Kontextmenüaufruf angezeigt werden.
 
Danke @ALangmaack-Sage die Informationen haben mir sehr weitergeholfen!

Hier mein Werkstück bisher:
upload_2020-7-21_15-47-6.png


Nun habe ich eine nette Grundlage, um einige Auskünfte im AppDesigner nachzubauen :)

Jedoch stelle ich mir nun noch einige Fragen zur Formatierung:

Kann man denn an der Darstellung noch etwas drehen?
Ist es möglich, bei z.B. Verfuegbar<0 die Zeile in Rot darzustellen und bei Verfuegbar=0 diese in grau?
Kann ich ein DataInfo-Feld formatieren (Farbe, Fett, Kursiv)?
Ist es zudem noch möglich Bilder dort anzuzeigen?
Kann ich HTML-Code korrekt Interpretiert in einen DataInfo-Feld anzeigen lassen?


Diese Dinge stören eher den Benutzer und daher möchte ich dazu gerne noch Information einholen :)


In jedem Falle nochmals vielen Dank und MfG Paul@GEKKO
 

Anhänge

  • upload_2020-7-21_15-35-12.png
    upload_2020-7-21_15-35-12.png
    66,5 KB · Aufrufe: 10
Ist es möglich, bei z.B. Verfuegbar<0 die Zeile in Rot darzustellen und bei Verfuegbar=0 diese in grau?
Rechte Maus auf Spaltentitel, Auswahl bedingte Formatierung (ist glaube ich an einer Lizenz gebunden). Geht aber auch in den Metadaten in Datenquellen- und Listenfeldern mit den Attributen der Ampelfunktion.

Kann ich ein DataInfo-Feld formatieren (Farbe, Fett, Kursiv)?
Ist es zudem noch möglich Bilder dort anzuzeigen?
Kann ich HTML-Code korrekt Interpretiert in einen DataInfo-Feld anzeigen lassen?
Die drei Fragen muss ich Ihnen leider mit nein beantworten. Schauen Sie bitte in Customer Voice, ob es bereits Wünsche in diesen Richtungen gibt und bewerten Sie die dann entsprechend.
 
Ich habe es ja schon fast geahnt :-/

Das mit der Bedingten-Formatierung ist genau das, was ich gesucht hatte, selbe wie im Aufgabencenter :)
Allerdings scheint es so, als würde die Formatierung (trotz 'auf gesamte Zeile anwenden') nur auf Nummerische Werte greifen! Oder muss irgendwo noch nen Hacken setzen.


Da ich mich ja nun auch nicht scheue, etwas im Visual Studio abzutippen...

Gibt es denn einen Weg um an die "Form" mithilfe einer DLL zu kommen? Da das Grid aus den Listen verdächtig nach dem DevExpress Grid ausschaut, daher die Hoffnung irgendwie daran zu kommen und dann dort ein WindowsFormsControl platzieren (Label, Picturebox, WebBrowser, Panel)...

Das wäre was ganz tolles!


Aber ersteinmal einen schönen Feierabend gewünscht :-D
 
Soweit ich weiß, ist die bedingte Formatierung ein Feature von DevExpress. Wenn dort irgendetwas nicht geht, dann sorry geht es wohl nicht. Es gibt aber definitiv nichts zum einstellen. Die bedingte Formatierung können Sie nicht im AppDesigner anpassen. Das gehört zur Konfiguration von Listen.

Zur Programmierung kann zumindest ich Ihnen nichts sagen.
 
Vielen Dank @ALangmaack-Sage mir haben die Antworten hier schon sehr geholfen und konnte mehr Verständnis für den Umgang mit dem AppDesigner entwickeln :)

Zur bedingten Formatierung:
Im Zweifel schreibe ich eine kleine Anleitung für die Benutzer, wie diese "ihre Zeilen einfärben" können, da gibt es sowieso unterschiedliche vorlieben, der eine meckert, weil die Schrift zu blass grau ist, der nächste mag das Rot bei Verfuegbar<Bestand nicht und so weiter ^^'

Ich werde zum Thema "Form und Controls" mal ein neues Thema in der .Net-DLLs-Sektion öffnen, evtl. schaut ja da der richtige zum Thema hinein :)

Ggf. melde ich mich hier nochmal, sollten wieder Irritationen zur Handhabung des AppDesigner aufkeimen ^^'

Nochmals vielen Dank und MfG Paul@GEKKO
 
Hallo Zusammen,

mir ist noch etwas aufgefallen:
Und zwar gibt es im DataEdit-Element die Filterspalten, welche ohne meines zutuns dort sind, jedoch im DataInfo-Element nicht mehr da sind (auch nach Konvertierung von Edit zu Info) die Liste ist in der App dann auf einen MasterDetail-Element das 'Master-Detail'...

Dies will ich auch in der Liste auf meinem mdtArtikelsuche:
upload_2020-7-23_11-11-33.png
statt:
upload_2020-7-23_11-12-0.png


Wie ist es möglich, diese Filter auch für Listen-, MasterDetail- oder auch DataInfo-Elemente zu aktivieren?

Diese Filter empfinden wir als sehr nützlich und komfortabel und möchten auch in Auskünften diese Funktion nutzen können!


Ich bedanke mich jetzt schoneinmal recht herzlich für eure Unterstützungen und MfG Paul@GEKKO :)


EDIT:
Ähnlich wie bei der "Bedingten Formatierung" kann ich die Filterleiste nachträglich per Kontextmenü wieder einblenden lassen ^^' Also gar kein Ding!
Aber...
Ist es denn hier möglich, die Filterspalten standardmäßig einzublenden, ohne dass der Benutzer sich nochmal durch klicken muss?

Wenn ja, könnte es dann auch möglich sein irgendwo die "Konfigurationen" an "zentraler Stelle" zu verwalten (Titel, Position im Baum unter dem Knoten oder dann gar entsprechende Flags in der Konfiguration ändern)
upload_2020-7-23_12-55-47.png

Der ganze Formatierungsquatsch ist ja leider garnicht so meins, jedoch legen die Kollegen im Hause darauf Wert... so kann es in Zukunft passieren, dass ich zu X-Kollegen zitiert werde, um die "Konfigurationen" anzupassen, welches ich wegen solch "Pillepalle" vermeiden wollen würde!
 

Anhänge

  • upload_2020-7-23_12-49-9.png
    upload_2020-7-23_12-49-9.png
    21,6 KB · Aufrufe: 10
Zuletzt bearbeitet:
Alles was mit der Konfiguration zusammenhängt können Sie NICHT im AppDesigner einstellen. Das machen Sie in der Applikation. Sei können Muster der Konfiguration erstellen und exportieren (unter Einstellungen/Vorlagen Export im Ribbon). Diese können Sie dann wieder importieren. Wie das im Detail funktioniert, weiß ich. Wie gesagt, es ist keine Funktionalität des AppDesigners.
 
Dies ist eine gute Möglichkeit, jedoch mit der Gefahr, eine Benutzerkonfiguration zu überschreiben:

Ich kann 'Auskünfte' Exportieren (Alle Konfigurationen zu entsprechenden Dialogen), so ist ersteinmal jeglicher Control-Center quatsch ausgeklammert.
Dies kann ich dann importieren! Und es klappt, aber...

Sobald eine Konfiguration zu einem Dialog importiert wurde, werden alle bereits existierenden Konfigurationen überschrieben, hieße:

Ich müsse
1. eine Konfiguration zu einem Dialog erstellen
2. Vorlagen Export: Auskünfte, Wawi oder Rewe
3a entsprechende Konfiguration von meinem Arbeitsplatz löschen
3b sicher gehen, dass am besten keine weiteren Konfigurationen
4. Beginne bei 1 für den nächsten Dialog
:-(

Also, denke so ist es möglich den Kollegen bei jedem Roll-Out eines "Tools" zu sagen: "Bitte diese Vorlagendatei zu allererst Importieren!"

Im Zweifel bekommen die Kollegen eine Anleitung von mir ausgehändigt und bei wunsch, können die Kollegen dann ihre Formatierungen auch selbst bestimmen :p


Nochmals vielen Dank und ich werde bestimmt noch einige male das Forum bemühen müssen ^^'


MfG Paul@GEKKO
 
Hallo zusammen,

ich möchte dieses Thema nocheinmal aufleben lassen, denn ich möchte lediglich ediArtikelstamm etwas anpassen und habe bereits eigene Register und Felder dazu gepackt.

Jedoch nun das Problem: "Wie kann ich ein Register (aus Sage.Wawi.ediArtikelstamm) ausblenden?"... das setzen auf Position 0 half nicht!

Ich würde mich über einen Tipp sehr freuen und in jedem Falle vielen Dank!

MfG Paul@GEKKO
 
Ein Register wird ausgeblendet, wenn alle Felder auf diesem Register unsichtbar (oder schon per Definition Versteckt) sind.
 
Ja, vielen Dank @ALangmaack-Sage :-D

Ist eine ganz schöne klickerei bei den ganzen Feldern, ist es richtig, dass die Haken bei "Feld-Attribute Anhängen" zusätzlich gesetzt werden müssen? Ich war der Meinung, die Änderungen haben erst dann gegriffen.


Nochmals vielen Dank und MfG Paul@GEKKO
 
Die Eigenschaft "Feld-Attribute anhängen" brauchen - genauer - dürfen Sie nur setzen, wenn Sie sich an ein Element (Feld, Register etc.) des Standards (Sage) oder anderer fremder Lösungen anhängen wollen.
 
Zurück
Oben