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

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

miorica

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

morpheus

скриптописец
07.08.2006
3 915
1
#2
Для: miorica
во первых рзберитесь что Вам надо перенести, форму или документаы

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

Fossil Code

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

miorica

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

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

Elena Nefedova

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

miorica

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

Как я понимаю, для выполнения задачи надо в рамках этой же базы написать агент для заполнения второй формы. Как в этом случае описать переменные? По итогам чтения книг и хэлпа получилось следующее:
Код:
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?
Догадываюсь, что задаю глупые вопросы, но совсем уже запуталась.
 
O

oshmianski

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

Как я понимаю, для выполнения задачи надо в рамках этой же базы написать агент для заполнения второй формы. Как в этом случае описать переменные? По итогам чтения книг и хэлпа получилось следующее:
Код:
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?
Догадываюсь, что задаю глупые вопросы, но совсем уже запуталась.
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
 
F

Fossil Code

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