ERPDisplay – Kundendisplay für Lieferscheinpositionen
Zweck
ERPDisplay ist eine Windows-Hintergrundanwendung zur Darstellung von Lieferscheinpositionen auf einem separaten Kundendisplay.
Die Anwendung ist für folgende Umgebung vorgesehen:
- Virtuos-Kundendisplay mit 1024 × 600 Pixeln
- Windows-Arbeitsplatz mit lokal angeschlossenem Kundendisplay
- ERP-System innerhalb einer RDP-Sitzung
- Datenaustausch über eine lokale XML-Datei oder eine SMB-/UNC-Netzwerkfreigabe
- Erforderliches Framework: .NET Framework 4.8
ERPDisplay läuft ohne sichtbares Hauptfenster. Die Bedienung erfolgt über ein Symbol im Windows-Infobereich neben der Uhr.
Systemaufbau
ERP-System in der RDP-Sitzung
│
│ schreibt anzeige.xml
▼
SMB-/UNC-Netzwerkfreigabe
│
│ Dateiänderung
▼
ERPDisplay auf dem lokalen Arbeitsplatz
│
▼
Lokal angeschlossenes Virtuos-Display
Das Kundendisplay wird nicht in die RDP-Sitzung übernommen. Es bleibt Bestandteil des lokalen Windows-Arbeitsplatzes.
Voraussetzungen
- Windows 10 oder Windows 11
- .NET Framework 4.8
- Virtuos-Display als zusätzlicher Windows-Bildschirm
- Bildschirmauflösung 1024 × 600 Pixel
- Windows-Anzeigemodus Diese Anzeigen erweitern
- Lesezugriff des lokalen Benutzers auf die XML-Datei
- Schreibzugriff des ERP-Benutzers auf die XML-Datei
Installation
-
ERPDisplay in einen lokalen Programmordner kopieren, beispielsweise:
C:\Programme\ERPDisplay -
Prüfen, ob sich mindestens folgende Dateien im Programmordner befinden:
ERPDisplay.exe ERPDisplay.exe.config anzeige.xml -
ERPDisplay.exestarten. -
Im Windows-Infobereich erscheint das ERPDisplay-Symbol.
-
Über Erkannte Bildschirme prüfen, welcher Bildschirm das Kundendisplay ist.
ERPDisplay verhindert den gleichzeitigen Start mehrerer Programminstanzen innerhalb derselben Windows-Sitzung.
Automatischer Programmstart
ERPDisplay sollte beim Anmelden des lokalen Windows-Benutzers gestartet werden.
-
Win + Rdrücken. -
Folgenden Befehl eingeben:
shell:startup -
Eine Verknüpfung zu
ERPDisplay.exein diesem Ordner anlegen.
ERPDisplay sollte nicht als Windows-Dienst ausgeführt werden. Windows-Dienste laufen in der nicht interaktiven Session 0 und können das Kundendisplay im Benutzerdesktop nicht zuverlässig ansteuern.
Bedienung über das Tray-Symbol
Ein Rechtsklick auf das ERPDisplay-Symbol öffnet das Menü.
| Menüpunkt | Funktion |
|---|---|
| Anzeigedatei festlegen … | Lokale XML-Datei oder UNC-Pfad auswählen bzw. eingeben |
| Anzeigedatei neu laden | Aktuelle Datei manuell erneut einlesen |
| Erkannte Bildschirme | Bildschirmindex, Gerätename und Auflösung anzeigen |
| Darstellungsgröße | Anzeige zwischen Normal, Mittel und Groß umschalten |
| Beenden | Displayfenster und ERPDisplay schließen |
Ein Doppelklick auf das Tray-Symbol liest die Anzeigedatei ebenfalls neu ein.
Anzeigedatei festlegen
Die Anzeigedatei kann auf drei Arten angegeben werden.
Auswahl über das Tray-Menü
- Rechtsklick auf das ERPDisplay-Symbol.
- Anzeigedatei festlegen … auswählen.
- Lokalen Dateipfad oder UNC-Pfad eingeben.
- Mit OK bestätigen.
Beispiel für einen UNC-Pfad:
\\Fileserver\ERPDisplay\KASSE01\anzeige.xml
Die Auswahl wird benutzerspezifisch gespeichert:
%LocalAppData%\Firma2\ERPDisplay\Anzeigepfad.txt
Diese Benutzereinstellung hat Vorrang vor der Einstellung in ERPDisplay.exe.config.
Darstellungsgröße
Die Größe der gesamten Kundenanzeige kann während des Betriebs über das Tray-Menü geändert werden:
Darstellungsgröße
├── Normal
├── Mittel
└── Groß
Die Änderung wird sofort übernommen und benutzerspezifisch gespeichert unter:
%LocalAppData%\Firma2\ERPDisplay\Anzeigegroesse.txt
| Modus | Darstellung | Maximal sichtbare Zeilen |
|---|---|---|
| Normal | Standard | 8 |
| Mittel | Vergrößert | 7 |
| Groß | Stark vergrößert | 6 |
Der Standardwert wird in ERPDisplay.exe.config festgelegt:
<add key="Darstellungsgroesse" value="Normal" />
Gültige Konfigurationswerte sind Normal, Mittel und Gross.
Konfiguration über ERPDisplay.exe.config
Lokale Datei:
<add key="Anzeigedatei" value="C:\ERPDisplay\anzeige.xml" />
UNC-Netzwerkpfad:
<add key="Anzeigedatei"
value="\\Fileserver\ERPDisplay\KASSE01\anzeige.xml" />
Relativer Pfad neben ERPDisplay.exe:
<add key="Anzeigedatei" value="anzeige.xml" />
Empfohlene Netzwerkstruktur
Für jeden Arbeitsplatz sollte ein eigenes Verzeichnis verwendet werden:
\\Fileserver\ERPDisplay\
├── KASSE01\anzeige.xml
├── KASSE02\anzeige.xml
├── KASSE03\anzeige.xml
└── LAGER01\anzeige.xml
Beispiel für Arbeitsplatz KASSE01:
\\Fileserver\ERPDisplay\KASSE01\anzeige.xml
Das ERP muss die Kennung des aktuellen Arbeitsplatzes kennen und die XML-Datei in dessen Verzeichnis schreiben.
Empfohlene Berechtigungen
| Benutzer/Gruppe | Berechtigung |
|---|---|
| Lokaler Arbeitsplatzbenutzer | Lesen |
| ERP-Anwendung bzw. ERP-Benutzer | Lesen, Schreiben, Ändern |
| Andere Arbeitsplatzbenutzer | Kein Zugriff oder nur auf das eigene Verzeichnis |
XML-Format: Positionen anzeigen
<?xml version="1.0" encoding="utf-8"?>
<Anzeige modus="Positionen"
titel="Ihr Lieferschein"
belegnummer="LS 2026-004218">
<Zeile typ="Position"
artikelnummer="1004711"
bezeichnung="Aluminiumprofil 40 × 40 mm"
menge="12 Stk." />
<Zeile typ="Position"
artikelnummer="1005820"
bezeichnung="Befestigungssatz [b]Premium[/b]"
menge="2 Satz" />
<Zeile typ="Vollbreite"
hervorgehoben="true"
text="[b]Hinweis:[/b] Ware vollständig geprüft und kommissioniert." />
<Zeile typ="Position"
artikelnummer="1006105"
bezeichnung="Schutzkappe schwarz"
menge="24 Stk." />
</Anzeige>
Attribute des Elements Anzeige
| Attribut | Pflicht | Bedeutung |
|---|---|---|
| modus | Ja | Positionen oder Leer |
| titel | Nein | Überschrift im oberen Bereich |
| belegnummer | Nein | Lieferschein- oder Belegnummer |
| information | Nein | Information für den Modus Leer |
Normale Positionszeile
<Zeile typ="Position"
artikelnummer="A-100"
bezeichnung="Beispielartikel"
menge="2 Stk." />
| Attribut | Bedeutung |
|---|---|
| artikelnummer | Artikelnummer |
| bezeichnung | Artikelbezeichnung |
| menge | Menge einschließlich optionaler Einheit |
Vollbreitenzeile
<Zeile typ="Vollbreite"
hervorgehoben="true"
text="[b]Hinweis:[/b] Ware vollständig geprüft." />
Eine Vollbreitenzeile verwendet die gesamte Tabellenbreite. Sie eignet sich für Hinweise, Statusmeldungen oder zusätzliche Informationen.
Fettformatierung
Text innerhalb von [b] und [/b] wird fett dargestellt:
Befestigungssatz [b]Premium[/b]
Die Formatierung kann in Artikelnummer, Bezeichnung, Menge und Vollbreitenzeilen verwendet werden.
XML-Format: Anzeige leeren
Wenn keine Lieferscheinpositionen vorhanden sind, wird der Modus Leer verwendet:
<?xml version="1.0" encoding="utf-8"?>
<Anzeige modus="Leer"
titel="Willkommen"
information="Aktuell sind keine Lieferscheinpositionen vorhanden." />
Dadurch wird die Positionstabelle geleert und die angegebene Information dargestellt.
Wird die XML-Datei vollständig gelöscht, zeigt ERPDisplay automatisch:
Willkommen
Warte auf neue Anzeigedaten.
Sicheres Aktualisieren der XML-Datei
Die ERP-Anwendung sollte anzeige.xml nicht langsam und direkt überschreiben. ERPDisplay könnte die Datei sonst lesen, während sie erst teilweise geschrieben wurde.
Empfohlenes Verfahren:
- Gesamten XML-Inhalt in eine temporäre Datei schreiben.
- Datei vollständig schließen.
- Temporäre Datei atomar in
anzeige.xmlumbenennen bzw. die vorhandene Datei ersetzen.
Beispiel:
anzeige.tmp schreiben
↓
Datei schließen
↓
anzeige.tmp → anzeige.xml
ERPDisplay überwacht Änderungen, Neuanlagen, Umbenennungen und Löschungen.
Die XML-Datei muss als UTF-8 gespeichert werden. XML-Sonderzeichen müssen maskiert werden:
| Zeichen | XML-Schreibweise |
|---|---|
& |
& |
< |
< |
> |
> |
" in Attributen |
" |
Bildschirmauswahl
Die Bildschirmauswahl wird in ERPDisplay.exe.config konfiguriert.
Automatische Erkennung
<add key="BildschirmModus" value="Auto" />
Reihenfolge der automatischen Erkennung:
- Zusätzlicher Bildschirm mit genau 1024 × 600 Pixeln
- Anderer zusätzlicher Bildschirm
Der Hauptbildschirm wird niemals als automatischer Fallback verwendet.
Wenn kein zusätzlicher Bildschirm vorhanden ist, öffnet ERPDisplay kein Anzeigefenster und meldet den Fehler über das Tray-Symbol.
Fester Bildschirmindex
<add key="BildschirmModus" value="Index" />
<add key="BildschirmIndex" value="1" />
Die verfügbaren Indizes können über Erkannte Bildschirme angezeigt werden.
Fester Windows-Gerätename
<add key="BildschirmModus" value="Geraetename" />
<add key="BildschirmGeraetename" value="\\.\DISPLAY2" />
Der Gerätename ist meist stabiler als der Index, da sich Bildschirmindizes nach dem Umstecken verändern können.
Verhalten bei Netzwerkunterbrechungen
ERPDisplay verwendet bei einem UNC-Pfad eine ereignisbasierte Dateiüberwachung.
Bei erreichbarer Freigabe:
- keine permanente Abfrage der XML-Datei
- automatisches Einlesen bei Dateiänderungen
- sehr geringe Netzlast
Bei nicht erreichbarer Freigabe:
- ERPDisplay bleibt aktiv
- die letzte gültige Anzeige bleibt erhalten
- ohne vorherige Daten erscheint ein Wartezustand
- ERPDisplay versucht automatisch, die Verbindung wiederherzustellen
Das Wiederholungsintervall wird in Millisekunden konfiguriert:
<add key="NetzwerkWiederholungMs" value="10000" />
Der Wert 10000 entspricht zehn Sekunden.
Netzlast
Die Überwachung arbeitet bei einer bestehenden SMB-Verbindung ereignisbasiert. Die XML-Datei wird nur bei einer tatsächlichen Änderung gelesen.
Die mitgelieferte Beispieldatei ist kleiner als 1 KB.
| Änderungshäufigkeit | Ungefähre XML-Nutzdaten pro Tag |
|---|---|
| einmal pro Minute | etwa 1 MB |
| alle 30 Sekunden | etwa 2 MB |
| alle 10 Sekunden | etwa 6 MB |
Hinzu kommen SMB-Protokoll- und Metadatenpakete. Bei normaler Nutzung liegt die gesamte Netzlast üblicherweise nur bei wenigen Megabyte pro Arbeitsplatz und Tag.
Nur während die Freigabe nicht erreichbar ist, erfolgt entsprechend NetzwerkWiederholungMs eine kurze Verfügbarkeitsprüfung.
Wichtige Einstellungen
Beispiel einer vollständigen Konfiguration:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"
sku=".NETFramework,Version=v4.8" />
</startup>
<appSettings>
<add key="BildschirmModus" value="Auto" />
<add key="BildschirmIndex" value="1" />
<add key="BildschirmGeraetename" value="\\.\DISPLAY2" />
<add key="ImmerImVordergrund" value="true" />
<add key="Darstellungsgroesse" value="Normal" />
<add key="Anzeigedatei"
value="\\Fileserver\ERPDisplay\KASSE01\anzeige.xml" />
<add key="DateiAenderungsverzoegerungMs" value="300" />
<add key="NetzwerkWiederholungMs" value="10000" />
</appSettings>
</configuration>
| Einstellung | Bedeutung |
|---|---|
| BildschirmModus | Auto, Index oder Geraetename |
| BildschirmIndex | Nullbasierter fester Bildschirmindex |
| BildschirmGeraetename | Fester Windows-Gerätename |
| ImmerImVordergrund | Anzeigefenster im Vordergrund halten |
| Darstellungsgroesse | Normal, Mittel oder Gross |
| Anzeigedatei | Lokaler Pfad, relativer Pfad oder UNC-Pfad |
| DateiAenderungsverzoegerungMs | Wartezeit vor dem Lesen einer geänderten Datei |
| NetzwerkWiederholungMs | Wiederholungsintervall bei nicht erreichbarem Ordner |
Fehlerbehebung
Tray-Symbol wird nicht angezeigt
- Prüfen, ob ERPDisplay bereits läuft.
- Den ausgeblendeten Bereich des Windows-Infobereichs öffnen.
- Alte ERPDisplay-Instanz vollständig beenden.
- Neu erstellte
ERPDisplay.exestarten. - In den Windows-Einstellungen festlegen, dass das ERPDisplay-Symbol immer angezeigt wird.
Kein Displayfenster sichtbar
- Windows-Anzeigemodus auf Diese Anzeigen erweitern stellen.
- Über Erkannte Bildschirme prüfen, ob das Display vorhanden ist.
- Auflösung des Virtuos-Displays auf 1024 × 600 stellen.
BildschirmModus,BildschirmIndexundBildschirmGeraetenameprüfen.- Beachten, dass der Hauptbildschirm nicht als automatischer Fallback verwendet wird.
UNC-Datei wird nicht gelesen
- UNC-Pfad im lokalen Windows-Explorer öffnen.
- Lese- und Freigabeberechtigungen prüfen.
- Sicherstellen, dass ERPDisplay unter demselben Windows-Benutzer läuft, der Zugriff auf die Freigabe besitzt.
- Im Tray Anzeigedatei neu laden auswählen.
- Prüfen, ob
%LocalAppData%\Firma2\ERPDisplay\Anzeigepfad.txteinen alten Pfad enthält.
Änderungen werden nicht angezeigt
- XML-Datei auf gültige XML-Syntax prüfen.
- Datei als UTF-8 speichern.
- Sicherstellen, dass wirklich die konfigurierte Datei geändert wird.
- Temporäre Datei schreiben und anschließend atomar ersetzen.
- Bei einfachen NAS-Systemen prüfen, ob SMB-Änderungsbenachrichtigungen unterstützt werden.
XML-Fehlermeldung
Bei ungültigem XML bleibt die letzte gültige Anzeige bestehen. Typische Ursachen:
- fehlendes Wurzelelement
<Anzeige> - unbekannter Modus
- unbekannter Zeilentyp
- nicht maskiertes
& - fehlendes Anführungszeichen
- Datei wurde während des Schreibens gelesen
Versionsinformation
| Komponente | Version |
|---|---|
| Anwendung | ERPDisplay 1.3 |
| Plattform | .NET Framework 4.8 |
| Oberfläche | Windows Forms |
| Zielauflösung | 1024 × 600 Pixel |
| Datenformat | XML, UTF-8 |