Domino 9 und frühere Versionen > Entwicklung
LS: Grösse eines RTItems ermitteln
eknori:
wenn ich Bernhard richtig verstanden habe, möchte er die Grösse eines RT Feldes ermitteln; OK da soll in LS erfolgen, ich mach e mal den Anstz in @Formula ( oder so ein Mix daraus )
@DocLength liefert ja die ( ungefähre , 64 kb Unschärfe ) Groesse des kompletten Docs zurück..
GetFormattedText(RTItem) gibt die Groesse des Textanteils eines RTitems zurück.
Also ist tmp:= @DocLength ( oder doc.size ) - GetFormattedText ( RTItem) = Groesse aller der Attachments incl $file Items des gefragten RTItems,
Daraus folgt daß tmp + @Length(GetFormattedText (RTItem)) die Grösse des betreffenden RTItem liefert.
TMC:
@Ulrich: aber Bernhard hat ja glaub ich mehrere RT-Items im Dokument, die vielleicht auch noch dynamische Größen haben? (siehe auch meine Frage oben)
--- Zitat von: koehlerbv am 10.08.05 - 21:32:43 ---NotesItem.ValueLength zeigt die Grösse des letzten Items, das mit GetFirstItem gefunden wurde, an - und sonst gar nichts.
--- Ende Zitat ---
Hier muss ich nochmal nachbohren:
Hast Du evtl. mehrere Items mit gleichem Namen, bzw. willst Du das abfangen?
Hier könnte man doch die Items Property der NotesDocument-Klasse nutzen, und alle Items über eine Schleife abarbeiten. Soweit ich weiß hat diese Property *alle* Items als Array. D.h. gibt es z.B. mehrere Body-Items, so sollten in dem Array auch mehrere Items "Body" verfügbar sein. Diese könnte man dann durchloopen und mit NotesItem.Name dann abfragen, ob es einem definierten Namen entspricht. Wenn ja: lngCount = lngCount + NotesItem.ValueLength
koehlerbv:
Danke für Eure Mithilfe. Ich denke, ich habe eine (zwar unscharfe, aber durchaus brauchbare Lösung gefunden):
Das Loopen durch die Items bringt leider nix - es heisst ja "GetFirstItem". Ein eingefügtes Bild kann durchaus schon mal mehr haben ... Und selbst puren Text können Labersäcke ausdehnen bis zum geht nicht mehr. Folge: x Items gleichen Namens. OLE gibt viele $Files und ein kleines RTI, ein Attachment ein $File (was man nett auslesen kann) oder ggf. auch mehrere (jetzt ohne Garantie).
Ich mache jetzt folgendes:
Temporäres Dokument erzeugen
NotesItem.CopyToDocument
und nun die Grösse dieses temp. Dokuments ermitteln (NotesDocument.Size. Das ist bis auf den üblichen Overhead für meine Zwecke genau genug (ca. 100 Byte Overhead bei RTI mit importierten Images, durchaus 1 kB bei Attachments oder OLE-Objects).
Nochmals vielen Dank für Eure Mühen.
Bernhard
PS: Ich hätte dies vermutlich schon dreissig Minuten eher posten können. Da kam mir die Idee mit dem temp. Document, und ich dachte mir: Darauf ein Wieninger ! Im Flur (zappenduster) raschelt es. Hä ? Ich hatte doch erst zwei Wieninger ;D Da raschelt es wieder. Licht an - und wer grinst mich an: Rufus, einer unserer vier Gerbils. Ausgebrochen aus einem Terrarium, welches durch ein dichtes, sehr stabiles Alunetz abgedeckt ist. Das Loch im Netz war aber beeindruckend. Und das hat er in höchstens dreissig Minuten geschafft (fast so lange habe ich auch gebraucht, das Viech wieder einzufangen !). Nun sitzen die vier zur Strafe in einem Käfig aus Stahl ...
koehlerbv:
Zum Thema siehe auch diesen Beitrag von Andreas "Glombi":
Werte mehrerer Items mit gleichen Namen auslesen
Das Verfahren brachte auch nix (nachdem ich vorher schon probierte hatte, das über ein temp. Document zu machen und dann nach dem Auslesen / Aufsummieren die Items zu löschen - aber NotesItem.Remove knallt ja korrekterweise gleich alle Items diesen Namens 'raus).
Bernhard
TMC:
Bernhard, die Idee des temporären Docs hatte ich im Hintergrund auch noch, aber wußte nicht ob Du das zur Laufzeit brauchst oder nicht, daher meine Frage. Denn Hintergründe hatten leider in Deiner Frage gefehlt.
--- Zitat ---Das Loopen durch die Items bringt leider nix - es heisst ja "GetFirstItem"
--- Ende Zitat ---
Schau Dir noch mal meine letzte Antwort an. Ich meinte Items Property.
--- Zitat von: Designer Help ---Items property
Read-only. All the items in a document. An item is any piece of data stored in a document.
--- Ende Zitat ---
Also "All the items in a document". Meines Erachtens bekommst Du damit alle Items, unabhängig von "GetFirstItem".
Weiß jetzt aber auch Anhieb nicht, ob Dir damit auch die systeminternen $File-Items berücksichtigt werden via ItemLen-Property.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln