Autor Thema: RichText Felder + Kalendereintrag  (Gelesen 3313 mal)

Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
RichText Felder + Kalendereintrag
« am: 10.06.13 - 16:58:18 »
Hallo zusammen,

ich habe momentan noch zwei kleine Probleme bei einer XPage. Vielleicht hat einer von euch einen Hinweis.

1. Erstelle ich einen Kalendereintrag. Dies funktioniert auch soweit bis auf einen kleinen Schönheitsfehler - Der Benutzer bekommt neben dem Kalendereintrag noch einen Entwurf zu diesem Kalendereintrag, welchen er bei seinen Mailentwürfen sieht. Anbei der Code den ich verwende:

Code
var db:NotesDatabase = session.getCurrentDatabase();

var id = currentDocument.getParentId();

var parent:NotesDocument = db.getDocumentByID(id);

var category = parent.getItemValueString("Kategorie");

var dir = session.getDbDirectory( session.getServerName() );

var mail = dir.openMailDatabase();

var doc = mail.createDocument();

doc.appendItemValue("Form", "Appointment");

doc.appendItemValue("AppointmentType", "3");

doc.appendItemValue("From", session.getEffectiveUserName());

doc.appendItemValue("Principle", session.getEffectiveUserName());

doc.appendItemValue("Chair", session.getEffectiveUserName());

doc.appendItemValue("Subject", category);

doc.appendItemValue("Location", parent.getItemValueString("Ort"));

doc.appendItemValue("Categories", "Allgemein");

var dt = parent.getItemValue("Date");

var dt2 = parent.getItemValue("Begin");

var dt3 = parent.getItemValue("End");

var date = @Date(dt).getDateOnly();

//Now the Starttime

var time = @Time(dt2).getTimeOnly();

var d1 = session.createDateTime(date + " " + time);

doc.replaceItemValue("StartDateTime", d1);

doc.replaceItemValue("StartDate", d1);

doc.replaceItemValue("StartTime", d1);

var tz = session.evaluate("@GetCurrentTimeZone");

doc.replaceItemValue("StartTimeZone", tz[0]);

doc.replaceItemValue("CalendarDateTime", d1);

//Now the Endtime

time = @Time(dt3).getTimeOnly();

var d2 = session.createDateTime(date + " " + time);

doc.replaceItemValue("EndDateTime", d2);

doc.replaceItemValue("EndDate", d2);

doc.replaceItemValue("EndTime", d2);

doc.replaceItemValue("EndTimeZone", tz[0]);

var description = @DbLookup(db,"vwCategory",category,"description");

var body = description;

doc.replaceItemValue("Body", body);

doc.computeWithForm(true, false);

doc.save(true, false);


2. In einem Dokument gibt es ein RichText Feld, in welchem ein formatierter Text gespeichert wird, ohne Bilder. Diesen würde ich gerne an anderer Stelle wieder abrufen. Kann ich das über ein Computed Field lösen? Bisher bekomme ich keine Daten angezeigt.

Ich habe versucht über einen DbLookup und über die View->Documentbykey->document->getitemvalue das Feld zu bekommen. Leider beides vergebens.

Vielen Dank für Eure Hilfe


Gruß René

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: RichText Felder + Kalendereintrag
« Antwort #1 am: 12.06.13 - 09:36:34 »
Hast Du Dir schonmal die Kalender-Klassen auf den XSnippets angesehen? Da gibt es entsprechenden Code von Ulrich.
http://openntf.org/XSnippets.nsf/snippet.xsp?id=create-calendar-entry-with-ssjs

Zu deinem RT-Problem:
Wenn Du statt dem Lookup eine Document Datasouurce nutzt, kannst Du den Inhalt des RT Items direkt darstellen, z.B. so:

Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
	xmlns:xp="http://www.ibm.com/xsp/core">
	
	<xp:this.data>
		<xp:dominoDocument
			var="document1"
			action="openDocument">
			<xp:this.documentId>
				<![CDATA[#{javascript:database.getView("All").getLastDocument().getUniversalID()}]]>
			</xp:this.documentId>
		</xp:dominoDocument>
	</xp:this.data>
	<xp:text
		escape="false"
		id="computedField1"
		value="#{document1.Body}">
	</xp:text>
	
</xp:view>

Die documentId ist dynamisch berechnet, kann natürlich auch ein Lookup o.ä. sein. Dann kann das RT-Item Body in einem computedField direkt dargestellt werden.



Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: RichText Felder + Kalendereintrag
« Antwort #2 am: 12.06.13 - 10:11:16 »
Hallo Sven,

den Code von Ulrich hatte ich mir noch nicht angesehen, da ich damals diesen Code einmal gefunden hatte (http://blog.balfes.net/2010/01/14/creating-a-calendar-entry-from-an-xpage-event/).  Aber das werde ich gleich mal nachholen.

Freut mich, dass ich das auf das RT Feld dann doch recht einfach zugreifen kann.

Danke für Deine Hilfe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz