Autor Thema: @Attachmentlengths im Queryclose Event  (Gelesen 2661 mal)

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
@Attachmentlengths im Queryclose Event
« am: 21.08.03 - 14:06:20 »
Hallo liebe Gemeinde,

ein Button ermöglicht mir das in einer Form ein Attachment auszuwählen, es in ein RichTextField zu packen und den Path zur eigentlichen Datei in ein weiteres Field zu schreiben.

Jetzt möchte ich aber, das beim speichern über das Event Queryclose abegrfragt wird, ob das Attachment über 1Mb groß ist. Wenn ja, dann bitte überschreibe es wieder und speicher es ohne.

Ich poste mal beide Formeln. Mein Problem ist halt nur, das eigentlich das ganze sauber läuft, nur habe ich eine Problem mit dem @SetField, denn das greift bei RichTextFeldern nicht!

Ich kriege einfach keine saubere Lösung hin!!! :(
Bessere wäre natürlich noch, wenn man gleich bei der Auswahl des Attachments darauf hingewiesen wird, aber ich denke, das wird nicht wohl nicht möglich sein!!!???

newFileList := @Prompt( [LOCALBROWSE]; "" ; "1" );
@SetField( "Path"; newFileList );
@Command([EditGotoField]; "Attachment");
@Command([EditInsertFileAttachment]; newFileList)

Hier das Event:
FIELD Attachment := Attachment;
@If(@AttachmentLengths/1024 >1024;
@Do(@Prompt([OK];"Attachment ist über 1Mb!";"");@Command([EditGotoField]; "Attachment");@SetField("Attachment";""));"")

Viele Grüße
Andreas
« Letzte Änderung: 21.08.03 - 14:18:48 von adminnaddel »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@Attachmentlengths im Queryclose Event
« Antwort #1 am: 21.08.03 - 14:21:22 »
Ohne es ausprobiert zu haben: Könnte in diesem Kontext @DeleteField weiter helfen ?
Kommt LS nicht in Frage ?

Bernhard

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
Re:@Attachmentlengths im Queryclose Event
« Antwort #2 am: 21.08.03 - 14:25:06 »
Hi,
@DeleteField greift doch nur, so meine ich, wenn die Form nicht im EditModus ist.
How ever, wenn ich das Feld lösche, aber im nachhinein dann doch das Tool packe und es dem Dokument hinzufügen möchte, gibt es das Feld nicht mehr.

Lotus Script eine schöne Sache, doch fehlt in der Formel doch einfach nur das i-tüpfelchen, oder nicht?

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@Attachmentlengths im Queryclose Event
« Antwort #3 am: 21.08.03 - 14:29:53 »
... und mit @Commands ?
- GotoField
- SelectAll
- EditClear

Wie gesagt - nur so aus dem hohlen Bauch ...

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
Re:@Attachmentlengths im Queryclose Event
« Antwort #4 am: 21.08.03 - 15:01:45 »
Null Chance

Das greift bei richtext nicht!
Hier muss es einen anderen Weg geben  ???

Grüße
Andreas

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:@Attachmentlengths im Queryclose Event
« Antwort #5 am: 21.08.03 - 16:02:18 »
Ich sach mal - ebenfalls aus dem schon wieder ziemlich holen Bauch heraus:

PostSave-Event

Da ist das RT-Feld schon im Dokument, und obwohl das Dok ja eigentlich schon gespeichert ist, kann man genialerweise noch Änderungen vornehmen. Eines der viel zu wenig beachteten neuen R5-Features.

Driri

  • Gast
Re:@Attachmentlengths im Queryclose Event
« Antwort #6 am: 21.08.03 - 16:09:20 »
Hi,

ich würde das wirklich mit Script lösen. Ich hab gerade mal nen bißchen rumprobiert :

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim filesize As Long
   
Set uidoc = ws.CurrentDocument
Set doc = uidoc.document
Set rtitem = doc.GetFirstItem("Body")
Set item = doc.GetFirstItem("Body")
   
filesize = 0
   
If doc.HasEmbedded Then
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Set object = rtitem.GetEmbeddedObject( o.Source )
filesize = filesize + object.FileSize
End If
End Forall
End If
End If
   
If (filesize > 1048576) Then
Messagebox "FEHLER"
      
Forall x In rtitem.EmbeddedObjects
If Not( x Is Nothing ) Then
If ( x.Type = EMBED_ATTACHMENT ) Then
Call x.Remove
End If
End If
End Forall
      
Call doc.save(True, False)
      
End If      
End If


Edit : Das sollte so funktionieren, erste Version war buggy.
« Letzte Änderung: 21.08.03 - 16:15:56 von Driri »

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
Re:@Attachmentlengths im Queryclose Event
« Antwort #7 am: 21.08.03 - 16:29:00 »
 ::)
Ein Versuch der Erklärung!
Es liegt nicht an der Auswahl des Events, ich denke mal laut, es liegt an der Eigentschaft des RichTextFeldes. Hier ist es nicht mit @Commands möglich, den enthaltenen Wert "x" im RichTextField vor dem saven zu greifen.

Grüße
Andreas

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
Re:@Attachmentlengths im Queryclose Event
« Antwort #8 am: 21.08.03 - 16:44:24 »
@Diri,

danke für das Script, doch wo bringe ich es rein? Ins event?

Driri

  • Gast
Re:@Attachmentlengths im Queryclose Event
« Antwort #9 am: 21.08.03 - 16:46:46 »
Jupp, ich habs im Queryclose getestet.

Offline adminnaddel

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 819
  • Geschlecht: Männlich
  • What a wonderful girl, so beautiful und se....;-)
Re:@Attachmentlengths im Queryclose Event
« Antwort #10 am: 21.08.03 - 17:02:07 »
Okay, postsave läuft es glatter!

 ;D
Tausend dank!!

Andreas

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:@Attachmentlengths im Queryclose Event
« Antwort #11 am: 23.08.03 - 23:18:19 »
Kein Wunder.

Ein RichtText-Feld (oder natürlich nachträgliche Änderungen an sienem Inhalt) werden erst nach dem Speichern Teil des Dokuments. Die Verwendete Programmiersprache hat damit nichts zu tun.

Vermutlich hätte man's auch mit Formeln irgendwie hinbiegen können, aber wozu, wenn du das Skript frei Haus bekommst?  8)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz