Skip to main content

ERPDisplay – Kundendisplay für Lieferscheinpositionen

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
  • VB.NET und .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

Für die Erstellung aus dem Quellcode werden zusätzlich benötigt:

  • Visual Studio 2019 oder Visual Studio 2022
  • .NET Framework 4.8 Developer Pack

Installation

  1. ERPDisplay in einen lokalen Programmordner kopieren, beispielsweise:

    C:\Programme\ERPDisplay
    
  2. Prüfen, ob sich mindestens folgende Dateien im Programmordner befinden:

    ERPDisplay.exe
    ERPDisplay.exe.config
    anzeige.xml
    
  3. ERPDisplay.exe starten.

  4. Im Windows-Infobereich erscheint das ERPDisplay-Symbol.

  5. Ü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.

  1. Win + R drücken.

  2. Folgenden Befehl eingeben:

    shell:startup
    
  3. Eine Verknüpfung zu ERPDisplay.exe in 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
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ü

  1. Rechtsklick auf das ERPDisplay-Symbol.
  2. Anzeigedatei festlegen … auswählen.
  3. Lokalen Dateipfad oder UNC-Pfad eingeben.
  4. 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.

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:

  1. Gesamten XML-Inhalt in eine temporäre Datei schreiben.
  2. Datei vollständig schließen.
  3. Temporäre Datei atomar in anzeige.xml umbenennen 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
& &amp;
< &lt;
> &gt;
" in Attributen &quot;

Bildschirmauswahl

Die Bildschirmauswahl wird in ERPDisplay.exe.config konfiguriert.

Automatische Erkennung

<add key="BildschirmModus" value="Auto" />

Reihenfolge der automatischen Erkennung:

  1. Zusätzlicher Bildschirm mit genau 1024 × 600 Pixeln
  2. 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="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
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

  1. Prüfen, ob ERPDisplay bereits läuft.
  2. Den ausgeblendeten Bereich des Windows-Infobereichs öffnen.
  3. Alte ERPDisplay-Instanz vollständig beenden.
  4. Neu erstellte ERPDisplay.exe starten.
  5. In den Windows-Einstellungen festlegen, dass das ERPDisplay-Symbol immer angezeigt wird.

Kein Displayfenster sichtbar

  1. Windows-Anzeigemodus auf Diese Anzeigen erweitern stellen.
  2. Über Erkannte Bildschirme prüfen, ob das Display vorhanden ist.
  3. Auflösung des Virtuos-Displays auf 1024 × 600 stellen.
  4. BildschirmModus, BildschirmIndex und BildschirmGeraetename prüfen.
  5. Beachten, dass der Hauptbildschirm nicht als automatischer Fallback verwendet wird.

UNC-Datei wird nicht gelesen

  1. UNC-Pfad im lokalen Windows-Explorer öffnen.
  2. Lese- und Freigabeberechtigungen prüfen.
  3. Sicherstellen, dass ERPDisplay unter demselben Windows-Benutzer läuft, der Zugriff auf die Freigabe besitzt.
  4. Im Tray Anzeigedatei neu laden auswählen.
  5. Prüfen, ob %LocalAppData%\Firma2\ERPDisplay\Anzeigepfad.txt einen alten Pfad enthält.

Änderungen werden nicht angezeigt

  1. XML-Datei auf gültige XML-Syntax prüfen.
  2. Datei als UTF-8 speichern.
  3. Sicherstellen, dass wirklich die konfigurierte Datei geändert wird.
  4. Temporäre Datei schreiben und anschließend atomar ersetzen.
  5. 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.2
Plattform .NET Framework 4.8
Oberfläche Windows Forms
Zielauflösung 1024 × 600 Pixel
Datenformat XML, UTF-8