Folders

  • Автор темы Автор темы xdd
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
X

xdd

Подскажите пожалуйста как переместить в папку определённое число документов(не все?)? К примеру только выделенные, либо через разделение документов представления на несколько частей(2,3,4).
 
только выделенные:
Код:
	Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Call doc.PutInFolder("FolderName")
Set doc = collection.GetNextDocument(doc)
Wend

либо через разделение документов представления на несколько частей(2,3,4)
тут наверное стоит посмотреть в сторону методов NotesView: GetAllDocumentsByKey и ему подобных..
 
только выделенные:
Код:
	Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Call doc.PutInFolder("FolderName")
Set doc = collection.GetNextDocument(doc)
Wend
тут наверное стоит посмотреть в сторону методов NotesView: GetAllDocumentsByKey и ему подобных..
+ незабудь Response перенести.
 
Код можно упростить
Код:
	Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Call collection.PutAllInFolder("FolderName")
 
Спасибо за ответы. Ещё вопросик..
При сохранении документа(звонка) нахожу по его полю(названию фирмы), другой документ(в другом представлении) созданный по другой форме(по форме фирмы), после чего удаляю этот документ(фирмы) из некоторой папки и добавляю его в другую. Надеюсь описала нормально. :)
--
Dim doc as notesdocument
Dim workspace as NotesUIWorkspace
Dim uidoc as notesUIDocument
set uidoc = workspace. CurrentDocument
Name = uidoc.WindowTitle
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc as NotesViewEntryCollection
Set db = session.CurrentDatabase
Set view = db.getview("Общий список")
Set vc = view.Getallentriesbykey(Name, False)
Call vc.RemoveAllFromFolder("A")
Call vc.PutAllInFolder("B")
--
Вопрос, как его переписать, для выделенных документов? Конкретнее: есть представление со звонками, из которого нужно пробежавшись по всем документам - взять другие документы(снова созданные по форме фирмы из некоторого представления) и проделать с ними ту же операцию(удаление, добавление в папку).
 
Код:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim anotherCollection as NotesDocumentCollection
Dim doc As NotesDocument
Dim view as NotesView

Set db = session.CurrentDatabase
Set view = db.getview("Общий список")
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Set AnotherCollection = view.GetAllDocumentsByKey(doc.FieldWithKeys)
Call AnotherCollection.RemoveAllFromFolder("A")
Call AnotherCollection.PutAllInFolder("B")
Set doc = collection.GetNextDocument(doc)
Wend
Call collection.PutAllInFolder("FolderName")
если я правильно понял:
взяли первый выделенный документ, нашли все документы по ключевому полю(типа вашего WindowTitle :) ), убрали их из одной папки, положили в другую, дальше по всем выделенным документам аналогично, и в конце выделенные документы положили в папку..
 
Всё верно, сегодня попатаюсь это сделать на некоторое представление, вчера просто ужасно устала.. А вопрос был в помощи с переделкой скрипта, а не просьбе описать процесс :angry: thanks anyway
 
Подскажите уважаемые. Как при сохранении некой формы документа, с полями к примеру поле1, поле2, поле3 - перенести значения этих полей уже в другую форму(точнее перезаписать эти поля в другой форме), ключом как таковым является поле1(присутствует и в той и в другой формах), желательно с примером кодика. Command([Compose];..) и наследование(Inherit...) как я понимаю не подходит из за создания нового документа, а нужно внести изменения в форму1, в зависимости от изменений в форме2. Спасибо.
 
извините, но что имеется ввиду? что такое форма, а что такое документ в понимании автора? фразы "перезаписать эти поля в другой форме" и "при сохранении некой формы документа" вводят в ступор... :D
 
