Back to Sagegmbh

Anzeige und Bearbeitung von zusätzlichen Registern in Stammdaten

wiki-spaces-s1-pages-541032610-anzeige-plus-und-plus-bearbeitung-plus-von-plus-zus-plus-tzlichen-plus-registern-plus-in-plus-stammdaten.md

latest5.9 KB
Original Source

Anzeige und Bearbeitung von zusätzlichen Registern in Stammdaten

By Andreas Langmaack (Unlicensed)

Jan 07, 2019

2 min

Add a reaction

Bei einer Projektsteuerung können Mitarbeiter verplant werden. Um hier eine valide Eingabe tätigen zu können, sollen im Mitarbeiterstamm des Standards Fehlzeiten (geplante Urlaube, Weiterbildung etc.) hinterlegt werden können. Da die anzulegenden Metadaten nicht von neuen Registern/Feldgruppen, sondern von der Beziehung abhängen, wollen wir diesen Punkt zuerst klären.

Frage: Handelt es sich um eine 1:N-Beziehung?
  • Die Antwort ist Ja: Sie müssen den Hauptdatensatz des Standards, den eigenen Datensatz, das Daten-Edit-Element des Standards und ein Multi-Daten-Edit-Element anlegen

  • Die Antwort ist Nein: Sie müssen den Hauptdatensatz des Standards und das Daten-Edit-Element des Standards anlegen

Die Fehlzeiten sind eine 1:N-Beziehung. Im Kapitel Erstellung eines Stammdatendialoges wird beschrieben, wie die 1:N-Beziehungen in den Metadaten definiert werden. Sie werden in der Eigenschaft "Detail-Datensätze" des Hauptdatensatzes eingetragen. Daher muss auch der Hauptdatensatz angelegt werden. Da wir die neue 1:N-Beziehung beim Hauptdatensatz hinterlegen müssen, fangen wir mit dem neuen Datensatz an. Die zugrunde liegende Tabelle ist "BPKMitarbeiterFehlzeiten". Wir verwenden den Assistenten "Tabelle importieren". In allen Bereichen (Datensatz und Elemente) legen wir dafür die Gruppe "Mitarbeiterstamm" an.

  • Anlage des Datensatzes "recMitarbeiterstammFehlzeiten"

  • Anlage des Datensatzes "recMitarbeiterstamm"

  • Anlage des Multi-Daten-Edit-Elementes "mdeMitarbeiterstammFehlzeiten" mit "Datenherkunft zuordnen" = "recMitarbeiterstammFehlzeiten"

  • Anlage des Daten-Edit-Elementes "ediMitarbeiterstamm"

  • Anlage des Kontextmenüs "MitarbeiterFehlzeiten"

  • Zuordnung des Kontextmenüs "MitarbeiterFehlzeiten" zum Multi-Daten-Edit-Element "mdeMitarbeiterstammFehlzeiten"

Frage: Basieren Daten, die in der Liste angezeigt werden, auf Daten, die in der Mandanten-Datenbank mit Werten gespeichert werden, die nicht der gewünschten Anzeige entsprechen (in unserem Beispiel „Fehlzeit“)?
  • Antwort ist Ja: Sie benötigen zusätzlich String Ressourcen.

  • Antwort ist Nein: Daten werden weiterhin als Integerwerte bzw. Checkboxen angezeigt

Laut Beschreibung im Beispiel gibt es festgelegte Arten der Fehlzeiten. Diese Arten legen wir als String-Ressource an:

|

Name

|

ID

|

Wert

| | --- | --- | --- | |

Fehlzeit

|

0

|

Verfügbar

| |

Fehlzeit

|

1

|

Urlaub

| |

Fehlzeit

|

2

|

Sonderurlaub

| |

Fehlzeit

|

3

|

Krankmeldung

|

