Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jor am 08.09.05 - 13:05:51
-
Hallo *,
ich möchte eine Tabelle die in einem doc (Backend) liegt von dort in ein anderes Backend-Dokument (Form=Memo) kopieren.
Geht das? Und wenn ja, werden die Tabelleneigenschaften, wie z. B. das Hintergrundbild, mit übernommen?
-
Ich nehme an das deine Tabelle in einem RTF liegt und dann kannst du mit:
Set msgitem = altesdoc.GetFirstItem("BodyFeldwoTableliegt")
Call msgitem.CopyItemToDocument(neuesdoc,"BodyFeldwoTablehinsoll")
die Tabelle kopieren.
-
Hi,
danke für deine Antwort. Ne, so 'einfach' liegt der Fall nicht. Ich habe eine Maske in der eine Tabelle liegt, diese hat und das ist wichtig, ein Hintergrundbild. Nun habe ich mir gedacht, wenn ich die Tabelle, Row=1; Column=1, von der Vorlagemaske ins rtItem des Mailmemos kopieren kann, wäre es möglich den Mails ein Bild mitzuschicken. Das Bild soll "KEIN" Anhang sein, sondern beim Öffnen der Mail sofort oberhalb des Textes sichtbar sein.
-
Warum hast du dein Problem nicht gleich so geschildert damit sich jeder sofort auskennt? ;)
-
dann könnte es so funktionieren:
Du erstellst ein Doc mit Deiner "Tabellenmaske",
erstellst dann in Deinem Memo ein Richtext-Item und rufst dann die methode RenderToRTItem des Tabellen- Docs auf...
HTH
Tode
-
Hhhmm, kann ich jetzt nicht entkräftigen...;-) sorry.
Ich habe schon im Forum gelesen und auch etwas gefunden, ist ja im Moment ein akt. Thema mit den JPEG in rtitem kopieren. Aber... leider haut das bei mir nicht hin.
Daher habe ich mir gedacht ich versuche es mal so. Ausser dem ist es ja auch generell sehr interssant, ob ich an "Gestaltungselemente" komme, wenn diese in einer Maske im Backend liegen.
-
Hi Tode,
RenderToRTItem??? Ich werde mal ins Buch bzw. in die Hilfe versinken.
Und hoffentlich mit Erkenntnissen wieder auftauchen. ;-)
-
Noch mal zu RenderToRTItem, jep, das könnte hinhauen!
-
Der folgende Code ist ohne Notes- Client einfach so aus dem Kopf getippt...
deshalb auch kein Gewehr (um mich zu erschiessen wenn's nicht geht), und erst recht keine Gewähr.
Dim ws as New NotesUIWorkspace
Dim ses as New NotesSession
Dim db as NotesDatabase
Dim doc as NotesDocument
Dim memo as NotesDocument
Dim body as NotesRichtextItem
set db = ses.CurrentDatabase
set doc = new NotesDocument( db )
doc.Form = "DeineTabellenDummyMaske"
set memo = New NotesDocument( db )
memo.Form = "Memo"
set body = new NotesRichtextItem( doc , "Body" )
call doc.RenderToRTItem( body )
'eventuell nötig
call memo.Save( True, True )
'ende eventuell nötig
call ws.EditDocument( true, memo )
-
Ich danke dir, mein Quältext ist auch so aufgebaut, wenn ich ein Memo damit erzeuge, dann ist oberhalb, dort wo die Maske angezeigt werden sollte, ein breiter Abstand. Nehme ich das Rendern raus, so ist der Abstand weg. Toll so weit, aber das Bild (Masken-Image) ist nicht zu sehen, quasi: Ich merke etwas, aber sehe nichts! ;-)
Hast du eine Idee? Die Attribute in der Original-Maske sind nicht gesetzt(so verstecken und Co.).
-
dann musst Du ggf. das doc speichern, bevor Du es ins Richtext- Feld renderst....
Was passiert denn, wenn Du irgend einen "Test-Text" ober- oder unterhalb Deiner Tabelle reinschreibst. Erscheint der dann im Memo ?
Tode
-
Moment... ich probiere es aus .....
-
Ich habe jetzt zwei berechnete Felder, je eins ober- und unterhalb, eingefügt. Der Text aus den Feldern ist zu erkennen. Soweit passt es, bis darauf, dass das Bild nicht zu sehen ist. Ich versuche es auch mal mit einem anderen Image.
-
Mit einem anderen Image funzt's auch nicht. Abstand stimmt, also ist die Tabelle auch drin, aber...
Ich schreibe mal was rein, vielleicht hilft's ja.
-
ich habe gerade diesen Code in einer Test- Datenbank ausprobiert, und er funktioniert wunderbar:
Dim ws As New NotesUIWorkspace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim memo As NotesDocument
Dim body As NotesRichtextItem
Set db = ses.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Form1"
Set memo = New NotesDocument( db )
memo.Form = "Form2"
Set body = New NotesRichtextItem( memo , "Body" )
Call doc.RenderToRTItem( body )
Call ws.EditDocument( True, memo )
Warum es bei Dir nicht geht, weiss ich nicht...
Gruß
Tode
-
Hast du in deinen TestDoc's auch eine Tabelle mit einer Hintergrundgrafik gehabt? Ich habe es gerade mal mit einem RichText-Feld ausprobiert,
und... ja damit klappt es. Ich denke, das die Tabelleneigenschaft, jedenfalls bezgl. der Hintergrundgrafik, nicht mit kopiert wird.
Ich bin aber ein Schritt weiter, DANKE!
-
Mein Test:
1. leere Datenbank erstellt
2. Maske erstellt. Name: Form1
2a. Tabelle in der Maske erstellt
2b. Tabellen- Hintergrund- Farbe eingestellt
2c. Tabellen- Hintergrund aus Imageressources ausgewählt
(insgesamt vier Zellen: Jeweils verschiedene Hintergründe, verschiedenste Grössen, mal gekachelt, dann gestreched... )
3 Maske erstellt. Name: Form2
3a. Richtextfeld Namens "Body" erstellt
4. Agent erstellt, oben genannten Code reinkopiert.
--> Funktioniert, inklusive Hintergrundgrafik
Kann Dir also leider nicht weiter helfen, weil: bei mir klappt...
Tode
-
Halt: Habe das Problem eben gefunden:
das funktioniert nur, wenn Deine Hintergrund- Ressource in der "Ziel- Datenbank" ebenfalls vorhanden ist.
Hier mein Test- Code:
Dim ws As New NotesUIWorkspace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim mailDB As New NotesDatabase( "" , "" )
Dim doc As NotesDocument
Dim memo As NotesDocument
Dim body As NotesRichtextItem
Set db = ses.CurrentDatabase
Call mailDB.OpenMail
Set doc = New NotesDocument( db )
doc.Form = "Form1"
Set memo = New NotesDocument( mailDB )
memo.Form = "Memo"
Set body = New NotesRichtextItem( memo , "Body" )
Call doc.RenderToRTItem( body )
'eventuell nötig
' Call memo.Save( True, True )
'ende eventuell nötig
Call ws.EditDocument( True, memo )
Man bemerke: das memo wird in der Mail- Datenbank erstellt, die Test- Maske in der Test- Datenbank.
Damit bleibt die Tabelle leer. Wenn ich jetzt aber die Image-Ressources in die Mail- Datenbank kopiere, dann sind sie wieder da. Scheint, als ob er beim rendern einfach den Verweis auf den Namen der Image- Ressource reinrendert, wenn die in der Ziel- DB nicht da ist, dann krachts...
HTH
Tode
-
Ich werde es nach deinen Angaben nochmal nachprogrammieren, läst mir keine Ruhe!
Bin mal gespannt, ob es dann bei mir auch funktioniert.
Danke für deine Hilfe!
-
Das ist ja ein Ding! Da habe ich nicht dran gedacht, ehrlich gesagt, hätte ich das auch garnicht in Betracht gezogen. Wird also nur der Verweis und nicht das eigentlichen Bild eingefügt. Man(n), man(n), man(n). ;-)
Danke dir!