Извиняюсь, опишу ещё раз.. Существуют форма названия фирмы и её адреса, из неё формируется звонок по другой форме, в которой присутствуют те же поля что и в первой форме + несколько других. Задача:
1. При сохранении звонка -> проверять значения полей в форме фирмы и изменять значения на новые(если они были изменены в форме звонка).
2. Помечать форму фирмы как ту, в которую уже звонили. Т.е. как я понимаю обратиться при сохранении звонка к форме фирмы и изменить значение некоторого поля, после чего менять выборку в представлении с учётом этого поля.
Реализовать пока не получается никак, буду благодарна любому совету, желательно с Ls.
 
Для: xdd
похоже тут нужно хорошенько определиться с терминологией:
форма - элемент дизайна, трафарет, через который мы создаем/изменяет/отбираем документы
документ - некая сущность, хранящая в себе информацию, создается обычно через форму

1. При сохранении звонка -> проверять значения полей в документе фирмы и изменять значения на новые(если они были изменены в документе звонка).
на каждый звонок свой документ фирмы? или есть справочник фирм? по каким параметрам, хранящимся в документе звонка, можно однозначно идентифицировать документ фирмы?

2. Помечать документ фирмы как ту, в которую уже звонили. Т.е. как я понимаю обратиться при сохранении звонка к документу фирмы и изменить значение некоторого поля, после чего менять выборку в представлении с учётом этого поля.

понимаете Вы правильно, после вашего ответа на первый вопрос, можно быдет рассмотреть варианты кода..

P.S. выборку в представлении нужно конструировать изначально с учетом этих полей :D
 
Здрасте.
"на каждый звонок свой документ фирмы? или есть справочник фирм? по каким параметрам, хранящимся в документе звонка, можно однозначно идентифицировать документ фирмы?"
Документы фирм выбираются из представления, в которое они были импортированы - создавались по форме "Фирма". Отсюда уже и идёт создание звонка, путём включения "Inherit values..", Перенося данные полей из формы "Фирма" в форму "Входящий звонок"(к примеру). Так как при сохранении звонка(т.е. создании документа по форме звонка) обратиться к документу фирмы и совершить с ним действия, которые были описаны выше? Связи document - response нету, т.к. при импорте это не было учтено. ОБщее посе по которому как казалось бы связаны документы это поле "Фирма" присутствующее и в документе фирмы и в документе звонка. Надеюсь..
 
Для: xdd
notesView.GetDocumentByKey
Поле "Фирма" в качестве ключа.
 
При этом в notesView первая колонка должна отображать иенно значение поля "Фирма"...
 
Да, так и сделано, проблемка в самом коде.. В написании LS пока опыта мало - не могу написать:/
 
Для: xdd
1. Сделайте вью для отбора документов "Фирма"с первым сортированным столбцом, содержащим название фирмы.
2. повесьте код, допустим перед сохранением:
Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)

Dim s As New NotesSession
Dim doc As NotesDocument
Dim firm As NotesDocument
Dim view As NotesView

Set doc = source.Document
Set view = s.CurrentDatabase.GetView("ViewName")
Set firm = view.GetDocumentByKey(doc.Firmname)

If Not firm Is Nothing Then
firm.Field = doc.Field
'.......синхронизируем поля
Call firm.Save(True,False,True)
Else
Messagebox("Не могу найти документ фирмы!")
End If

End Sub
 
Для: xdd
Если в нескольких документах будет использоватся Одна и Таже фирма, то используй:
Set notesDocumentCollection = notesView.GetAllDocumentsByKey
для путишествия по коллекции.
 
<!--QuoteBegin-fvoice+24:10:2007, 07:27 -->
<span class="vbquote">(fvoice @ 24:10:2007, 07:27 )</span><!--QuoteEBegin-->2. повесьте код, допустим перед сохранением:
[snapback]82858" rel="nofollow" target="_blank[/snapback]​
[/quote]
Лучше в PostSave. Иначе будем сохранять несколько раз документ фирмы пока валидацию не пройдем.
И лучше сделать так: Set firm = view.GetDocumentByKey(doc.Firmname, True). На всякий случай. :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!