0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
1

Attachments, Очень нужна помощь!

17.05.2009, 15:04. Показов 80876. Ответов 55
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем-всем доброго времени суток!

Уважаемые, очень нужна помощь в таком вопросе: необходимо скопировать embedded object из поля Rich text item одного Notes документа DB1 в другое поле Rich text item другого документа DB2.

Если конкретнее говорить, то имеется база данных шаблонов документов и база данных проектов.
в бд проектов необходимо реализовать возможность копировать размещенное в бд шаблонов вложение. причем вид в представлении д.б следующим:

- Проект 1
>файл1
>файл2...

- Проект 2
> файл3....

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

Подскажите, кто знает. Заранее, огромное спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2009, 15:04
Ответы с готовыми решениями:

нужна очень ваша помощь.
Ребят. я Лотус взял как доп предмет. абы добрать кредиты. честно слово не изучал. да я как...

Нужна помощь
Есть бд и доки, в которых есть поле регион Необходимо заказчице сделать Справочник сотрудников...

Нужна помощь
Добрый день. Есть маленькая задача. На половину уже сделана. нужно чтоб одно база даных LOTUS...

Нужна помощь!
В одной из баз есть представление в котором первый столбец "категоризирован". Т.е. в нем...

55
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
27.05.2009, 12:58 41
Author24 — интернет-сервис помощи студентам
Ой, все заработало!!!
супер!!!
Огромное спасибо, Akupaka!!!
OKEN, тебе тоже не меньшее спасибо за помощь и желание помочь!!!
ВЫ СУПЕР!!!

у меня тока вот еще вопросик будет....Пардон, канешн, за наглость, если таковой сочтете...

В общем мне бы еще код для кнопочек на формах, чтоб можно было создать аналогичные документам на основе шаблонов документы Word и Excel. у них формы почти такие же как у документа на основе шаблона, тока вместо той кнопки для копирования вложений должен создаться документ Word или excel с именем, заданным в поле выше (например, в поле "word_name" или "excel_name").

Мож завалялся код где-нить,а? На форуме видела что-то подобное, но вот под себя сделать не получилось....
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
27.05.2009, 13:25 42
что имеется в виду?
у тебя есть документ с вложением шаблоном (.dot/.xlt), и ты хочешь по нажатию на какую-то кнопку создать в другом документе вложение (doc/xls), созданное на основании того шаблона?..

думаю, что тут придется шаманить с ActiveX офиса...
- из указанного документа с шаблоном выгрузить вложение на диск;
- запустить офис (возможно без УИ);
- создать файл-документ на основании шаблона;
- прикрепить созданный файл к текущему доку.
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
27.05.2009, 13:54 43
Цитата Сообщение от Akupaka
что имеется в виду?
подразумевается, что можно создать пустой док Word или Excel. для каждого из них разные формы: там заполняется этап проекта, берется название выбранного проекта, пишется в поле название документа, а по кнопке "Создать" на форме создается док Word или лист Excel с названием, введенным в поле "название документа"
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
27.05.2009, 15:00 44
я так и не понял, что именно нужно получить от ворда
нужно по нажатию на какую-то кнопку открыть ворд с новым вордовским документом, который будет иметь конкретное имя файла?..
или нужно открыть ворд и вписать в документ какие-то данные из документа в лотусе?..
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
27.05.2009, 16:23 45
Цитата Сообщение от Akupaka
я так и не понял, что именно нужно получить от ворда
нужно по нажатию на какую-то кнопку открыть ворд с новым вордовским документом, который будет иметь конкретное имя файла?..
или нужно открыть ворд и вписать в документ какие-то данные из документа в лотусе?..
Первый вариант!!! нужно, чтоб создавался новый вордовский док с конкретным именем файла. а дальше пользователь уже будет сам изменять файл как ему хочется, главное, чтоб все потом сохранялось
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
27.05.2009, 16:36 46
уф... я с офисом давно не работал...
вот тебе пример кода как создать объект редактора и открыть,
еще можно сохранить с конкретным именем...
а как ему имя файла задать до сохранения уже поищи в нете...


Код
Создание Word-документа
Set word = CreateObject("Word.Application") Создание объекта Worda
Call word.documents.add("") Создание нового документа по шаблону
Set worddoc = word.activedocument Активация объекта

