Lade...
 

FileDlg

FileDlg

Über diesen Befehl kann ein Dateipfad ausgewählt werden. Das Aussehen und die Funktion des Auswahlfensters wird über den Modus bestimmt. Folgende Modi stehen zur Verfügung:

Modus
205954
Numerischer Wert
(205954 veraltet)
Beschreibung
OPEN (default) 0 Datei öffnen
SAVE 1 Datei speichern
OPEN_DIRECTORY 2 Verzeichnis auswählen
OPEN_MULTIPLE 4 Datei öffnen (Mehrfachauswahl)
OPEN_WEBCAM - Datei öffnen, wenn möglich, sollte die Webcam benutzt werden
OPEN_WEBCAM_MULTIPLE - Datei öffnen, wenn möglich, sollte die Webcam benutzt werden (Mehrfachauswahl)

Statt des Bezeichners für den Modus kann auch dessen Zahl benutzt werden. Diesem ist jedoch 205954 der sprechende Bezeichner vorzuziehen.

FileDlg(title, mode), FileDlg(title)

Modi ohne Mehrfachauswahl (MULTIPLE)
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top-1 STRING Optional: Pfad (als Voreinstellung)
Stack(Out) Top STRING Dateiname (inkl. Pfad)
Modie mit Mehrfachauswahl (MULTIPLE)
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top-1 STRING Optional: Pfad (als Voreinstellung)
Stack(Out) Top ]  
  Top-1 STRING Dateiname(n) (inkl. Pfad)
  Top-2 ... ...
  Top-? [  

Alle Modi: INVALID als Rückgabewert zeigt an, dass die Auswahl vom Anwender abgebrochen wurde.

"*.log" FileDlg("Log-Datei auswählen", SAVE) -> logFileName

 

FileDlg(STACK, mode), FileDlg(STACK)

Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top STRING Titel
  Top-1 STRING Optional: Pfad (als Voreinstellung)
Stack(Out) ... ... wie oben

"*.log" T("Log-Datei auswählen", "Select Log-File") FileDlg(STACK, SAVE) -> logFileName

 

Auf den Pfad, welcher in der Umgebungsvariablen TMP gespeichert ist, kann nicht zugegriffen werden!

 

Der optionale Parameter kann sowohl als Pfadangabe oder als Datei-Filter genutzt werden. Für Modus SAVE wird damit die Vorauswahl des Dateinamens festgelegt.

Mit dem Parameter C:\temp wird das Verzeichnis vorausgewählt (nur Modus OPEN_DIRECTORY) oder mit C:\temp\* (restliche Modi) beginnt die Dateiauswahl im Verzeichnis C:\temp. Kann der Dateidialog nicht im angegebenen Verzeichnis starten, öffnet er das letzte ihm bekannte Verzeichnis.

Mit dem Parameter *.bat werden dem Benutzer nur die Dateien angezeigt, die .bat als Endung haben.
Mit c:/temp/*.bat wird der Benutzer direkt in das Temp-Verzeichnis geführt und bekommt hier nur die .bat-Dateien angezeigt.

"CX_ROOTDIR\\projects\\data\\*.xls" T("Öffnen Excel Datei", "Open excel file") FileDlg(STACK, OPEN)
Dup -> nameOfExcelFile ifnot return
CreateTransObject(CX_COM_OBJECT) -> excel
nameOfExcelFile excel Call(LoadFromFile)

FileDlg unter MorphIT

Unter MorphIT verhält sich FileDlg anders, da sich der Umgang mit Dateien ändert, wenn der Browser und ClassiX nicht auf der gleichen Maschine laufen.
 

FileDlg(,OPEN); FileDlg(,OPEN_MULTIPLE); FileDlg(,OPEN_WEBCAM); FileDlg(,OPEN_WEBCAM MULTIPLE) halten die Verarbeitung in InstantView an und zeigen im MorphIT-Client einen Upload-Dialog, in welchem eine oder mehrere Dateien ausgewählt und hochgeladen werden können (optional per Drag&Drop). Anschließend werden die Dateien der Reihe nach vom Browser zum ClassiX hochgeladen und dem Nutzer wird eine Fortschrittsanzeige gezeigt. Die Dateien werden dabei in einem neuen temporären Verzeichnis innerhalb von %TEMP% abgelegt, um so die Ursprünglichen Dateinamen beizubehalten. Gleichnamige Dateien werden dabei auf mehrere Verzeichnisse verteilt. Sobald alle Dateien hochgeladen wurden, wird die InstantView-Verarbeitung fortgesetzt und der Pfad/die Pfade zu den hochgeladenen Dateien liegen auf dem Stack. Dabei kann sich InstantView darauf verlassen, dass der Dateiname (inklusive Erweiterung) immer mit dem original Dateinamen übereinstimmt.

Sobald die Verarbeitung des aktuellen Events abgeschlossen ist, versucht ClassiX diese temporären Dateien und Verzeichnisse zu löschen. Falls dies nicht gelingt, weil sie von InstantView offen gehalten werden, dann wird dies beim Beenden von ClassiX erneut versucht. Diese Dateien sind nur als temporär anzusehen und sollten in ein bekanntes Verzeichnis kopiert/verschoben werden, falls sie weiter verwendet werden sollen.

FileDlg(,SAVE) hält die Verarbeitung von InstantView an, um den Client nach einem Dateinamen zu fragen. Wurde dieser in MorphIT eingegeben, dann legt ClassiX eine Datei mit diesem Namen in einem neuen temporären Verzeichnis an. Der Pfad zu dieser Datei wird auf den Stack gelegt und ClassiX kann diese Datei ab sofort beschreiben, oder andere Dateien dorthin kopieren. Sobald die Verarbeitung des aktuellen Events abgeschlossen ist, wird die Datei zum MorphIT-Client gepushed und taucht beim Nutzer als regulärer Download auf. Anschließend versucht ClassiX die Datei und das Verzeichnis zu löschen, weshalb die Datei nicht offen gehalten werden sollte.

Falls die angegebene Datei bereits während der Verarbeitung des Events per CX_SYSTEM_OBJECT::OpenDocument zum Client geschoben wurde, dann wird sie am Ende der Verarbeitung nicht nochmals geschoben.

FileDlg(,OPEN_DIRECTORY) Dieser Modus ist mit MorphIT nicht unterstützt, da Web-Browser keine Verzeichnisse kennen und Upload von ganzen Verzeichnissen nicht sinnvoll ist. FileDlg(,OPEN_DIRECTORY) wird eine Fehlermeldung.