<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум компьютерной помощи &mdash; Полезные Lotus скрипты.]]></title>
		<link>http://itpmr.ru/viewtopic.php?id=769</link>
		<atom:link href="http://itpmr.ru/extern.php?action=feed&amp;tid=769&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Полезные Lotus скрипты.».]]></description>
		<lastBuildDate>Mon, 09 Mar 2026 08:26:41 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=125036#p125036</link>
			<description><![CDATA[<p>Нужно поле &quot;datereg&quot; типа : Time/Date&nbsp; &nbsp;разделить на два поля&nbsp; отчете - дата и отдельно часы/минуты.<br />Колонка 3 - год/месяц/число<br />Колонка 4 - часы/минуты<br />Вот код:</p><div class="codebox"><pre><code>Dim ndt As NotesDateTime
Set ndt  = New NotesDateTime(docx.datereg(0))    
xlWbk.ActiveSheet.Cells(row, 3)= ndt.DateOnly
xlWbk.ActiveSheet.Cells(row, 4)= Format$(Cdat(ndt.LSLocalTime), &quot;hh:nn&quot;)    </code></pre></div><br /><p>Так же сделано, чтобы у сгенеренного файла эксель при сохранении было имя по умолчанию типа &quot;Тип докумета&quot; + &quot;дата&quot;.</p><div class="codebox"><pre><code>    Dim fname As String
    fname = &quot;ВНУТР_&quot;   &amp; Format(Now,&quot;yyyy_mm_dd_hh&quot;)  &amp; &quot;.xlsx&quot;
    Set xl=CreateObject(&quot;Excel.Application&quot;)
Set xlWbk=xl.Workbooks.Add
...

    xl.Visible=True
    Call xlWbk.SaveAs(fname)</code></pre></div><p>На счет даты есть вариант разбить текстовую строку даты на массив.<br />Но еще проверить с Убоунд чтобы был вообще arr(1) .<br /></p><div class="codebox"><pre><code>arr =     Split( Cstr(docx.datereg(0)), &quot; &quot;)
Print   arr(0)   &quot; - &quot;   arr(1) 
xlWbk.ActiveSheet.Cells(row, 3)=  arr(0)     &#039;Left$(Cstr(docx.datereg(0)), 10)   &#039;02.03.2026   DateOnly
xlWbk.ActiveSheet.Cells(row, 4)=          arr(1)            &#039;Right$(Cstr(docx.datereg(0)), 8)    &#039;12:13:33</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 09 Mar 2026 08:26:41 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=125036#p125036</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124995#p124995</link>
			<description><![CDATA[<p>Экранирование кавычек в запросе формулы в&nbsp; &nbsp;LotusScript.</p><div class="codebox"><pre><code>masin(i) = Replace(masin(i) ,  {&quot;}, {\&quot;})</code></pre></div><p>В LotusScript при работе с Db.Search и использованием формул необходимо экранировать кавычки правильно, так как строки в LotusScript обрамляются двойными кавычками, а формула также может содержать строки в кавычках.</p><p>пример для запроса formula&nbsp; &nbsp; =&nbsp; {&nbsp; &nbsp; @lowercase(&quot;ПАРКАНСКАЯ ГРУЭС&quot;)}</p><p>&nbsp; &nbsp;@Contains (@lowercase(t2); @lowercase(&quot;\&quot;ПАРКАНСКАЯ ГРУЭС\&quot;&quot;))</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 19 Jun 2025 12:27:51 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124995#p124995</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124985#p124985</link>
			<description><![CDATA[<p>Оказывается одной строкой можно и создать/заменить значение поля и дать ему свойства автора/ридера.</p><p>Dim newDocResp As NotesDocument<br />newDocResp.Replaceitemvalue(&quot;Author&quot;, &quot;*&quot;).Isauthors = True<br />newDocResp.Replaceitemvalue(&quot;Reader&quot;, &quot;*&quot;).Isreaders = True</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 09 Dec 2024 07:38:44 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124985#p124985</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124246#p124246</link>
			<description><![CDATA[<p>Правильная проверка существования поля item и его копирования:</p><div class="codebox"><pre><code>Set item=CurDoc.GetFirstItem( &quot;СОДЕРЖАНИЕ_&quot; )
If Not item Is  Nothing  Then Call docR.CopyItem (item,&quot;СОДЕРЖАНИЕ_&quot;)</code></pre></div><p>Еще вариант<br /></p><div class="codebox"><pre><code>If doc.hasitem(&quot;PSComment&quot;) Then</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 04 Dec 2014 12:50:44 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124246#p124246</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124241#p124241</link>
			<description><![CDATA[<p>Код для занесения или добавления в поле Reader имени человека.</p><div class="codebox"><pre><code>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
    &#039;Set item = doc.GetFirstItem(&quot;$UpdatedBy&quot;) &#039;в $UpdatedBy в лотусе ничего нельзя изменять
    Set item = doc.GetFirstItem(&quot;Reader&quot;)    
    Call item.AppendToTextList( &quot;CN=Елена Владимировна /O=inf&quot; )
    
    
    Forall  xxx  In item.Values
        Msgbox xxx
    End Forall
    
    Call doc.Save ( True, False )
    
    Msgbox &quot;Всё ок!&quot;
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 12 Nov 2014 06:14:19 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124241#p124241</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124233#p124233</link>
			<description><![CDATA[<p>Разблокировать все документы в базе. Настраиваем агенту ночное расписание.</p><div class="codebox"><pre><code>Sub Initialize
    Dim session As New NotesSession
    Dim Okno As NotesDatabase
    Set Okno = session.CurrentDatabase
    
    If Not Okno.Isopen Then
        Exit Sub    &#039; Нет доступа к БД !!!!!!
    End If
    
    Dim Doccount As NotesDocument  &#039;  документ
    
    Dim dcOko As NotesDocumentCollection &#039;коллекция доков базы 
    Set dcOko = Okno.AllDocuments &#039;коллекционируем все документы
    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(&quot;$Writers&quot;)            
            Call Doccount.RemoveItem(&quot;$WritersDate&quot;)
            Call Doccount.Save(True, False, True)
        End If
    Next
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 21 Oct 2014 06:03:39 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124233#p124233</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124214#p124214</link>
			<description><![CDATA[<p>Получение имени ПК и юзера из винды.</p><div class="codebox"><pre><code>Dim WshShell As Variant
Set WshShell = CreateObject(&quot;WScript.Shell&quot;)
xxx=WshShell.ExpandEnvironmentStrings( &quot;%COMPUTERNAME%&quot; )
yyy=wshShell.ExpandEnvironmentStrings( &quot;%USERNAME%&quot; )
Print xxx &amp; &quot;//&quot; &amp; yyy</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 04 Sep 2014 11:23:14 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124214#p124214</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124176#p124176</link>
			<description><![CDATA[<p>Диалоговое окно для сохранения файла на диск:</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    If  Dir$ (&quot;C:\XML&quot;,16) =&quot;&quot;  Then
        Mkdir &quot;C:\XML&quot; 
    End If
    zag$ = &quot;Имя файла&quot;
    Dim workspace As New NotesUIWorkspace
    filenames = workspace.SaveFileDialog(False,&quot;Куда &quot;,,&quot;C:\XML\&quot;,zag$)
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Fri, 23 May 2014 11:21:06 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124176#p124176</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124163#p124163</link>
			<description><![CDATA[<p>Логирование изменений содержимого поля после подписи:</p><p>В кнопке подписать:<br /></p><div class="codebox"><pre><code>Call CurDoc.ReplaceItemValue(&quot;Flag_RW&quot;,&quot;1&quot;)</code></pre></div><p>В &quot;подписанном&quot; поле.<br /></p><div class="codebox"><pre><code>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(&quot;СОДЕРЖАНИЕ&quot;)
    If doc.Flag_RW(0)=&quot;1&quot; Then
        
        Dim Name_ As New NotesName(session.UserName)
        UsnameCanon$= Name_.common    
        doc.log_sod =  Arrayappend (doc.log_sod, &quot;Содержание изменил: &quot; &amp; UsnameCanon$ &amp; &quot;. Дата: &quot; &amp; Date$ )        
    End If
    
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 05 May 2014 08:09:04 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124163#p124163</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124147#p124147</link>
			<description><![CDATA[<p>Lotus и удаление пустых элементов массива<br />values - массив с пустыми элементами<br />vals=Fulltrim (values) - будет без пустышек.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 15 Apr 2014 11:00:15 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124147#p124147</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124136#p124136</link>
			<description><![CDATA[<p>Заполнение истории документа. Новые события вверху rich text поля.</p><p>Вариант 1. Старый.</p><p>&nbsp; &nbsp; </p><div class="codebox"><pre><code>str1  = Cstr(Now) + &quot; нвоый текст, который заносится в историю&quot;
    
    Dim RTItm As NotesRichTextItem
    Set RTItm=CurDoc.getFirstItem(&quot;ИСТОРИЯ&quot;)
    Dim TmpRTItem As NotesRichTextItem  
    
    If CurDoc.HasItem(&quot;TmpRTF&quot;) Then &#039;если  есть временное поле - стерли
        Set TmpRTItem=CurDoc.GetFirstItem(&quot;TmpRTF&quot;)
        Call TmpRTItem.Remove()
    End If
    
    Set TmpRTItem= CurDoc.CreateRichTextItem(&quot;TmpRTF&quot;) &#039; создали поле TmpRTF
    Call TmpRTItem.Appendtext(str1) 
    Call TmpRTItem.Addnewline(1,True)
    Call TmpRTItem.Appendrtitem(RTItm) &#039; добавили поле история    
    
    Call RTItm.Remove()
    
    Set NewRTItem= CurDoc.CreateRichTextItem(&quot;ИСТОРИЯ&quot;)
    Call NewRTItem.Appendrtitem(TmpRTItem)
    Call TmpRTItem.Remove()</code></pre></div><br /><br /><br /><p>Вариант 2</p><div class="codebox"><pre><code>Dim uiworkspace As New NotesUIWorkspace        
    Dim histold As String, str1 As String
    Dim doc As NotesDocument
    Dim uidoc As NotesUIDocument 
    Set uidoc =uiworkspace.CurrentDocument
    Set doc =uiworkspace.CurrentDocument.Document
    doc.какое-то поле=&quot;&quot;
    
    str1  = Cstr(Now) + &quot; текст для истории&quot;+&quot; &quot;&amp;Chr(10)
    
    histold= uidoc.FieldGetText( &quot;ИСТОРИЯ&quot; )
    
    Call uidoc.FieldClear( &quot;ИСТОРИЯ&quot; )
    Call uidoc.FieldAppendText( &quot;ИСТОРИЯ&quot;, str1)
    Call uidoc.FieldAppendText( &quot;ИСТОРИЯ&quot;, histold)
    Call uidoc.Save()</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 26 Mar 2014 07:37:46 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124136#p124136</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124107#p124107</link>
			<description><![CDATA[<p>Подсчет, сколько записей в поле NotesItem.<br />В архив не могут слать документ, если документ рассматривают более 1 чела.</p><p>&nbsp; &nbsp; &#039; ----------&nbsp; &nbsp;Рассматривают несколько чел<br />&nbsp; &nbsp; </p><div class="codebox"><pre><code>Dim item As NotesItem
    xx=0
    Set item = CurDoc.GetFirstItem( &quot;РАССМАТРИВАЕТ_ДОКУМЕНТ&quot; )
    Forall v In item.Values
        xx=xx+1 
    End Forall
    If xx&gt;1 Then Messagebox(&quot;Док. рассматривает несколько человек!&quot;) : Exit Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 04 Mar 2014 12:44:15 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124107#p124107</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124105#p124105</link>
			<description><![CDATA[<p>При открытии документа только авторам открывать его в режиме редактирования</p><div class="codebox"><pre><code>Sub Postopen(Source As Notesuidocument)
    Dim Session As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim item As NotesItem    
    user = session.CommonUserName
    Dim doc As NotesDocument
    flag=&quot;1&quot;
    Set doc = ws.currentdocument.Document
    Set item = doc.GetFirstItem( &quot;addauthors&quot; )    
    Forall v In item.Values
        If     user = v Then 
            Print &quot;автор&quot;
            flag=&quot;0&quot;
        End If            
    End Forall
    If flag=&quot;0&quot; Then 
        source.EditMode=True
    End If
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Fri, 28 Feb 2014 13:29:22 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124105#p124105</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124104#p124104</link>
			<description><![CDATA[<p>Переоткрытие читаемого документа, если он был изменен ранее.<br /></p><div class="codebox"><pre><code>Sub Querymodechange
noteID = Source.Document.NoteID
Set doc = db.GetDocumentByID(noteID)
If doc.LastModified &gt; Source.Document.LastModified Then
        Messagebox &quot;документ был изменён. переоткрываем его&quot;    
        Call Source.Close()
        Set uidoc = ws.EditDocument(True, doc, False)
End If</code></pre></div><p>Если юзер открыл документ на чтение&nbsp; и решил перевести его в редактирование - он переоткроет его, если он был изменен.<br />Source.Document - та инстанция, которую видиш ты в текущий момент<br />doc2 - реальное положение дел с этим документом</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 27 Feb 2014 07:06:44 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124104#p124104</guid>
		</item>
		<item>
			<title><![CDATA[Re: Полезные Lotus скрипты.]]></title>
			<link>http://itpmr.ru/viewtopic.php?pid=124102#p124102</link>
			<description><![CDATA[<p>Окно с выбором вариантов ответа<br /></p><div class="codebox"><pre><code>Dim values(3) As Variant
values(0) = &quot;Поручение - внутренний&quot;
values(1) = &quot;Поручение - исходящий&quot;
values(2) = &quot;Решение - внутренний&quot;
values(3) = &quot;Решение - исходящий&quot;
response = ws.Prompt (PROMPT_OKCANCELLIST,     &quot;Создать Поручение/Решение&quot;,     &quot;Выберите тип  документа&quot;, _
values(0), values)
If Isempty (response) Then     Messagebox &quot;Отменено&quot;, , &quot;Выбор не сделан&quot; : Exit Sub
If response=&quot;Поручение - внутренний&quot; Then
какое то действие, например doc.form=&quot;внутренний&quot;
End If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 20 Feb 2014 09:09:03 +0000</pubDate>
			<guid>http://itpmr.ru/viewtopic.php?pid=124102#p124102</guid>
		</item>
	</channel>
</rss>
