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

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

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

    miorica Гость

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

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

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

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

    Fossil Code Гость

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

    miorica Гость

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

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

    Elena Nefedova Гость

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

    miorica Гость

    Репутация:
    0
    Попробую сформулировать вопрос понятнее.
    Для обучения 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 Гость

    Репутация:
    0
    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 Гость

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

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