Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: kleinerkutz am 16.10.07 - 09:46:29

Titel: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: kleinerkutz am 16.10.07 - 09:46:29
Hallo,

wir haben eine Notes-Datenbank in der Vorlagen benutzt werden. Diese müssen derzeit mühsam manuell in die Zwischenablage kopiert werden, damit ich dann ein neues Memo erstellen kann um diese Vorlage wieder einzufügen, eine Schaltfläche zu drücken damit die
Email-Empfänger und Betreffzeile gefüllt werden.

Ich wollte eine Schaltfläche in diese Vorlage einbauen, damit direkt ein neues Memo erstellt wird ( das passiert auch) allerdings werden die Daten nicht kopiert.

Habt Ihr eine Idee?  ???
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: DAU-in am 16.10.07 - 09:56:51
wie kopierst du die Daten denn?
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: WernerMo am 16.10.07 - 10:06:07
Hallo,

wenn Ich das richtig verstehe, könnte Dir auch die Past-Information-Application (http://atnotes.de/index.php?topic=35201.0) weiterhelfen?

Gruß Werner
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: Andrew Harder am 16.10.07 - 10:12:48
wie kopierst du die Daten denn?
Nimmst Du die Vorlage als Backenddokument, kopierst sie in die Maildatenbank des Users und öffnest sie dann mit ws.EditDocument?
Oder wie gehst Du vor?
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: kleinerkutz am 16.10.07 - 10:36:11
Hm, ist ja grundsätzlich schon nicht schlecht.

Ich habe nur das Problem, das ca. 1000 Nutzer auf ein Informationsdatenbank zugreifen, auf der sowohl Informationen und auch Vorlagen enthalten sind. Wir wollen jetzt keine neue Datenbank erstellen in der nur Vorlagen sind.

Daher mein Wunschablauf:
1. Aufruf der Informationsdatenbank, suche nach der Vorlage
2. Vorlage aufrufen
3. Button ausführen, der ein neues Mail generiert und die Vorlage gleich reinkopiert.

Alles andere verstehen nicht alle User.
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: WernerMo am 16.10.07 - 10:45:21
Hallo,

warum erst die Vorlagendatenbank öffnen, wenn es noch einfacher geht, Alan bietet  hier (meiner Mainung nach) die Userfreundlichste Lösung, dass die Vorlagen von überall aus genutz werden können.

Hast Du Dir den Link von oben schon mal angesehen?
http://www.alanlepofsky.net/alepofsky/alanblog.nsf/dx/paste-information-application

Viele Grüße
Werner
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: Andrew Harder am 16.10.07 - 10:56:19
Basiert die Vorlage auf der Memo Form, oder ist das etwas eigenes mit eigenen Felder etc.?

Wenn die Vorlagen nicht auf der Memo Form basieren, kannst Du ja einmal folgendes Probieren:
1 Feld (hideSenders, default = "1")
2 Buttons (
1x Senden -> Setzt das obrige Feld lediglich auf "0" und refreshed das Dokument)
1xAbsenden -> sendet das Dokument incl. Form und kopiert das Dokument noch wo anderst hin z.B. Maildatenbank des Users oder eigener Dokumenttyp in der DB, oder andere DB etc. pp oder vieleicht auch... gar nicht).

Dann müssten nur die Felder für die Empfänger per Versteckformel (hideSenders) ein bzw. ausgeblendet werden.


Wenn das ganze aber auf der Standardmaske basiert, dann kannst Du einfach die Vorlage in die Maildatenbank des Benutzer kopieren und sie dann mit ws.EditDocument öffnen. Ist dann halt einfach eine Stanardmail aus einer Vorlage welche aus einer anderen DB kommt.

Im übrigen solltest Du Dir den obrigen Link wirklich einmal ansehen, sowas kann man auch für einige andere Dinge gut gebrauchen ;)
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: botschi am 16.10.07 - 11:08:43
Da kann ich Werner nur zustimmen.
Ich hab das Teil auch bei mir installiert (und bei einigen Usern, die immer ganz nett zu mir sind) und bin davon begeistert.
Das ist eigentlich genau das, was Du möchtest- der Betreff und der Adressat werden nicht gefüllt. Aber das kann man erweitern und vielleicht wird Dir hier sogar dabei geholfen.

Matthias
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: kleinerkutz am 16.10.07 - 12:29:07
Ich habe mir die Datenbank angesehen. Wir haben eine andere Form der Informationen.

Die bisherige Variante ist allen Usern bekannt und weitere Informationsdatenbanken oder Vorlagendatenbanken dürfen von uns nicht eingesetzt werden.

Daher habe ich folgende Variante ausprobiert:

@PostedCommand([EditDocument]) ;
@PostedCommand([EditGotoField] ; "Inhalt" ) ;
@PostedCommand([EditSelectAll]) ;
@PostedCommand([EditCopy]) ;
@PostedCommand([FileCloseWindow]) ;
@PostedCommand([Compose];@MailDbName;"Memo") ;
@PostedCommand([EditGotoField] ; "Body" ) ;
@PostedCommand([EditPaste]);
@PostedCommand([EditGotoField] ; "EnterSendTo" ) ;
@PostedCommand([EditInsertText] ; "Email" ) ;
@PostedCommand([EditGotoField] ; "Subject" ) ;
@PostedCommand([EditInsertText] ; "Betreff" );

