Re: Полезные Lotus скрипты.
Lotus и удаление пустых элементов массива
values - массив с пустыми элементами
vals=Fulltrim (values) - будет без пустышек.
Компьютерный форум для чайников и IT специалистов. Советы и рекомендации.
Форум компьютерной помощи → Lotus/Domino → Полезные Lotus скрипты.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Lotus и удаление пустых элементов массива
values - массив с пустыми элементами
vals=Fulltrim (values) - будет без пустышек.
Логирование изменений содержимого поля после подписи:
В кнопке подписать:
Call CurDoc.ReplaceItemValue("Flag_RW","1")В "подписанном" поле.
Sub Onchange(Source As Field)
    
    Dim session As New NotesSession
    Dim uiworkspace As New NotesUIWorkspace    
    Dim doc As NotesDocument
    Dim item As NotesItem
    Set doc = uiworkspace.CurrentDocument.Document
    Set item = doc.GetFirstItem("СОДЕРЖАНИЕ")
    If doc.Flag_RW(0)="1" Then
        
        Dim Name_ As New NotesName(session.UserName)
        UsnameCanon$= Name_.common    
        doc.log_sod =  Arrayappend (doc.log_sod, "Содержание изменил: " & UsnameCanon$ & ". Дата: " & Date$ )        
    End If
    
End SubДиалоговое окно для сохранения файла на диск:
Sub Click(Source As Button)
    If  Dir$ ("C:\XML",16) =""  Then
        Mkdir "C:\XML" 
    End If
    zag$ = "Имя файла"
    Dim workspace As New NotesUIWorkspace
    filenames = workspace.SaveFileDialog(False,"Куда ",,"C:\XML\",zag$)
End SubПолучение имени ПК и юзера из винды.
Dim WshShell As Variant
Set WshShell = CreateObject("WScript.Shell")
xxx=WshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
yyy=wshShell.ExpandEnvironmentStrings( "%USERNAME%" )
Print xxx & "//" & yyyРазблокировать все документы в базе. Настраиваем агенту ночное расписание.
Sub Initialize
    Dim session As New NotesSession
    Dim Okno As NotesDatabase
    Set Okno = session.CurrentDatabase
    
    If Not Okno.Isopen Then
        Exit Sub    ' Нет доступа к БД !!!!!!
    End If
    
    Dim Doccount As NotesDocument  '  документ
    
    Dim dcOko As NotesDocumentCollection 'коллекция доков базы 
    Set dcOko = Okno.AllDocuments 'коллекционируем все документы
    If   (dcOko.Count =0) Then  Exit Sub
    
    For m=1  To dcOko.Count
        Set Doccount = dcOko.GetNthDocument(m)
        
        If     (Doccount.IsValid )    Then
            Call Doccount.RemoveItem("$Writers")            
            Call Doccount.RemoveItem("$WritersDate")
            Call Doccount.Save(True, False, True)
        End If
    Next
End SubКод для занесения или добавления в поле Reader имени человека.
Sub Click(Source As Button)
    
    Dim session As New NotesSession
    Dim uiworkspace As New NotesUIWorkspace    
    Dim doc As NotesDocument
    Set doc = uiworkspace.CurrentDocument.Document
    
    Dim item As NotesItem
    'Set item = doc.GetFirstItem("$UpdatedBy") 'в $UpdatedBy в лотусе ничего нельзя изменять
    Set item = doc.GetFirstItem("Reader")    
    Call item.AppendToTextList( "CN=Елена Владимировна /O=inf" )
    
    
    Forall  xxx  In item.Values
        Msgbox xxx
    End Forall
    
    Call doc.Save ( True, False )
    
    Msgbox "Всё ок!"
End SubПравильная проверка существования поля item и его копирования:
Set item=CurDoc.GetFirstItem( "СОДЕРЖАНИЕ_" )
If Not item Is  Nothing  Then Call docR.CopyItem (item,"СОДЕРЖАНИЕ_")Еще вариант
If doc.hasitem("PSComment") ThenОказывается одной строкой можно и создать/заменить значение поля и дать ему свойства автора/ридера.
Dim newDocResp As NotesDocument
newDocResp.Replaceitemvalue("Author", "*").Isauthors = True
newDocResp.Replaceitemvalue("Reader", "*").Isreaders = True
Экранирование кавычек в запросе формулы в LotusScript.
masin(i) = Replace(masin(i) ,  {"}, {\"})В LotusScript при работе с Db.Search и использованием формул необходимо экранировать кавычки правильно, так как строки в LotusScript обрамляются двойными кавычками, а формула также может содержать строки в кавычках.
пример для запроса formula = { @lowercase("ПАРКАНСКАЯ ГРУЭС")}
@Contains (@lowercase(t2); @lowercase("\"ПАРКАНСКАЯ ГРУЭС\""))
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум компьютерной помощи → Lotus/Domino → Полезные Lotus скрипты.
Форум работает на PunBB, при поддержке Informer Technologies, Inc