Autor Thema: 64K Grenze von Feldern Typ Summary  (Gelesen 3660 mal)

Offline schlaus

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
64K Grenze von Feldern Typ Summary
« 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

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #1 am: 22.09.10 - 12:01:18 »
Im Querysave setzt Du die Eigenschaft über das Backend

Set item = doc.GetItem (...)
item.IsSummary = False

Offline schlaus

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #2 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).

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #3 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)

« Letzte Änderung: 22.09.10 - 12:26:56 von Peter Klett »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #4 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 ...

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #5 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.

Glombi

  • Gast
Re: 64K Grenze von Feldern Typ Summary
« Antwort #6 am: 22.09.10 - 13:42:53 »
Ich habe folgenden Beitrag gefunden

ComputeWithForm does not set the Summary flag for Text fields over 15KB

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
« Letzte Änderung: 22.09.10 - 13:45:19 von Glombi »

Offline schlaus

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #7 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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: 64K Grenze von Feldern Typ Summary
« Antwort #8 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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz