Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: adminnaddel am 13.09.02 - 10:19:06

Titel: Script doc.FieldSize = db.Size
Beitrag von: adminnaddel am 13.09.02 - 10:19:06
Hallo liebe Gemeinde,

eine Frage an die LotusScript Freaks, ohne es selber ausprobiert zu haben:
Dim db As NotesDatabase
Dm s As NotesSession
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Set doc = db.CreateDocument
doc.FieldSize = db.Size
Call doc.Save(true, true)

Funzt dieser Code?
Grüsse
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: Glombi am 13.09.02 - 10:46:10
Nein
dim s as New NotesSession

Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: harkpabst_meliantrop am 13.09.02 - 11:19:47
Nein, das geht immer noch nicht, da das NotesDocument gar keine Eigenschaft FieldSize besitzt.

Was genau soll damit denn erreicht werden?

--E<:|
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: Axel am 13.09.02 - 11:25:29
Hi,

ich denke schon, wenn du die Anpassung von Glombi einbaust und ein numerisches Feld mit Namen FieldSize in der Maske vorhanden ist.

Ist das Feld nicht vorhanden wird es zwar angelegt, du siehst es dann allerdings nur in den Dokumenteigenschaften bei der Feldauflistung und nicht in der Maske selbst.

Axel
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: adminnaddel am 13.09.02 - 11:26:52
??? eigentlich hatte ich damit vor, mir die Db-Grösse damit zu berechnen lassen.
FieldSize ist ein berechnetes Feld welches mir den in einer View den Wert als Grösse /1024 anzeigen soll!
Ich hoffe die Aussage reicht so und ich habe mich verständlich ausgedrückt!
Grüsse
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: harkpabst_meliantrop am 13.09.02 - 11:36:43
Ah, langsam dämmert's auch mir. FieldSize ist ein etwas ungewöhnlicher Feldname (und es gibt ja immerhin eine gleichnamige Methode des ODBCResultSets).

Aber wenn du den Inhalt eh per Script berechnest, dann pack da doch auch gleich die Division durch 1024 mit rein. Wenn das Feld nicht bearbeitbar sein soll, dann mach es lieber zu Computed for Display (berechnet auf den eigenen Feldnamen).

Ob das Feld numerisch ist oder Text spielt dabei keine Rolle, es wird ja ohnehin über das Script gefüllt. Nur wenn du die Formatierungsoptionen nutzen willst, muss es ein Nummernfeld sein.

--E<:|
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: adminnaddel am 13.09.02 - 11:40:21
@Danke an alle!
Aber noch eine Sache:
Zitat
Aber wenn du den Inhalt eh per Script berechnest, dann pack da doch auch gleich die Division durch 1024 mit rein. Wenn das Feld nicht bearbeitbar sein soll, dann mach es lieber zu Computed for Display (berechnet auf den eigenen Feldnamen).

Wie und wo baue ich das in das Script ein?
Habe bei dem SizeBerechnenCode schon ne Stunde :-/
gebraucht!!
Grüsse
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: harkpabst_meliantrop am 13.09.02 - 11:43:14
db.Size gibt laut Doku einfach einen Double Wert, also eine Zahl zurück. Ganz stumpf
Code

doc.FieldSize = db.Size/1024

müsste eigentlich gehen ...

--E<:|
Titel: Re: Script doc.FieldSize = db.Size
Beitrag von: Axel am 13.09.02 - 12:07:30
Hi,

wenn du das in ein berechnetes Feld machen willst, könnte das Ganze so aussehen:

Als Werteformel des berechneten Feldes trägst du den Feldnamen selbst ein. Dein Feld heißt FieldSize, also trägst du in die Werteformel FieldSize ein.

Das Script trägst du in den QueryOpen-Event des Dokumentes ein.

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
     
Dim session As New NotesSession
Dim db As NotesDatabase

Set db = session.CurrentDatabase
source.document.FieldSize = db.Size/1024
     
End Sub

Ich hab's nicht probiert, sollte aber laufen.


Axel