Folders

Тема в разделе "Lotus - Программирование", создана пользователем xdd, 16 окт 2007.

Статус темы:
Закрыта.
  1. xdd

    xdd Гость

    Подскажите пожалуйста как переместить в папку определённое число документов(не все?)? К примеру только выделенные, либо через разделение документов представления на несколько частей(2,3,4).
     
  2. fvoice

    fvoice Гость

    только выделенные:
    Код (Text):
        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 и ему подобных..
     
  3. root

    root Гость

    + незабудь Response перенести.
     
  4. redbestcat

    redbestcat Гость

    Код можно упростить
    Код (Text):
        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")
     
  5. xdd

    xdd Гость

    Спасибо за ответы. Ещё вопросик..
    При сохранении документа(звонка) нахожу по его полю(названию фирмы), другой документ(в другом представлении) созданный по другой форме(по форме фирмы), после чего удаляю этот документ(фирмы) из некоторой папки и добавляю его в другую. Надеюсь описала нормально. :)
    --
    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")
    --
    Вопрос, как его переписать, для выделенных документов? Конкретнее: есть представление со звонками, из которого нужно пробежавшись по всем документам - взять другие документы(снова созданные по форме фирмы из некоторого представления) и проделать с ними ту же операцию(удаление, добавление в папку).
     
  6. fvoice

    fvoice Гость

    Код (Text):
    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 :) ), убрали их из одной папки, положили в другую, дальше по всем выделенным документам аналогично, и в конце выделенные документы положили в папку..
     
  7. xdd

    xdd Гость

    Всё верно, сегодня попатаюсь это сделать на некоторое представление, вчера просто ужасно устала.. А вопрос был в помощи с переделкой скрипта, а не просьбе описать процесс :angry: thanks anyway
     
  8. xdd

    xdd Гость

    Подскажите уважаемые. Как при сохранении некой формы документа, с полями к примеру поле1, поле2, поле3 - перенести значения этих полей уже в другую форму(точнее перезаписать эти поля в другой форме), ключом как таковым является поле1(присутствует и в той и в другой формах), желательно с примером кодика. Command([Compose];..) и наследование(Inherit...) как я понимаю не подходит из за создания нового документа, а нужно внести изменения в форму1, в зависимости от изменений в форме2. Спасибо.
     
  9. Sandr

    Sandr Гость

    извините, но что имеется ввиду? что такое форма, а что такое документ в понимании автора? фразы "перезаписать эти поля в другой форме" и "при сохранении некой формы документа" вводят в ступор... :D
     
  10. xdd

    xdd Гость

    Извиняюсь, опишу ещё раз.. Существуют форма названия фирмы и её адреса, из неё формируется звонок по другой форме, в которой присутствуют те же поля что и в первой форме + несколько других. Задача:
    1. При сохранении звонка -> проверять значения полей в форме фирмы и изменять значения на новые(если они были изменены в форме звонка).
    2. Помечать форму фирмы как ту, в которую уже звонили. Т.е. как я понимаю обратиться при сохранении звонка к форме фирмы и изменить значение некоторого поля, после чего менять выборку в представлении с учётом этого поля.
    Реализовать пока не получается никак, буду благодарна любому совету, желательно с Ls.
     
  11. fvoice

    fvoice Гость

    Для: xdd
    похоже тут нужно хорошенько определиться с терминологией:
    форма - элемент дизайна, трафарет, через который мы создаем/изменяет/отбираем документы
    документ - некая сущность, хранящая в себе информацию, создается обычно через форму

    на каждый звонок свой документ фирмы? или есть справочник фирм? по каким параметрам, хранящимся в документе звонка, можно однозначно идентифицировать документ фирмы?

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

    P.S. выборку в представлении нужно конструировать изначально с учетом этих полей :D
     
  12. xdd

    xdd Гость

    Здрасте.
    "на каждый звонок свой документ фирмы? или есть справочник фирм? по каким параметрам, хранящимся в документе звонка, можно однозначно идентифицировать документ фирмы?"
    Документы фирм выбираются из представления, в которое они были импортированы - создавались по форме "Фирма". Отсюда уже и идёт создание звонка, путём включения "Inherit values..", Перенося данные полей из формы "Фирма" в форму "Входящий звонок"(к примеру). Так как при сохранении звонка(т.е. создании документа по форме звонка) обратиться к документу фирмы и совершить с ним действия, которые были описаны выше? Связи document - response нету, т.к. при импорте это не было учтено. ОБщее посе по которому как казалось бы связаны документы это поле "Фирма" присутствующее и в документе фирмы и в документе звонка. Надеюсь..
     
  13. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: xdd
    notesView.GetDocumentByKey
    Поле "Фирма" в качестве ключа.
     
  14. Sandr

    Sandr Гость

    При этом в notesView первая колонка должна отображать иенно значение поля "Фирма"...
     
  15. xdd

    xdd Гость

    Да, так и сделано, проблемка в самом коде.. В написании LS пока опыта мало - не могу написать:/
     
  16. fvoice

    fvoice Гость

    Для: xdd
    1. Сделайте вью для отбора документов "Фирма"с первым сортированным столбцом, содержащим название фирмы.
    2. повесьте код, допустим перед сохранением:
    Код (Text):
    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
     
  17. root

    root Гость

    Для: xdd
    Если в нескольких документах будет использоватся Одна и Таже фирма, то используй:
    Set notesDocumentCollection = notesView.GetAllDocumentsByKey
    для путишествия по коллекции.
     
  18. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--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). На всякий случай. :)
     
  19. xdd

    xdd Гость

    Всем спасибо за помощь :)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей