Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: fiuman007 am 29.07.04 - 08:57:51
-
Tach,
ich will eine Beschränkung der Anhangsgröße machen. Also für ein RT-Feld hab ich jetzt folgende Formel gefunden:
if(@AttachmentLengths > 1024, Text;)
Text:" Der Anhang ist größer als 1 MB "
Geht das so überhaupt ? Also bei mir funzt es nicht irgendwie....
Irgendwelche Vorschläge?
Dankeschön
fiuman
-
Hääää !? Wo soll diese Formel stehen !?
Das ist alles andere als Formel-Sprache.... in den zwei Zeilen code sind (min) 4 Fehler...
if(@AttachmentLengths > 1024, Text;)
Text:" Der Anhang ist größer als 1 MB "
1. In Formelsprache ist der Separator nicht "," sondern ";" Das ; nach Text ist KOMPLETT überflüssig, dafür fehlt eines nach der Klammer...
2. Text:"Anhang...." liefert eine Textliste mit 2 Elementen zurück: das erste Element ist der Inhalt der Variablen Text (also leer), das zweite Element ist der Text "Der Anhang...
3. Inhaltlicher Fehler: @Attachmentlengths liefert die Grösse in BYTE. 1024 Byte sind aber kein MB sondern ein KB....)
4. Laufzeitfehler: Wenn das Dokument mehrere Attachments enthält, die jeweils unter 1 KB gross sind, in der Summe aber grösser als ein KB, dann geht die Formel schief...
SO....
Jetzt zeig ich Dir wie's richtig aussehen muss:
Du baust ein Feld, bearbeitbar, versteckt. In dessen EingabeValidierungs- Formel schreibst Du diesen Code:
x := @Sum( @AttachmentLengths );
max := 1024*1024;
text := @If( @Elements( @AttachmentNames ) = 1 ; "Der Anhang ist größer als 1 MB" ; "Die Anhänge sind zusammen grösser als 1 MB" );
@If( x > max ; @Failure( text ) ; @Success )
So...
Und jetzt solltest Du schleunigst einen Notes- Grundlagen- Kurs besuchen, oder Dich zumindest mal intensiv mit der Designer- Hilfe beschäftigen...
Gruß
Tode
-
(http://www.forum.hr/images/smilies/Hail.gif)
Danke Meister. Ich dachte es geht auch einfacher :(
Thx
-
Noch einfacher !?
Es handelt sich hier um vier Zeilen EINFACHSTEN Formel-Codes... Zwei Variablen- Zuweisungen (die man sich auch sparen kann, aber dann wird es so unübersichtlich), eine @If um die Anzahl der Attachments zu prüfen und daraufhin einen angepassten Text zu benutzen) und ein @If- Statement für die eigentliche Validierung... Viel Einfacher geht es wirklich nicht...
Aber wenn Dir das lieber ist:
@If( @Sum( @AttachmentLengths ) > 1048576 ; @Failure( "Attachment(s) grösser als 1 MB" ) ; @Success )
Oder aber, wenn Du tatsächlich willst, dass JEDES EINZELNE Attachment < 1MB ist :
@If( @AttachmentLengths > 1048576 ; @Failure( "Attachment(s) grösser als 1 MB" ) ; @Success )
Diese Formeln tun genau das gleiche wie die aus dem letzten Post... Sehen aber "einfacher" aus....
Gruß
Tode
-
Oh. Jetzt haben wir uns missverstanden glaube ich.
Mit "einfacher" dachte ich an meine erste Formel, die voll für die Katze ist. Ich wusste eben nicht wie ich es machen soll.
Aber es war jetzt nicht auf deine Antwort und deinen Post bezogen.
Den die hat ja gepasst und sieht auch verständlich aus.
Also nochmal vielen Dank
-
Ist bei dem Meister 1048576 Byte = 1 Mb ? ;D
Eine Frage hätte ich aber noch:
Die Anhänge kann man doch nur in ein RichText-Feld einfügen und ein RichText-Feld hat keine Eingabevalidierung ??? Wo schreibe ich denn die magische von dem Meister vorgeschlagene Formel?
-
Ist bei dem Meister 1048576 Byte = 1 Mb ? ;D
Wieso denn nicht?
Wie's gemacht wird steht alles in Tode' s Antwort #2
...
Du baust ein Feld, bearbeitbar, versteckt. In dessen EingabeValidierungs- Formel schreibst Du diesen Code:
x := @Sum( @AttachmentLengths );
max := 1024*1024;
text := @If( @Elements( @AttachmentNames ) = 1 ; "Der Anhang ist größer als 1 MB" ; "Die Anhänge sind zusammen grösser als 1 MB" );
@If( x > max ; @Failure( text ) ; @Success )
...
Das Feld kann ein ganz normales Textfeld mit beliebigem Namen sein.
Alternativ kannst du die Formel auf ins QuerySave-Event der Maske packen.
Axel
-
So ganz offiziell sind 1 MB (Megabyte) tatsächlich 1.000.000 Byte, 1.048.576 Byte sind hingegen 1 MiB (Mebibyte). Aber gewöhnt hat sich daran noch keiner - mich inclusive ;)
Bernhard
-
Ähm, hab ich da was verpasst? ??? :o
Ich habe irgendwann mal gelernt
1KB = 1024 Bytes
1MB = 1024 KB
ergo: 1MB = 1024 * 1024 = 1.048.576 Byte
Axel
-
Guckst Du hier (http://de.wikipedia.org/wiki/Bin%C3%A4rpr%C3%A4fixe), Axel. Gelernt habe ich es so wie Du, sauberer ist sicherlich die Trennung von Mega und Mebi - auch, wenn sich derzeit keine Sau dran hält ;D
Bernhard
-
Ahh ja. Danke für den Link.
Ich werde bei Mega bleiben. Da weiß man was man hat. Außerdem ist es egal ob eine 100 GigaByte-Platte oder eine 100 GibiByte-Platte voll ist, voll ist voll. ;D
Zu dem mach ich mir bei Giga usw keinen Knoten in die Zunge.
Axel
-
-beeindrucktbin-
1.) Euer Geduld
2.) Eure Liebe zum Detail
3.) Euren Sinn für Humor
-hutab- |vorher: :-P | |nachher: :) |