Listenansicht in Register darstellen

Arne Drews

Mitglied
Moin,

Ich habe außer DCMs an Ereignisse zu hängen und Berichte zu erstellen/ändern noch nicht viel im AppDesigner gemacht.
Nun habe ich ein kleines Projekt, das sich aus meiner Sicht ganz gut dafür eignet, mich etwas mehr damit zu befassen.


Worum es geht
Ich habe eine Historie unserer Verkaufspreise und möchte diese gerne im Sage 100 Artikel-Stammdaten-Formular unter einem neuen Reiter Preishistorie einbinden.


Was ich gemacht habe
Ich habe in einer eigenen Lösung im AppDesigner bereits eine Datenquelle dtsArtikelPreisHistorie angelegt, wobei ich Mandant und Artikelnummer als Schlüsselfelder definiert habe. Dann habe ich ein Listen-Element lstArtikelPreisHistorie angelegt und eine Datenquelle zugewiesen.
Sowohl die Datenquelle, als auch das Listen-Element habe ich für die WaWi angehakt.


Mein Problem
Ich weiß und finde grad nicht, wie ich nun weiter komme, um das ganze auf einem neuen Reiter des Stammdatenformulars einzubinden.


Wir laufen auf der Sage v9.0.10.

Bin dankbar für Tipps und Hinweise
 
[UPDATE]
Ich habe ein mdt-Element über Anhängen an mdtArtikelstamm (Sage.Wawi) erstellt, das als Detail-Element meine Liste (lstArtikelPreisHistorie) bekommen hat. Das habe ich als Detail-Erweiterung definiert und einen passenden Titel vergeben.

Ist das der richtige Weg oder ist das kompletter Blödsinn?
 
Hi Arne,

dein Ansatz ist super für eine normale Auskunft, nach dem Packen der Liste in ein Master-Detail-Element kannst du sie eigenständig über das Regiezentrum aufrufen.

Im Artikelstamm musst du anders vorgehen, weil es sich dabei um ein Data-Edit-Element handelt. Ein Unterelement im ediArtikelstamm erwartet ein MultiDataEditPart. Das fachliche Ziel erreichst du daher mit einem kleinen Umbau:
  1. Lege für die Historientabelle einen DataRecord an, zum Beispiel recArtikelPreisHistorie. Neben Mandant und Artikelnummer braucht er einen eindeutigen Schlüssel je Historienzeile. Wenn die Historie ausprägungsabhängig ist, gehört auch die AuspraegungID in die Zuordnung.
  2. Erstelle über Anhängen an eine Erweiterung von recArtikelstamm.Sage.Wawi und füge dort eine Detail-Datensatzbeziehung zu recArtikelPreisHistorie ein, die mindestens Artikelnummer mit Artikelnummer verknüpft und im Detail-Datensatz das Mandantenfeld korrekt berücksichtigt.
  3. Erstelle ein MultiDataEditPart, etwa mdeArtikelPreisHistorie, auf Basis dieses Detail-Datensatzes. Ordne die Spalten sinnvoll an, zum Beispiel Gültigkeitsdatum, Preis und Währung. Soll die Historie nur angezeigt werden, setze die fachlichen Felder auf schreibgeschützt und biete keine Neu-/Löschen-Funktionen an.
  4. Erstelle anschließend über Anhängen an eine Erweiterung von ediArtikelstamm.Sage.Wawi. Lass in deiner Erweiterung nur die neu hinzukommenden Elemente stehen: eine Seite Preishistorie, eine Feldgruppe und darin ein Feld vom Typ Unterelement, das auf mdeArtikelPreisHistorie verweist.
  5. Aktiviere die beteiligten Objekte für die WaWi. Nach dem Einspielen sollte ein Artikelwechsel die Detailbeziehung neu auflösen und nur die Historie des geöffneten Artikels anzeigen.

Prüfe zum Schluss mit zwei Artikeln, ob beim Wechsel wirklich unterschiedliche Historien erscheinen. Falls nicht, kontrolliere zuerst die Detailbeziehung und bei Variantenartikeln zusätzlich die Zuordnung der AuspraegungID.
 
Mega, danke für Deine Mühe und ausführliche Erklärung.

Ich werde das nachher mal Step by Step aufbauen und Feedback geben.

Danke!
 
Zurück
Oben