Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: schlaus am 22.09.10 - 11:18:57

Titel: 64K Grenze von Feldern Typ Summary
Beitrag von: schlaus am 22.09.10 - 11:18:57
Hallo,

ich habe in einer Anwendung eine Maske, in der viele Felder enthalten sind.
Die Summe aller Felder sprengt die 64K Grenze für das Dokument und ich erhalte die Meldung "Feld ist zu groß (32K) ..." Jedes Feld für sich ist kleiner als 32K, nur alle zusammen sind halt größer als 64K.
Gibt es eine Möglichkeit den Flag "IsSummary" für die Felder im UI so zu ändern, dass beim Speichern des Dokuments diese Fehlermeldung nicht mehr auftritt?
Wie gesagt, die Felder müssen in der Maske vorhanden sein und ich kann sie nicht über Script im Backend erzeugen.

Danke
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: Peter Klett am 22.09.10 - 12:01:18
Im Querysave setzt Du die Eigenschaft über das Backend

Set item = doc.GetItem (...)
item.IsSummary = False
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: schlaus am 22.09.10 - 12:11:01
Das habe ich bereits probiert, leider ohne Erfolg.
Sowohl im QuerySave als auch PostSave. Die Meldung erscheint trotzdem.
Probiere ich das ganze mit einem Dokument, in dem die 64K Grenze nicht gesprengt wird, haben die Felder trotz des Query Save das Summary Flag.
Im Debugger sehe ich, dass der Flag bis zum Schluss korrekt ist, nach dem Schließen des Dokuments haben die Felder allerdings wieder das Flag (Im Eigenschaftendialog in der Ansicht).
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: Peter Klett am 22.09.10 - 12:22:08
Stimmt, kann ich nachvollziehen. Hätte schwören können, dass ich es immer so gemacht hätte. Sorry (heißt auch GetFirstItem und nicht GetItem, war also ingesamt ein schlechter Beitrag von mir :()

Kannst Du nicht das Dokument im Backend erstellen und dann öffnen? Also nicht über ComposeDocument, sondern sinngemäß

Dim doc As New NotesDocument (db)
Set item = New NotesItem (doc, "Name", "")
item.IsSummary = False
...
Call workspace.EditDocument (True, doc)

Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: Peter Klett am 22.09.10 - 12:31:56
Hab das nachgebaut. Das funktioniert auch nicht, selbst dann nicht, wenn vor dem Öffnen das Dokument gespeichert wird (was blöd wäre). Hat sich da was geändert? Bin mir sicher, dass das "früher" kein Problem war.

Ist ja hochinteressant, werde mal weiterforschen ...
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: Peter Klett am 22.09.10 - 13:03:45
Habe mich geirrt, das hat noch nie funktioniert (getestet bis 5.0.10). Sobald das Feld in der Maske ist, wird beim Speichern des geöffneten Dokuments IsSummary auf True gesetzt.

Hier ist ein Beitrag mit einem interessanten Lösungsansatz:

http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/30385bba5db97ce8852570b9004dc810?OpenDocument

Falls die Felder nicht bearbeitbar sein müssen, würde ich Felder definieren, die berechnet zur Anzeige sind und die eigentlichen Felder anzeigen, die aber nicht in der Maske sind. Bei bearbeitbaren Feldern halte ich den verlinkten Lösungsansatz für erfolgversprechend.
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: Glombi am 22.09.10 - 13:42:53
Ich habe folgenden Beitrag gefunden

ComputeWithForm does not set the Summary flag for Text fields over 15KB (http://www-01.ibm.com/support/docview.wss?rs=899&uid=swg21087474)

daraus:
Zitat
- For documents that are edited by a user, or if you use the NotesDocument.ComputeWithForm method, items over 15K should be flagged as non-summary automatically, provided they correspond to a field on the form.
Äh, ist das so  ??? Dazu

ComputeWithForm does not set the Summary flag for Text fields over 15KB (http://www-01.ibm.com/support/docview.wss?uid=swg21090219)
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: schlaus am 29.09.10 - 10:25:43
danke für eure anregungen.
es ist scheinbar nicht möglich das summary flag bei bearbeitbaren feldern vorm oder beim speichern zu entfernen.
ich habe die anwendung jetzt so umgestellt, dass die daten nicht mehr in felder eingegeben werden, die sich direkt in der maske befinden. daten werden jetzt über dialoge eingegeben und im dokument hinzugefügt. in der maske befinden sich nur noch felder berechnet zur anzeige.
zwar umständlich aber es funktioniert.
Titel: Re: 64K Grenze von Feldern Typ Summary
Beitrag von: koehlerbv am 29.09.10 - 19:14:17
zwar umständlich aber es funktioniert.

Und es ist alles andere als eine gute Idee - und der falsche Ansatz. Es ist nur eine Trickserei. Im Stil mancher Fernsehsendungen: "Liebe Kinder, macht das bitte nicht nach. Man kann das Ziel auch regelkonform erreichen.".

Bernhard