...

worddoc.saveas(customername) сохранение документа-Worda с именем файла в переменной customername
word.visible = True Сделать видимым окно Worda
0
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 271
27.05.2009, 17:01 47
Кажется формат примерно такой: SaveAs NewFileName, "", "MS Word 97", False, True, False
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
27.05.2009, 17:26 48
Код
Создание документа Word/Excel
Sub Click(Source As Button)
Dim PartExtension As String
Dim AppName As String
Dim offApp As Variant
Dim offDoc As Variant
Dim AppType As Integer
Dim DocName As String

Const PartExtensionW = ".doc"                    WORD`ового файла
Const AppNameW = "Word.Application"
Const PartExtensionX = ".xls"                     Excel`евого файла
Const AppNameX = "Excel.Application"

Const PartName = "doc001"  имя файла
просто и тупо, сделай, как тебе надо :)
If Msgbox("Создать документ Word (Yes) / Excel (No)?", 4+32, "Создать") = 6 Then
AppType = 1
Else
AppType = 2
End If

Select Case AppType
Case 1
DocName = PartName & PartExtensionW
AppName = AppNameW
Case 2
DocName = PartName & PartExtensionX
AppName = AppNameX
End Select

open Word/Excel
Err = 0
On Error Resume Next
Set offApp = GetObject ("", AppName)
If Err Then
Set offApp = CreateObject (AppName)
End If
On Error Goto 0
If offApp Is Nothyng Then
Print "Не установлено приложение " & Strleft(AppName, ".")
Exit Sub
End If
Let offApp.Visible = True  делаем видимым

Select Case AppType  тут чуть отличается
Case 1
Set offDoc = offApp.Documents.Add("", False, 0, True)  открываем пустой
offDoc.activate
Case 2
Set offdoc = offApp.Workbooks.Add
End Select
Call offDoc.SaveAs(DocName)  сохраняем
End Sub
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
27.05.2009, 18:22 49
Цитата Сообщение от Akupaka
вот тебе пример кода как создать объект редактора и открыть,
еще можно сохранить с конкретным именем...
а как ему имя файла задать до сохранения уже поищи в нете...
пасибки. скажи, а это многоточие что значит? :blink:
глянь плз эту тему -
это мне подойдет для названия файла?

а с Excel тоже самое почти будет или есть какие-то особенности?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
27.05.2009, 18:53 50
троеточие? это троеточие :blink: можешь вместо троеточия свой код вписать ;)
по поводу офиса, придется тебе самостоятельно попробовать, я не очень-то в нем разбираюсь... в той теме достаточно для теста инфы + наши предыдущие посты показывают как создать объект приложения...
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
27.05.2009, 19:07 51
Цитата Сообщение от OlyaZ
глянь плз эту тему - ]]>http:///forum/threads/30315.html?hl=word]]>
это мне подойдет для названия файла?

а с Excel тоже самое почти будет или есть какие-то особенности?
Убрала в своем коде сохранение по SaveAs. Код по ссылке только меняет заголовок окна.
Для экселя вариант приведен. Есть немного особенностей.
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
27.05.2009, 21:14 52
OKEN, воспользовалась твоим кодом для создания документов Word/ Excel. тока вот после сохранения в ворде/ экселе этот файл не аттачится на форму. а для него там и поле заведено давно :blink:
Или этот код не подразумевает, что все должно на форму вкладываться?





Цитата Сообщение от OKEN
Убрала в своем коде сохранение по SaveAs.
это откуда убрано? предпоследняя строка что ли?
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
28.05.2009, 13:09 53
Цитата Сообщение от OlyaZ
Или этот код не подразумевает, что все должно на форму вкладываться?
Не подразумевает. Он создает пустой файл (ворд/эксель) и сохраняет на диске. Из описания задачи я не поняла, что с ним надо делать, думала, пользователи его ручками редактируют.
Нужно аттачить к документу лотуса пустой шаблон?



Цитата Сообщение от OlyaZ
Цитата(OKEN @ 28:05:2009, 17:54 )
Убрала в своем коде сохранение по SaveAs.


