Перенос в другую форму

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

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

    miorica Гость

    Имеется база с формой номер 1, для дальнейшей работы с базой необходимо всю ее перенести в другую базу с формой номер 2.
    Подскажите, пожалуйста, приблизительную концепцию подобного переноса на Lotus Script (Lotus Domino 7). На ум приходит только банальный перебор каждого поля каждого документа и присваиваить это значение в итоговую базу.
    Если это верно, то киньте, плиз, какой-нибудь примерчик или где его можно найти... От обилия классов, свойств и методов глаза разбегаются, не пойму за что надо браться. :D
    Заранее спасибо!
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: miorica
    во первых рзберитесь что Вам надо перенести, форму или документаы

    1. если документы, то просто пройтись по ним, и скопировать их в базу номер 2 , предварительно поменяв имя формы
    2. Если формы, то Copy+paste самой формы
     
  3. Fossil Code

    Fossil Code Гость

    Зачем классы, зачем методы дорог(ой/ая)? Берешь агента, добавить простые действия, в действии указать "копировать в базу данных", выбрать эту базу... Ну и практически все, запустить останется только.
     
  4. miorica

    miorica Гость

    Нет, это несколько не то. :)
    Простое копирование документов в базу данных точно не подходит. Для начала нужно документы, представленные в базе виде Form1, перенести в Form2.
    Формы имеют разное количество и название полей, т.е. нужно установить соответствие:

    №/Обозначение/ Form1 / Form2
    --------------------------------------
    1/ Категория / kat / GTS
    2/ Наименование / tu / A02
    3/ Дата ввода / datv/ A00
     
  5. Elena Nefedova

    Elena Nefedova Гость

    Так в чем вопрос-то?
    В поиске соответствия?
    Или в том, как получить вторую базу?
    Базу вот так:
    Код (Text):
    Set db_target = New NotesDatabase(s_server, s_pathname)
    А соответствие только вы знаете, так что функцию пишите для расчета полей
     
  6. miorica

    miorica Гость

    Попробую сформулировать вопрос понятнее.
    Для обучения LotusScript'у мне было дано задание, цитирую: "Вот тебе база. Та форма, в которой она представлена сейчас, нам не подходит. Надо получить все документы базы в виде формы нумер два. Список соотвествия полей прилагается."

    Как я понимаю, для выполнения задачи надо в рамках этой же базы написать агент для заполнения второй формы. Как в этом случае описать переменные? По итогам чтения книг и хэлпа получилось следующее:
    Код (Text):
    Dim ses As New NotesSession
    Dim view As NotesView
    Dim db As NotesDatabase
    Dim doc1, doc2 As NotesDocument
    Set db = ses.CurrentDatabase
    Set view=db.GetView("Alldoc")
    Set doc1=view.GetFirstDocument

    While Not (doc1 Is Nothing)
    doc2.GTS=doc1.kat
    doc2.A02=doc1.tu
    doc2.A00=doc1.datv
    Set doc1=view.GetNextDocument(doc1)
    Wend
    Но, чувствую, что бред. Если нет, то как определить doc2?
    Догадываюсь, что задаю глупые вопросы, но совсем уже запуталась.
     
  7. oshmianski

    oshmianski Гость

    1. определись, где будут находится новые доки (в существующей бд или новой) = dbNew
    2. определяешь коллекцию всех старых доков = colOld
    3. бежишь по коллекции colOld и создаешь (CreateDocument) в dbNew новый док по нужной тебе форме = docNew
    4. docNew.Form = "Новая_форма"
    5. docNew.Новое_поле = docOld.Старое_поле
    6. docNew.save true, true

    Для того, чтобы новые доки отображались, нужно в дизайнере создать новую форму

    ps: Dim doc1, doc2 As NotesDocument - не верно. правильно Dim doc1 as NotesDocument, doc2 As NotesDocument
     
  8. Fossil Code

    Fossil Code Гость

    Копировать сами документы задание, похоже, не велит. Разработайте форму 2. Теперь решите задачу преобразования документов, созданных по форме 1, к виду формы 2 следующим образом. Создайте агент, который отрабатывает на всех документах вида или базы. В каждом обрабатываемом документе должно быть внесено новое значение в поле "Form", создано новое поле, в него скопировано значение старого, а старое должно быть удалено.
     
Загрузка...
Статус темы:
Закрыта.

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