Feld ist zu groß (32k)

  • Hallo zusammen,


    die obengenannte Fehlermeldung taucht auf, wenn ich ein bestimmtes Dokument in einer Ansicht öffnen möchte.


    Nun habe ich bereits heruasgefunden bzw. festgestellt, dass in einem Feld des Dokuments zu viele Zeichen stehen. Eine der Lösungen ist, in der Maske das jeweilige Feld anstelle eines Text-Feldes auf ein Rich-Text-Field umzustellen.


    Das ist an sich ja auch schnell und einfach im Designer gemacht. Wenn ich dann allerdings die Werte für das Feld erneut berechnen will, bekomme ich den Fehler erneut, obwohl das Feld, welches den Fehler verursacht ja in der Zwischenzeit ein Rich-Text Feld sein sollte, da die Maske bereits angepasst, dass alle Dokument gelöscht und mit einem Agenten neu berechnet wurde.


    Habt Ihr noch Ideen, wie man das am besten anstellen kann?


    Danke und Grüß


    Lordi alias René

  • Hallo Ihr beiden,


    erstmal danke für das schnelle Feedback.


    Untenstehend findet Ihr den kompletten Agent.


    @taurec Soweit ich erkennen kann, schreibt der Agent nur in das in der Maske vorhandene Feld "Content" hinein, defniert dabei allerdings keinen Feldtyp, sodass die vorhandene Maskenänderung bei der Feldumstellung von Text auf Rich Text greifen sollte.


    Ich hab mal in der Konfiguration der DB geschaut, dort war angegeben, dass Forms in der DB gespeichert werden können. Kann das eventuell etwas damit zu tun haben?


    Ich bin jetzt so vorgegangen:


    1. Ich habe das Dokument welches den 32k Fehler findet gelöscht (Soft-Deletion) ist deaktiviert.
    2. Ich habe in der Form "System" das Feld Content von Text auf Rich-Text umgestellt.
    3. Ich habe den Agent erneut laufen gelassen, sodass er mit der geänderten Form "System" das Dokument neu erstellen sollte.


    Hab ich vielleicht irgendwo noch nen Denkfehler drin?


    Sub genTagCloud()
    Dim html As String, encodeTag As String, safeTag As String, countTxt As String

    Dim view As NotesView
    Dim nav As NotesViewNavigator
    Dim entry As NotesViewEntry
    Dim theTagList As tagList
    Dim minCount As Integer
    minCount=3

    If CStr(configdoc.tagcloudentries(0))<>"" Then
    minCount=configdoc.tagcloudentries(0)
    End If

    Set view=db.getview("vTagCount")
    Set nav = view.CreateViewNav
    Set theTagList=New tagList

    Set entry=nav.GetFirst

    'Build Tag List
    While Not entry Is Nothing
    If CStr(entry.ColumnValues(0))<>"" And entry.ChildCount>=minCount Then
    Call theTagList.addTag(CStr(entry.ColumnValues(0)),entry.ChildCount)
    End If
    Set entry=nav.GetNextCategory(entry)
    Wend

    If CStr(configdoc.tagcloudlevels(0))<>"" Then
    theTagList.levels=configdoc.tagcloudlevels(0)
    End If

    If configdoc.tradcategories(0)="1" Then
    theTagList.cattag=True
    End If

    'generate tag html
    html=html+theTagList.getTagHTML()

    'Done with class
    Delete theTagList

    If Not configdoc Is Nothing Then
    Dim systemview As NotesView
    Dim systemdoc As NotesDocument
    Set systemview=db.getView("vSystem")
    Set systemdoc=systemview.getdocumentbykey("TagCloud_"+dbid,True)

    If systemdoc Is Nothing Then
    Set systemdoc=db.createDocument()
    systemdoc.Form="System"
    systemdoc.Title="TagCloud_"+dbid
    End If

    systemdoc.Content=html
    Call systemdoc.save(True,True)
    End If
    End Sub


    Danke und Grüße


    Lordi alias René

  • Doch tust du, und zwar implizit:


    doc.Content = Wert definiert den Feldtyp anhand der Variableninhalte, d.h. in deinem Fall als Textfeld.


    Willst du es als RichText Feld musst du explizit eines per Code generieren bzw holen und dort mit RichText Methoden reinschreiben

  • Hi,


    Bei dieser Art und Weise des Schreibens von Werten, erweist es sich immer als nuetzlich,
    nachdem ganzen sich einmal die betreffenden Items ueber die Dokumenteneigenschaften anzusehen.


    Hie wird man dann relativ einfach und auch schnell feststellen koennen, ob das Feld so aussieht wie
    man es sich vorstellt oder eben nicht.



    Andreas