Wählen Sie den Datensatz "recMitarbeiterstammFehlzeiten" aus und selektieren Sie dann das Feld "Fehlzeit". Ändern sie die Eigenschaft "Datentyp" in "Indizierter String" und hinterlegen Sie die String-Ressourcen in der Eigenschaft "Datentyp Ergänzung".

Frage: Müssen Daten erfasst und/oder angezeigt werden, die zwar in den zugrunde liegenden Tabellen des Stammdatendialogs gespeichert, aber auf Daten beruhen, die in anderen Bereichen der Applikation erfasst werden?
  • Antwort ist Ja: Sie benötigen zusätzliche Datenreferenzen und/oder Datenklassen und/oder serverseitige Datenbeschaffung

  • Antwort ist Nein: Weiter mit Validierungen

Der Vertreter ist ein Mitarbeiter. Die Datenklasse für Mitarbeiter ist im Standard bereits vorhanden. Wählen Sie den Datensatz "recMitarbeiterstammFehlzeiten" aus und selektieren Sie dann das Feld "Vertreter". Ändern sie die Eigenschaft "Datentyp" in "Schlüssel 1 einer Datenklasse" und hinterlegen Sie in der Eigenschaft "Datenklasse" "clsMitarbeiter.Sage.System".

Frage: Müssen Eingaben/Änderungen vor dem Speichern, oder das Löschen von Datensätzen validiert werden?
  • Die Antwort ist Ja: Sie brauchen einen Makroaufruf und eine .Net-Assembly, die serverseitig ausgeführt wird

  • Die Antwort ist Nein: Die Anzeige einer zusätzlichen Registerkarte in Standard-Stammdaten ist abgeschlossen

Die Aufgabe ist, zu prüfen, ob bei einer Fehlzeit "Urlaub bezahlt" und "Sonderurlaub" eine Vertretung angegeben wurde. Wie bereits mehrfach erwähnt, erfolgt eine Vaildierung immer serverseitig. Wir codieren die Validierung und hinterlegen im Datensatz "recMitarbeiterstammFehlzeiten" im Ereignis "Vor Änderung":

|

Zeile

|

Befehl

|

Parameter 1

|

Parameter 2

| | --- | --- | --- | --- | |

1

|

Wenn

|

IsRunningOnServer()

|

| |

2

|

AufrufenDll

|

Sagede.ADID.Projektsteuerung.RealTimeData.dll

|

Sagede.ADID.Projektsteuerung.RealTimeData.Macros.MitarbeiterstammFehlzeitenBeforeUpdate

| |

3

|

Wenn

|

[_Canceled]

|

| |

4

|

FehlerMelden

|

100065830.ADID_Projektsteuerung.Platzhalter.0

|

[_CanceledMessage]

| |

5

|

Abbruch

|

|

| |

6

|

EndeWenn

|

|

| |

7

|

EndeWenn

|

|

|

Hinweis für Developer Partner

WDB-Eintrag 203334:

Dokument "Zusatzdokumentation zum Wiki für Developer Partner", Kapitel 2.1 MacroProcessBase

Anhang ADID.Projektsteuerung.rar

Dateien/Klassen MitarbeiterstammFehlzeitenBeforeUpdate

Collapse action bar

View all comments

Open Details Panel

Create page

Open Rovo Chat

Comments

Add a reaction

Anonymous

Dec 2, 2025

@Andreas Langmaack

Wie kann mann denn so ein Register per Makro oder so komplett ein- bzw. ausblenden je nach Situation? z.B. bei bestimmten Artikelgruppen soll dieser Extra-Reiter da sein, bei anderen nicht. Bonusfrage: Kann man dann auch verhindern, dass der User sich die Spalten von dem Register runter zieht und sich in ein anderes Register reinzieht (wodurch die Ein-/Ausblende-Logik etwas hinfälliger wäre)?

Reply

Anonymous

Dec 3, 2025

Antwort Sage: Wir können hier leider keinen Support leisten. Bitte mit dieser Frage an Ihren Support wenden.

Reply

Add a comment