Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: mariab am 28.08.07 - 12:44:07

Titel: Problem mit Dateianhang
Beitrag von: mariab am 28.08.07 - 12:44:07
Habe folgenden Code der mittels Aktionsschaltfläche in einer Maske ausgeführt wird. Damit wird die Größe und die Anzahl der Dokumentanhänge ermittelt und das Ergebnis in die entsprechenden Felder geschrieben. Das Script funktioniert auch, bloss muss das Dokument, falls es sich dabei um ein neues handelt, zuerst gespeichert werden, bevor die Schaltfläche funktioniert. Wie kann ich dieses Problem lösen. Möchte das Script auch im querysave event einfügen.

Danke Maria

Code
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim rt As NotesRichTextItem
	Dim item As NotesItem
	
	Set uidoc = ws.CurrentDocument
	Set doc = uidoc.Document
	Set rt = doc.GetFirstItem( "D_Doku" )
	
	
	If rt Is Nothing Then
		Msgbox "Kein Dateianhang vorhanden. Speichern Sie zuerst das Dokument"
		Exit Sub
	End If
	
	Call ws.EditDocument( True )	'Um das Dokument im Edit Mode zu öffnen
	
	idx = 0
	Forall o In rt.EmbeddedObjects
		Redim Preserve strDateiInfo(idx)
		strDateiInfo(idx) = o.Name & " (" & Format(o.Filesize, "#,##0")  & " Bytes)"
' Ermittel die Gesamtgröße der Anhänge		
		gr = gr +o.Filesize		
		idx = idx + 1
' Ermittelt die Anzahl von Dateien und schreibt Sie in das Feld		
		If idx = 1 Then
			doc.D_ZuFas = idx & " Datei"
		Else
			doc.D_ZuFas = idx & " Dateien"
		End If
	End Forall
	
	doc.D_Info = strDateiInfo
	doc.D_GrGes = "mit " & Round(gr/1024,2) & " KBytes"
	
Titel: Re: Problem mit Dateianhang
Beitrag von: m3 am 28.08.07 - 12:48:54
Das Script funktioniert auch, bloss muss das Dokument, falls es sich dabei um ein neues handelt, zuerst gespeichert werden, bevor die Schaltfläche funktioniert. Wie kann ich dieses Problem lösen.
Gar nicht, IIRC. Klingt komisch, ist aber so. Siehe Forumssuche.
Titel: Re: Problem mit Dateianhang
Beitrag von: klaussal am 28.08.07 - 12:51:29
Stichwort: RT-Feld...
Titel: Re: Problem mit Dateianhang
Beitrag von: mariab am 28.08.07 - 16:18:17
Wenn ich ein Call doc.save(True, False) in das Script schreibe funktioniert es nicht. Es scheint als ob das Dokument nicht gespeichert wird.
Titel: Re: Problem mit Dateianhang
Beitrag von: koehlerbv am 28.08.07 - 17:59:50
Auch das ist hier bereits hundertmal durchgekaut. Suche nach "reopen".

Bernhard
Titel: Re: Problem mit Dateianhang
Beitrag von: pete_bla am 28.08.07 - 19:32:08
Hallo,

OK hier wurde nach Script gefragt,
aber ich hätte hier eine @variante die eine Lösung bringen könnte:

verwende berechnete Felder mit:
Code
@AttachmentLengths
@AttachmentNames
@Attachments

ein refresh genügt, speichern ist nicht notwendig.  ;)
Allerdings werden dabei alle Anhänge des Dokuments ausgewertet, nicht nur die des RT-Felds.

zusammensetzen ginge z.B. so:
Code
tpSize:= @Text(@AttachmentLengths/1024)  + " kb";
tpNames:=@AttachmentNames; 
tpNames + " " +  tpSize 
Summe der Grössen z.B. so:
Code
@Sum(@AttachmentLengths)
noch "keine Attachments" beachten sonst gibts type-missmatch bei @Text(@AttachmentLengths)"
Code
@IF(@Attachments>0; ...

Grüsse, Pete(r)

Titel: Re: Problem mit Dateianhang
Beitrag von: mariab am 29.08.07 - 09:52:02
Danke, habe es nun mit den @Formeln von Pete gelöst