1

Тема: Переполнение поля истории 32К

1. в библиотеку library добавляем процедуру Transposition_History

%REM
    Sub Transposition_History
    Description: перемещение истории в другое поле
    сделано из-за 32к
%END REM
Sub Transposition_History(doc As NotesDocument)
    Dim item As NotesItem, idx_hist As Byte    
    
    max_value=20000 'max кол-во байт которое должно быть в поле
    Set item = doc.GetFirstItem( "history" )        
    If item.ValueLength>max_value Then
        idx_hist=0
        ForAll it In doc.Items
            If LCase(StrLeft(it.name,"_"))="history" Then
                s$=Trim(StrRight(it.name,"_"))
                If s$<>"" And IsNumeric(s$)Then
                    If it.IsSummary Then it.IsSummary=False                        
                    If idx_hist<CInt(s$) Then
                        idx_hist=CInt(StrRight(it.name,"_"))
                    End If                                    
                End If
            End If
        End ForAll
        idx_hist=idx_hist+1
        Call doc.CopyItem(  item ,  "history_"+Cstr(idx_hist) )
        Set item = doc.GetFirstItem( "history_"+Cstr(idx_hist) )    
        If item.IsSummary Then item.IsSummary=False                        
        doc.history=""
    End If
End Sub

2.в глобалах формы подключаем библиотеку library (если не подключена)

Option Public
Use "Library"

3.событие формы querySave вызываем

Call Transposition_History(uidoc.Document)' перенос истории в другое поле  

4. на форме где нужен перенос истории поле history делаешь вычисляемым
значение вычисляемого значения = history

5. под поле history кидаешь пару вычисляемых значений...
<Computed Value> history_3
<Computed Value> history_2
<Computed Value> history_1

Поделиться