это откуда убрано? предпоследняя строка что ли?
Это я проверяла, насколько влияет на имя файла при сохранении установки заголовка окна, которые приведены в ссылке. Как и предполагалось, никак :( Т.е. SaveAs нужен для сохранения документа под нужным именем...
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
28.05.2009, 21:28 54
Не, подразумевается, что по кнопке создается пустой файл, но после его редактирования пользователем, он сохраняется как вложение на форме
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
29.05.2009, 02:15 55
я тут подумала - если вложение отображается в рт-поле, то может не надо его кодом открывать в ворде на редактирование пользователю, т.к. тогда непонятно, как лотус узнает, что пользователь закончил редактирование шаблона в ворде (нужна тогда кнопочка для добавления документа ворд в документ лотус как вложения, которую пользователь нажмет после завершения редактирования).
Может, просто создать, сохранить на диске и сразу прикрепить с диска пустое вложение. А пользователь потом сможет воспользоваться стандартным меню лотуса для редактирования аттача?
Но я встречала код, где аттач скрывался и все действия с аттачем производились с помощью кода: были отдельные кнопки для создания документа ворд, открытия на редактирование и присоединения отредактированного файла...

Можно попробовать добавить вложение в открытый на редактирование документ лотуса с рт-полем через кнопку с кодом:

Код
@Command( [EditGotoField]; имя_рт-поля );
@Command( [EditInsertFileAttachment]; имя_файла; "1");
Или вот код, который может прикрепить файл к текущему документу в рт-поле Attach с заменой старого аттача на новый, который работает в режиме чтения и редактирования документа. Код можно добавить к приведенному выше мной примеру создания пустого документа

Код
Call offDoc.SaveAs(DocName)  сохраняем

Dim fname As String
fname = offdoc.FullName  полный путь к файлу docName

Dim ws As New NotesUIWorkspace
Dim uidoc As notesuidocument
Dim doc As notesdocument

Dim RTitem As NotesRichTextItem
Dim eo As NotesEmbeddedObject
Const rtfldName ="Attach"

Set uidoc = ws.CurrentDocument  открытый в лотусе документ
If uidoc.EditMode Then
Call uidoc.refresh(True)
End If

Set doc = uidoc.Document

удалить прежнее рт-поле
If doc.HasItem(rtfldName) Then
Call doc.Removeitem(rtfldName)
Call doc.save(True, True)
End If
создать рт-поле с документом Word/Excel
Set rtitem = New NotesRichTextItem(doc, rtfldName)
If Not RTitem Is Nothyng Then
Set eo = RTitem.EmbedObject ( EMBED_ATTACHMENT, "", fname)

Call doc.Save( True, True )
doc.ReplaceItemValue "SaveOptions" , "0"

Закрыть Word/Excel
Call offDoc.Close
Call offApp.Quit
и попытаться удалить файл с диска
Err = 0
On Error Resume Next
Kill fname
On Error Goto 0
Call uidoc.Close  закрыть документ лотуса
End If
0
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 21
29.05.2009, 06:12 56
не дождалась ответа...
В итоге извернулась следующим образом: создала 2 пустых дока - эксель и ворд, и сохранила их в бд шаблонов. создала для них отдельное скрытое представление и сделала их невидимыми в других вьюхах. в итоге кнопка создания была практически копирована с предыдущего обсуждения с заменой имен полей и представлений...
да, мож, коряво, зато работает

Тебе, OKEN, все равно большое СПАСИБИЩЕ!!! на след недельке еще +1 добавлю :(
0
29.05.2009, 06:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2009, 06:12
Помогаю со студенческими работами здесь

Нужна помощь!
Не подскажите как следующую ситуацию можно реализовать в Lotus 6.0.3? В форме выбирается поле...

Нужна помощь
Set dcol = db.Search({@IsUnavailable(AgentCheck) },Nothyng,0), что необходимо дописать в запрос что...

Нужна помощь!
Исходные данные: есть форма А и форма Б есть View Б1 и View Б2, оба которые составлены по селекту...

Нужна помощь !
Sub Click(Source As Button) Dim session As New notessession, db As notesdatabase, view As...

Нужна помощь
Всем привет. Есть такая проблема. Есть 2 поля дата и время. Как в объеденить эти поля в столбец...

Нужна помощь
Есть вьюха, 5 ролей и около 15 человек. На одной роле может быть 2 или 3 человека. Как во вьюхе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru