• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Из лотуса в ворд

  • Автор темы lionk
  • Дата начала

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
В кнопке печати после
Код:
worddoc.FormFields(1).result = "!!!!!!!!!!!!!!!!!!!!!!"

Добавь:
Код:
Dim range As Variant
Dim newdoc As Variant
Set range = WordDoc.Content
Call range.Copy
Set newdoc = word.Documents.Add()
Call newdoc.Content.Paste

Глобальные переменные здесь нафиг не нужны.
 
G

Guest

Я немного подправил, в общем посмотрите... Не надо OLE создавать, просто приаттачте свой шаблон в Ваше поле. Ну и в зависимости от задачи не забывайте сохранять ворд документ, выходить из него и т.д. Написано достаточно коряво, было мало времени. Думаю разберетесь.

Ваш код кнопки "Печать":

Код:
Sub Click(Source As Button)

Set formdoc=GetPrintFormByAlias ("Word") 
If formdoc Is Nothing Then
Print "doc for report is Nothing !"
Exit Sub
End If



Set rtitem=formdoc.GetfirstItem("PrintFormBody")	
If rtitem Is Nothing Then
Messagebox "Шаблон не найден, проверьте настроики шаблона", MB_OK, "Внимание"
Exit Sub
End If
Set object=rtitem.EmbeddedObjects(0)
Call object.ExtractFile ("d:\document.doc")
Print "Инициализация " & object.Class & " ..."



Set word = CreateObject("Word.Application") 'Создание объекта Word'a
Call word.documents.add("d:\document.doc") 'открытие документа

Dim WordDoc As Variant
Set WordDoc = word.activedocument 'Активация объекта
word.Visible = True 'Сделать видимым окно Word'a

Set WordApp = WordDoc.Application

'Set word=worddoc.Application

'Call word.documents(1).activate'Активация документа
'Set WordDoc = word.activedocument 'получить активный документ

Dim Field As Variant

Const StQuote = "QUOTE """
Const EnQuote = """ \* MERGEFORMAT"
Call WordDoc.Bookmarks.Item("postnum").Select
Set Field = WordApp.Selection.Fields.Add(WordApp.Selection.Range, , StQuote + "!!!!!!!!!!!!!!!!!!!!!!" + EnQuote)

Stop
End Sub
 
L

lionk

Medevic
заработало +1,
а ты разобрался почему первичный обект ворда пропадает после отработки кода кнопки?

Ерюков Алексей
я хочу добится чтобы на компах ничего не сохраняло а первоначально документ был токо в памяти
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
lionk
А я и не разбирался.:(
Скорее всего из-за того, что rtitem не глобальная переменная. По окончанию процедуры лотус прибил её, а с ней и все связанные объекты. В том числе и внедренный в Rich Text объект - документ ворда(object).
Ради эксперимента можно попробовать сделать rtitem глобальной.

Предложенный мною метод плох тем, что затирает буфер обмена. Но это уже сам разбирайся. Можно ли перед этим сохранить его, а потом восстановить.
 
L

lionk

как и обещял рабочий пример выгрузки в ворд с описаниями

достоинстава:
использование печатной формы из базы лотуса
генерация документа в памяти без обращений на диск

недостатки:
закрытие ворд-документа при закрытии лотус-документа из которого делали выгрузку данных

все коментарии по роботе примера в коде кнопки и документе печатной формы.

тема закрыта всем спасибо.
 

Вложения

  • toword.rar
    58 КБ · Просмотры: 145

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
lionk
Через создание нового документа и копирование с помощью буфера обмена не захотел?
 
L

lionk

не, у меня в доке(реальном) много графических елементов, типа полоски и якоря с текстом и при вставке из буфера они слазят, и общий вид дока портится.
а специфика работы пользователей показывает что после выгрузки в ворд юзер работает с вордом (пускает на принтер, сохраняет на винт), закрывает и потом возвращяется в лотус.
такшо меня механизм устраивает на 100%
 
Мы в соцсетях:

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