Allerdings tritt ein Problem auf. Die User rufen das Dokument auf. Eine Bearbeitung ist aber  untersagt. Daher wird nicht nur das Feld Inhalt kopiert, sondern dass gesamte Dokument.

Hat jemand eine Idee wie ich nur das Feld Inhalt bei einem nicht in Bearbeitung stehenden Feld kopieren kann?
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: Axel am 16.10.07 - 15:41:20
Da wirst du mit der Formelsprache nicht weit kommen. Dazu brauchst du LotusScript. Sowas lässt sich nur im Backend realisieren.


Axel
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: pete_bla am 16.10.07 - 19:12:47
Hi,

hier hätte ich noch eine "viel zu einfach, als das es gehen könnte" Vorschlag:

hast du schonmal eine Vorlage aus der Datenbank "weitergeleitet"?
"Aktion\Weiterleiten"
oder
@Command( [MailForward] )

Probleme die ich da sehe sind jedoch:
1. Die Vorlagen werden mit der Maske "gerendert" -> alles was in der Vorlage steht wird übergeben.
 musst du halt noch ne maske integrieren, wo nur die eigentlichen Vorlage-Daten drin stehen.

2. Die "Vorlage" wird eben nur in den Body der mail gepackt,
 Betreff ect. musst du noch anpassen.

3. wirklich ein Problem ist die Zeile "------ weitergeleitet von ----",  die dabei automatisch generiert wird.

Grüsse, Pete(r)
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: Axel am 16.10.07 - 19:24:35
Das ist aber keine wirkliche Alternative für die geforderte Funktionalität. Besonders wenn ich mir die Probleme anschaue, die du ja selbst schon beschrieben hast.

Wenn ich das Ganze richtig überblicke müsste das mit ein bisschen Lotusscript problemlos und einfach zu realisieren sein.

Und das funktioniert dann problemlos.

Axel
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: pete_bla am 16.10.07 - 19:47:55
Hi Axel,

tja ich musste doch immerwieder die Erfahrung machen, dass das einfach eben doch genügt....
und man muss nicht wirklich alles gleich mit Script platt hauen.... (hat aber ja bekanntlich auch seine grenzen)

Zum Problem mit dem "Edit" und der Berechtigung (muss ich mal wieder ein layer 8-Chache Problem gehabt haben)
würde ich eben noch Vorschlagen eine "angepasste Maske" für die Vorlagen bereitszustellen
in denen eben nur der Body drin ist, womit der EditGotoField nicht notwendig ist und der EditSelectAll auf das ganze Vorlagen-Dokument wirken darf.

also ungefähr so:
Code
@Command([SwitchForm] ; "VorlageNurBody" );
@Command([EditSelectAll]);
@Command([EditCopy]);

Grüsse, Pete(r)
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: kleinerkutz am 17.10.07 - 11:35:21
Hört sich ja alles gut an, aber:

1. Weiterleiten ist nicht so sinnvoll, da in der DB 10 verschiedene Felder mit Abschnitten vorhanden sind. Beim weiterleiten wird der ganze Kram mitgesendet.

2. Vorlagen-Maske erstelle, geht nicht, da hier die Gestaltung zu ist. Einzige Möglichkeit über einen Doklink auf eine neue Datenbank zugreifen lassen. Ist so eigentlich nicht gewollt.

Einzige aus meiner Sicht dann sinnvolle Lösung über eine Schaltfläche, die die Kopiersache übernimmt.
Titel: Re: Dateninhalt aus einer Datenbank in eine neues Memo kopieren
Beitrag von: Axel am 17.10.07 - 12:16:35
Ich würde das Ganze mit ein paar Zeilen Script machen. Dann hast du eine saubere Lösung.

Ich habe mir vor einiger Zeit mal eine quick-and-dirty - Funktion erstellt die ein neues Mail erstellt, die als Parameter übergebenen Werte als Empänger einträgt und als neues Memo in der Mail-DB zum Bearbeiten öffnet. Das Kopieren von Einträgen aus deinen Vorlagen dürfte problemlos integrierbar sein.

Code
Function CreateMailMemo(varSendTo As Variant) As Integer
	
	Dim workspace As New NotesUIWorkspace
	Dim maildb As NotesDatabase
	Dim maildoc As NotesDocument
	Dim profile As NotesDocument
	Dim varProc As Variant
	
	On Error Goto ErrorHandler
	
	CreateMailMemo = 0
	
	Set maildb = New NotesDatabase("","")
	maildb.OpenMail
	Set profile = maildb.GetProfileDocument("CalendarProfile")
	
	'Anlegen neues Mail
	Set maildoc = New NotesDocument(maildb)
	maildoc.Form = "Memo"
	maildoc.Logo = profile.DefaultLogo(0)
	maildoc.Principal = profile.Owner(0)
	maildoc.SendTo = varSendTo
	Call maildoc.ComputeWithForm(False, False)
	
	'Anzeigen zur weiteren Bearbeitung
	Call workspace.EditDocument(True, maildoc)
	
Ende:
	Exit Function
	
ErrorHandler:
	varProc = Getthreadinfo(LSI_THREAD_PROC)
	Messagebox varProc & ": Es ist ein Fehler aufgetreten. Die Ausführung wird abgebrochen." & Chr$(13) & "Fehler: " & Str$(Err) & " -> '" & Error$ & _
	" in Zeile " & Str$(Erl) , 16, "Adressen"
	CreateMailMemo = 1
	Resume Ende	
End Function


Axel