Datei per Windows-Dialogfenster auswählen

Tabellenfelder die Pfade zu Dateien speichern, können mittels der Codeunit Common Dialog Management aufpoliert werden. Mit der Codeunit ist es nämlich möglich, das aus Windows bekannte Dialogfenster zur Auswahl einer Datei zu nutzen – und das direkt in Dynamics NAV. Dieses kurze Tutorial zeigt, wie es funktioniert.

Die Codeunit Common Dialog Management (ID: 412) die seit der Version 3.1 von Dynamics NAV vorhanden ist, stellt uns eine entsprechende Funktion bereit um eine Datei im Windows-System auszuwählen. Dabei wird das von Windows bekannte Dialogfenster genutzt (siehe nachfolgende Abbildung).

In diesem Tutorial werden wir ein neues Feld in der Debitorentabelle hinterlegen und es auf der Debitorenkarte platzieren. Somit können wir pro Debitor einen Pfad zu einer Datei hinterlegen. In unserem Beispiel geht es um den Pfad zu einem Vertragsdokument.

Gehe zunächst über den ObjectDesigner in die Tabelle Customer (ID: 18). Dort muss ein neues Textfeld angelegt werden.

Table Designer

Speichere die Änderungen der Tabelle und gehe in die Form „Customer Card“ (ID: 21). Dort platzieren wir das gerade neu angelegte Tabellenfeld.

Form Designer

Markiere nun das Feld und gehe über „Ansicht“ in den „C/AL-Code“ und dort dann in den „OnAssistEdit“-Trigger. In diesem Trigger müssen drei lokale Variablen angelegt werden. Gehe hierzu über „Ansicht“ in die „C/AL Locals“ und lege die folgenden Variablen an:

  1. DialogMgt vom DataType Codeunit und Subtype „Common Dialog Management“
  2. DialogDefaultFileType vom DataType Option (OptionString: „ ,Text,Excel,Word,Custom”)
  3. DialogAction vom DataType Option (OptionString: „Open,Save”)

C/AL Locals

Im Trigger an sich muss der folgende C/AL-Code hinterlegt werden:

"Contract Document":=
  DialogMgt.OpenFile(
   'Vertragsdokument auswählen',
   "Contract Document",
   DialogDefaultFileType::Custom,
   'PDF-Dateien (*.pdf)|*.pdf|Alle Dateien (*.*)|*.*',
   DialogAction::Open);

Speichere die Form.

Wenn du nun die Form öffnest wird über den AssistButton des Feldes das Dialogfenster geöffnet.


 

Zurück zur Tutorialübersicht.