Приложить Attachment через диалоговое окно

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

Гость
#1
Как открыть диалог для выбора файл-attachment через - Call workspace.DialogBox?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#2
ай-я-яй! кто не изучает хелп?
stringArray = notesUIWorkspace.OpenFileDialog( multipleSelection , [title$] , [filters$] , [initialDirectory$] , [initialFile$] )

правда, я не понял, что именно нужно :blink:))
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#3
Или речь идёт о DialogBox + RichText Lite? :blink:
 

Гость
#4
Или речь идёт о DialogBox + RichText Lite? :blink:
Omh, прямо в точку.
Sub Initialize
Dim ws As New NotesUIWorkspace
filenames = ws.OpenFileDialog(True, "Select files to add as attachment",, "c:\work")
If Not(Isempty(filenames)) Then
Forall filename In filenames
ScanCopy. - а как дальше?
End Forall
End If
End Sub
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#5
Да не, как раз вроде Akupaka в точку :blink:

А что дальше-то надо?
У тебя в переменной filenames находится array имён выбранных файлов.
Вроде бы извращайся как хочешь.

Или надо в DialogBox приложить аттачменты?
Тогда на форме ставишь RichTextLite и кнопку с OpenFileDialog выкидываешь.
Если надо что-то другое - конкретизируй: к сожалению, миелофон сегодня забыл дома.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#6
Или надо в DialogBox приложить аттачменты?
Тогда на форме ставишь RichTextLite и кнопку с OpenFileDialog выкидываешь.
имелось в виду, что, если нужно вложения прикладывать на форме, которая через диалог открывается, то вместо RichText нужно использовать RichTextLite... ну, это, если не явно написано, а то "миелофоны" дома пооставляли :blink:)
 

Гость
#7
В чем траблы, не добавляется файл. Помогите.

Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace
Dim rt As NotesRichTextItem
Dim uidoc As NotesUIDocument
Dim pathName As String

pathName$ = "d:\Consigme"
Set uidoc=ws.CurrentDocument
Set rt = New NotesRichTextItem(uidoc.Document, "Body")
fileName = ws.OpenFileDialog(False, "Import Quotesheet",, "d:\Consigme")

If Isarray(fileName) Then
Call rt.EmbedObject(EMBED_ATTACHMENT, "", fileName(0))
Call rt.Update
Call uidoc.Refresh
Else
Msgbox "Hi:"
End If

End Sub
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#8
тут как обычно без переоткрытия не обойдешься...
я уже устал этот код дублировать из темы в тему ))) щас поищу...

Код:
'тут что-то пишется в RichTextItem

' "прописываем" изменения в RichTextItem
Call RichTextItem.Update

' тут указывается форма документа, если он был новый и форма не установлена еще, либо на всякий случай :)
Call uidoc.Document.ReplaceItemValue("Form", "СЮДА НАДО ВПИСАТЬ ИМЯ ФОРМЫ, А ЛУЧШЕ АЛИАС")

' теперь открываем документ в новом окне
Call ws.EditDocument(True, uidoc.Document)

' это позволяет избавиться от вопроса о сохранении закрываемого документа!
' причем это прописывается в "старый" экземпляр документа в памяти-instance,
' т.е. в открытом предыдущей командой документе это не появится и убирать не нужно оттуда ничего
Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")

' закрываем "старый" документ
Call uidoc.Close(True)
Морфеюс, это есть в CB?..
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#9
А не проще метод notesUIDocument.Import использовать? Или собаку @Command([FileImport]; fileType; fileName).

Или вообще, как сказал Omh, поставить Rich Text Lite и забыть про кнопку?
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#10
Во-во!
Если в ui прикладывать аттач, то на собаках гемора в -надцать раз меньше.
Это я про
Код:
@Command( [EditInsertFileAttachment] )
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#12
Если в ui прикладывать аттач, то на собаках гемора в -надцать раз меньше.
да и еще и пиктограмма файла номально будет отображаться, а не как если прикладывать скриптом - тогда отображается какое-то серенькое подобие ))

но, если очень надо при этом что-то еще сделать, например, прологировать, что пользователь че-то вложил, то можно показать ws.OpenFileDialog, сохранить путь к файлу, например, в переменную окружения (@Environment), потом запустить агент, который прочитает эту переменную, выполнит @Command( [EditInsertFileAttachment] ; file ; compress ), и потрет значение переменной
и картинка нормально, и задачу решили, и документ не надо перегружать!
 

Гость
#13
тут как обычно без переоткрытия не обойдешься...
я уже устал этот код дублировать из темы в тему ))) щас поищу...

Код:
'тут что-то пишется в RichTextItem

' "прописываем" изменения в RichTextItem
Call RichTextItem.Update

' тут указывается форма документа, если он был новый и форма не установлена еще, либо на всякий случай :)
Call uidoc.Document.ReplaceItemValue("Form", "СЮДА НАДО ВПИСАТЬ ИМЯ ФОРМЫ, А ЛУЧШЕ АЛИАС")

' теперь открываем документ в новом окне
Call ws.EditDocument(True, uidoc.Document)

' это позволяет избавиться от вопроса о сохранении закрываемого документа!
' причем это прописывается в "старый" экземпляр документа в памяти-instance,
' т.е. в открытом предыдущей командой документе это не появится и убирать не нужно оттуда ничего
Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")

' закрываем "старый" документ
Call uidoc.Close(True)
Морфеюс, это есть в CB?..
Спасибо, большое.
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#14
Денис Кириченко
А про собаки совет проигнорировал?
 

Гость
#16
Денис Кириченко
А про собаки совет проигнорировал?
Нет, просто искал примеры, вот что надыбал:

@Command([RunAgent]; "(Insert Template2)");
@Command([EditGotoField];"Attach_Body");
@Command([EditInsertFileAttachment];@GetField("Path_1"); 0)

Агент открывает OpenFileDialog, сохраняет в текстовом поле, после чего файл аттачится. Вопрос а вот можно несколько файлов выделить и проатачить?
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#18
Medevic дал намёк толщиной с канат, как лучше всего реализовать.
 

Гость
#19
Не получается проатачить, следующим образом:ph34r: Не знаете в чем лажа.
@Command([EditInsertFileAttachment];"C:\Documents and Settings\All Users\Документы\Мои рисунки\Образцы рисунков\Dark_Globule_1024-768.jpg"; 0); 0)
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#20
:ph34r:

Кнопка:

@Command([EditGotoField] ; "ScanDocument" );
@Command( [EditInsertFileAttachment] )


где ScanDocument - имя RT поля в документе