Lukas Podhola | Kopirovani dat z Rich Text Lite pole do jineho Rich Text Lite pole |
| Vyvijim aplikaci, ktera umozni jednoduchy update webu a narazil jsem na problem vkladani obrazoveho materialu. Reseni jsem nasel v zadavani dat do lite verze Rich Text pole, pres ktere lze vkladat jen fotky (po omezeni). Misto, kde jsem se zarazil, je kopirovani vlozenych obrazku z jednoho RTLite pole do jineho RTLite pole. Pro zajimavost, kopirovani provadi agent napsany v Jave (vyuziva EmbeddedObject class). Uvazoval jsem jeste o vlozeni obrazovych dat do Shared Resources > Images, ale nenasel jsem zpusob, jak s daty pohnout. Pokud by nekdo vedel, jak neco takoveho obslouzit, tak prosim prosim :) |
Ja | Tiez ma to velmi zaujima |
St
12.03.2010 14:37:09
ID: 1102.1
| Tiez ma to velmi zaujima
Vie niekto ako sa da skopirovat jeden RichTextField do druheho.
Tiez mam RTlite naplnene obrazkami a chcem to presunut do ineho.
Velka vdaka ak to niekto vie!!!!!!!!!!! |
ja | Nasiel som si sam |
st
12.03.2010 14:47:55
ID: 1102.2
| Examples: AppendRTItem method
1. This script takes the Body item on document B and appends it to the end of the Body item on document A. The Body item on document B is deleted using the Remove method defined in NotesItem. Dim docA As NotesDocument Dim docB As NotesDocument Dim rtitemA As Variant Dim rtitemB As Variant '...set values of docA and docB... Set rtitemA = docA.GetFirstItem( "Body" ) Set rtitemB = docB.GetFirstItem( "Body" ) If ( rtitemA.Type = RICHTEXT And _ rtitemB.Type = RICHTEXT ) Then Call rtitemA.AppendRTItem( rtitemB ) Call rtitemB.Remove Call docA.Save( False, True ) Call docB.Save( False, True ) End If 2. This script shows you how to append one RTItem to another without a prompt to save the document. This example illustrates the use of a back-end class in the UI. Sub Click(Source As Button) Dim w As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim docA As NotesDocument Dim rtitemA As Variant Dim rtitemB As Variant Set uidoc = w.CurrentDocument Set docA = uidoc.Document Call uidoc.Save Set rtitemA = docA.GetFirstItem( "Body" ) Set rtitemB = docA.GetFirstItem( "Body1" ) If ( rtitemA.Type = RICHTEXT And _ rtitemB.Type = RICHTEXT ) Then Call rtitemA.AddNewLine(1) Call rtitemA.AppendRTItem( rtitemB ) docA.body1 = " " docA.SaveOptions = "0" Call docA.Save(False, True) Call uidoc.Close End IF End Sub |
Tomáš Hanus | RE: opirovani dat z Rich Text Lite pole do jineho Rich Text Lite pole |
15.03.2010 10:46:57
ID: 1102.3
| Jaký konkrétní problém je s tím kopírováním? Pokud je potřeba provádět něco s designem jako takovým, například vkládání obrázku jako zdroje, lze to celkem jednoduše zařídit pomocí XML(DXL). Vytvoří se například template:
TemplateXML = {<?xml version='1.0' encoding='utf-8'?><imageresource name=[name] version='6.5' maintenanceversion='4.2' xmlns='http://www.lotus.com/dxl' [options]><[type]>[%%filedata%%]</[type]>< item name='$FileSize' sign='true'><numberlist><number>[filesize]< ;/number></numberlist></item><item name='$MimeType' sign='true'><textlist><text>image/[type]</ text></textlist></item></imageresource>}
a do něj se nasází potřebné hodnoty jako je jméno, base64 obrázku atd. Pak to již stačí jen prohnat pomocí DXLImportu. |
Jan Mikulasovic | Re: Kopirovani dat z Rich Text Lite pole do jineho Rich Text Lite pole |
IT
16.03.2010 09:19:34
ID: 1102.4
| Netreba dokument po vlozeni attachmentu do rich text pola v backende ulozit, zavriet a znovu otvorit aby sa prejavili zmeny?
Inak mozno pomoze tato cast kodu.
Mam to vyriesene v jednej DB tak ze cez dialog box ziadam uzivatelsky input do rich text pola. Rich text pole s !!!!rovnakym nazvom!!!! mam aj v povodnom formulary a potom len skopirujem z dialog formularu vsetky items a funguje to bezproblemov.
Set doc = uidoc.document
Set db = s.CurrentDatabase
Dim dialogDoc As New NotesDocument(db)
dialogDoc.Form = "Transfer"
dialogDoc.ParentDocID = doc.UniversalID
'open Transfer form in dialog box for user input
answer = workspace.DialogBox ( "Transfer", True, True, False, False, False, False, "Dialog", dialogDoc,,,True )
If (answer = 0) Then
Exit Sub
End If
Call dialogDoc.CopyAllItems( doc, True )
Doc.Form = "Rotation"
Call doc.Save(True,False) |