Enaio Full-Client: Drag & Drop von mehreren Dateien

Drag & Drop von mehreren Dateien in den enaio Full-Client

Da mich schon mehrere Kunden nach dieser Funktion gefragt haben, beschreibe ich hier kurz eine Beispiel Umsetzung des Events.

Als erstes muss ein FileDrop-Event auf Ordnerebene angelegt was bedeutet, der Event-Dokumenttyp übergreifend ist. In diesem Event wird per asfile.filename die Drag & Drop Informationen als INI übergeben. Leider sind die Informationen nicht als Eigenschaften des asfile-Objekts verfügbar. Daher müssen diese per oxHelp ausgelesen werden.

Hierbei sind folgende Informationen verfügbar:

  • FILES.COUNT → Anzahl Drag & Drop-Dateien
  • FILES.FILE[1-9] → Dateipfad

Beispiel-Event

' INI File Helper initializieren
' Info: Dies ist mindestens in enaio 9.10 nicht mehr nötig da immer vorhanden. Ansonsten folgendermassen initialisieren
' Dim oxHelp: Set oxHelp = CreateObject("oxactive.CoxHelp")

' Anzahl Dateien
Dim FileCount: oxHelp.GetProfString "FILES", "COUNT", -1, FileCount, asfile.Filename

' Wenn mindestens eine Datei per Drag & Drop auf die Maske gezogen wurde
If FileCount > 0 Then
	For i=1 To FileCount
		' Auslesen des jeweiligen Dateipfads 
		Dim FilePath: oxHelp.GetProfString "FILES","FILE" & i, "", FilePath, asfile.Filename
		
		' Hier können über die üblichen Methoden der Client und Server API die Dateien verarbeitet werden
		
		' asfile.ResultCode=1 => Client aktualisiert nur die Tefferliste (eigener Code hat die Dateien ins enaio geladen)
		' asfile.ResultCode=0 => Datei(en) werden an den normalen Client Anlage Dialog übergeben
		' asfile.ResultCode=-1 => Anlage wird abgebrochen
		
		asfile.ResultCode=1
		asfile.WriteToFile
	Next
Else
	asfile.ResultCode=-1
	asfile.WriteToFile
End If	

Beispiel-Übergabedatei

[GLOBALS]
EventCode=200
OrdIdent=111
OrdType=1
RegIdent=4294967295
RegType=4294967295
[FILES]
COUNT=2
FILE1=C:\Users\uw\Documents\test.pdf
FILE2=C:\Users\uw\Documents\test.docx

Die ID und der Type des Ordner und Registers sind über das asfile Objekt direkt erreichbar und müssen daher nicht manuell aus der INI Datei ausgelesen werden.

Buildin Eigenschaften asfle

Offizielle Dokumentation

4 Likes

Danke , gleichmal bei einem Kunden einbauen!