Krzysztof G.

Krzysztof G. Java Developer

Temat: Zalączniki

Witajcie mam pytanie z rodzaju czy się da ... chodzi o klienta Lotus Notes.
Otwieram dokument mam pole rtf wrzucam zalacznik (drag-drop) a nastepnie programowo chce go wyrzucic na otwartym dokumencie. Problem w tym ze jak wyrzucam zalacznik za kazdym razem jak ponownie otwieram dokument to ten zalacznik istnieje tyle tylko ze ma 0 bajtów.

Ma ktos jakis pomysl za wszelkie sugestię będę wdzieczny.

Pewnie prościej dało by się to zrobić z poziomu widoku a nie dokumentu ale narazie chce spróbować trudniejszą wersję.

pozdrawiam

MAX
Marcin Matkowski

Marcin Matkowski IBM and VMware
Certified Instructor

Temat: Zalączniki

Cześć,
Otwieram dokument mam pole rtf wrzucam zalacznik (drag-drop) a nastepnie programowo chce go wyrzucic na otwartym dokumencie.

Nie zapisując dokumentu... raczej się nie da ...

Natomiast prosta czynność powinna załatwić to co chcesz osiągnąć:

Dim doc As NotesDocument
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Dim rtitem As Variant
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Call o.Remove
Call doc.Save( False, True )
End If
End Forall
End IfMarcin Matkowski edytował(a) ten post dnia 20.03.09 o godzinie 14:44
Krzysztof G.

Krzysztof G. Java Developer

Temat: Zalączniki

Marcin Matkowski:
Cześć,
Otwieram dokument mam pole rtf wrzucam zalacznik (drag-drop) a nastepnie programowo chce go wyrzucic na otwartym dokumencie.

Nie zapisując dokumentu... raczej się nie da ...

Natomiast prosta czynność powinna załatwić to co chcesz osiągnąć:

Dim doc As NotesDocument
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Dim rtitem As Variant
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
Call o.Remove
Call doc.Save( False, True )
End If
End Forall
End IfMarcin Matkowski edytował(a) ten post dnia 20.03.09 o godzinie 14:44

Tez tak myślałem lecz niestety to nie jest takie proste ;)
W back-endzie rzeczywiście nie masz tego załącznika ale w for-endzie jest i przy próbie zamknięcia dokumentu będziesz miał komunikat z pytaniem o zapis i tu jest pies pogrzebany. Jeśli Użytkownik zapisze dokument to otrzymasz uszkodzony załącznik (plik 0 bajtów widoczny w polu) natomiast jeśli nie zapisze wszytko jest ok.

P.S
To co napisałeś będzie idealnie działać na widoku pomijam tutaj
linie
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document

Może jakieś inne pomysły ?

pozdrawiam

MAX
Liwiusz Falkowski

Liwiusz Falkowski Prezes Zarządu,
CeNTe Sp. z o.o.

Temat: Zalączniki

Jeżeli dokument jest otwarty w front-end'dzie to dostajemy się do niego poprzez:

notesuiworkspace.currentdocument i wtedy:

uidoc.gotofield("nazwa pola z załącznikem")
uidoc.selectall
uidoc.clear

i pole jest czyste :)
Liwiusz Falkowski

Liwiusz Falkowski Prezes Zarządu,
CeNTe Sp. z o.o.

Temat: Zalączniki

i jeszcze jedno dokument musi być w trybie edycji oczywiście
Krzysztof G.

Krzysztof G. Java Developer

Temat: Zalączniki

Liwiusz Falkowski:
i jeszcze jedno dokument musi być w trybie edycji oczywiście

Ok dzieki

Oczywiscie ze doument musi być w edycji ;)

Teraz nieco truniejsze masz zalacznik na dysku i trzeba go pobrac u wrzucic do pola będąc na otwartym dokumencie jakies pomysly ?

pozdrawiam

MAX
Adrian C.

Adrian C.
projektant/programis
ta

Temat: Zalączniki

Krzysztof G.:
Liwiusz Falkowski:
i jeszcze jedno dokument musi być w trybie edycji oczywiście

Ok dzieki

Oczywiscie ze doument musi być w edycji ;)

Teraz nieco truniejsze masz zalacznik na dysku i trzeba go pobrac u wrzucic do pola będąc na otwartym dokumencie jakies pomysly ?

pozdrawiam

MAX

Pole RTItem nazywa się: 'test',filepath wiadomo:

1) Formula:
filepath:={F:\\filmy\\sph-transsiberian.txt};
@Command([EditGotoField];"test");
@Command( [EditInsertFileAttachment] ;filepath; "0")

2) Lotus script
Dim filepath As String
Dim ws As New NotesUIWorkspace
filepath = {F:\filmy\sph-transsiberian.txt}
Call ws.CurrentDocument.GotoField({test})
Call ws.CurrentDocument.CreateObject({FILE},,filepath)
Tomasz Frydryk

Tomasz Frydryk Właściciel, Domino
Solutions

Temat: Zalączniki

Przy operacjach naolach RichTextowych zawsze można zamknąć i ponownie otworzyć UIDocument.
Krzysztof G.

Krzysztof G. Java Developer

Temat: Zalączniki

Liwiusz Falkowski:
Jeżeli dokument jest otwarty w front-end'dzie to dostajemy się do niego poprzez:

notesuiworkspace.currentdocument i wtedy:

uidoc.gotofield("nazwa pola z załącznikem")
uidoc.selectall
uidoc.clear

i pole jest czyste :)

Ok dzieki

pozdrawiam

MAXKrzysztof G. edytował(a) ten post dnia 23.03.09 o godzinie 11:32
Krzysztof G.

Krzysztof G. Java Developer

Temat: Zalączniki

Kurcze chyba się pospieszyłem i wydawało mi się ze to zadziała
niestety nie zadziałało.

Ciekawe zjawisko wystarczy coś zrobić wcześniej na uidoc i juz selectall poda komunikat ze sorry ale funkcja jest niedostępna.
zwykle przejście do uidoc.editmode = true a już select nie zadziała. Ominąłem to dając przycisk tylko w edycji. I już się cieszyłem bo selectall zadziałało ale ...
No właśnie użytkownik dostaje komunikat o tym czy chce na pewno usunąć załącznik z pola nie można tego komunikatu w jakiś sposób ominąć ?

pozdrawiam

MAX
Adrian C.

Adrian C.
projektant/programis
ta

Temat: Zalączniki

Nie wiem czy jesteś zainteresowany nadal rozwiązaniem swojego problemu, ale:
załączniki wszystkie są wrzucane do dokumentu do pól o nazwie $FILE. W polach richtext może być jedynie coś na wzór "linku", reprezentacji załącznika. Zatem, jeśli chcesz wyrzucić załącznik poprostu usuwasz odpowiednie pole $FILE. Nie powinno być wtedy żadnego pytania, czy chcesz to wykonać. Nie załatwi to jednak "linku" w polu richtext, o ile dobrze się orientuję to przy ponownym otwarciu dokumentu w ui zostanie poprawnie zrenderowany wygląd pola richtextowego i dopiero wtedy zniknie "link".

//niestety pomyliłem się link zostanie, można go wykroić dxl'em ale to sa juz kombinacje ;)Adrian C. edytował(a) ten post dnia 07.04.09 o godzinie 10:26

Następna dyskusja:

wysylanie CV + zalączniki




Wyślij zaproszenie do