Habe in einer Maske ein Feld vom Typ Richtextlite und möchte, dass dort nur PDF oder PPT Dokumente erlaub sind.
Habe versucht dies mit einem zweiten Feld zu überprüfen.
Das Feld Fülle ich mit
@right(@attachmentnames;".");
Dann schaue ich mit einer Validierungsformel nach ob das Feld die richtigen Dateien beinhaltet:
@If(D_Doku != "" & (!@Contains(Ext;"PDF") | !@Contains(Ext;"PPT"));@Failure("Dateityp nicht zugelassen");@Success)
Haken:
- Wenn das Richtextlite-Feld mehrere Dateien beinhaltet wie z.B. ein .doc und eine .pdf Datei, so funktioniert dies mit @Contains nicht mehr, da es ja ein .pdf beinhaltet.
- Wenn der Benutzer auch nur eine einzige falsche Datei anhängt, so startet die Validierungsformel und der Benutzer ist nicht mehr imstande das Dokument zu wechseln
Bräuchte hier nun einige Tipps bzw. Vorschläge wie man sowas besser löst. Vielleicht hat der eine oder ander ja auch schon eine Lösung.
Danke im Voraus für jede Hilfe
Hallo,
zum einen kannst Du mit @For eine Schleife bauen und die Endungen abfragen und vergleichen.
Zum anderen könntest Du deine Abfrage für alle nichtgewünschten Endungen umbauen.
1. Variante
REM {e ist der Counter für Fehler};
e:=0;
@For(n:=1;n<=@Elements(Ext);n:=n+1;
@If(!@Contains(@LowerCase(Ext[n]);"pdf") & !@Contains(@LowerCase(Ext[n]);"ppt");e:=e+1;"")
);
@If(e>0;@Failure...
2. Variante:
@If(D_Doku != "" & (@Contains(@LowerCase(Ext);".doc") | (@Contains(@LowerCase(Ext);".xls") | und so weiter und so weiter...);@Failure("Dateityp nicht zugelassen");@Success)
Empfehlen würde ich erste Variante und dann vielleicht noch die Endung pps mit aufnehmen.
mfg
Kjeld
PS: Die Validierung würde ich im Textfeld machen, welches die Anhangsnamen speichert.
Danke für die Hilfe. Finde die erste Lösung auch besser. Allerdings habe ich noch das Problem, dass der Benutzer es nicht schafft den Anhang zu ändern bzw. zu löschen, da die Validierungsformel sofort startet, bevor der Benutzer eine Änderung machen kann.
REM {e ist der Counter für Fehler};
e:=0;
@For(n:=1;n<=@Elements(Ext);n:=n+1;
@If(!@Contains(@LowerCase(Ext[n]);"pdf") & !@Contains(@LowerCase(Ext[n]);"ppt");e:=e+1;"")
);
@If(e>0;@Failure("Dateityp nicht zugelssen");@Success)