LOTUS SCRIPT: Práca s poľami a domino XML / 4. časť

lotus.jpg V po­sled­nej čas­ti se­riá­lu sa po­zrie­me na spra­co­va­nie jed­not­li­vých po­lí do­ku­men­tov tec­hno­ló­giou Do­mi­no XML.

PRAX: NO­TE­SI­TEM
Trie­da No­te­sI­tem rep­re­zen­tu­je po­le do­ku­men­tu a od­vád­za sa z „back-end“ trie­dy No­tes­Do­cu­ment me­tó­dou Get­Fir­stI­tem. Nas­le­du­jú­ci kód za­pí­še (po klik­nu­tí na tla­čid­lo) no­vý ria­dok do po­ľa His­to­ry:

1. V DD ot­vor­te for­mu­lár for­mDo­cu­ment a vy­tvor­te tla­čid­lo Zá­pis do his­tó­rie (Crea­te – Hot­spot – But­ton...).
2. Ako typ kó­du zvoľ­te LS a do pro­ce­dú­ry Sub Click(Sour­ce As But­ton) vlož­te:
Dim uiwork As New No­te­sUIWor­kspa­ce
Dim uidoc As No­te­sUI­Do­cu­ment
Set uidoc=uiwork.Curren­tDo­cu­ment
Dim doc As No­tes­Do­cu­ment
Set doc=uidoc.Do­cu­ment
Dim item­His­to­ry As No­te­sI­tem
Set item­His­to­ry=doc.Get­Fir­stI­tem("His­to­ry")
Call item­His­to­ry.Ap­pen­dTo­TextList(Cstr(Now)+": Stla­čil som tla­čid­lo")
3. Ulož­te for­mu­lár a over­te fun­kčnosť tla­čid­la tak, že vy­tvo­rí­te no­vý do­ku­ment a po­uži­je­te tla­čid­lo.

Po­dsta­ta kó­du spo­čí­va v pri­ra­de­ní po­ľa His­to­ry do pre­men­nej item­His­to­ry a nás­led­nom po­uži­tí me­tó­dy Ap­pen­dTo­TextList. Po­dob­ným spô­so­bom mô­že­te do his­tó­rie za­chy­tiť aj iné uda­los­ti – nap­rík­lad zme­nu ob­sa­hu po­ľa, ulo­že­nie do­ku­men­tu, od­os­la­nie e-mai­lo­vé­ho upo­zor­ne­nia a pod.

PRAX: NO­TES­RIC­HTEXTI­TEM
Tá­to trie­da pred­sta­vu­je po­le ty­pu Rich Text (RT), kto­ré umož­ňu­je evi­do­vať „obo­ha­te­né“ in­for­má­cie, ako sú príl­ohy sú­bo­rov, for­má­to­va­né tex­ty, ob­ráz­ky pod. For­má­to­va­nie textu v RT umož­ňu­je trie­da No­tes­Ric­hTextSty­le.

Prá­cu s tým­to ty­pom po­ľa vy­uži­je­me pri príp­ra­ve uži­toč­nej fun­kcie, kto­rá:
• vy­tvo­rí po­što­vú sprá­vu,
• napl­ní ob­sah na­for­má­to­va­ný­mi od­kaz­mi na ozna­če­né do­ku­men­ty.
1. V po­hľa­de Po­dľa dá­tu­mu vy­tvor­te tla­čid­lo Od­os­lať upo­zor­ne­nie.
2. Ako kód vlož­te:

Dim ses­sion As New No­tes­Ses­sion
Dim mailDb As No­tes­Da­ta­ba­se, db As No­tes­Da­ta­ba­se
Set db = ses­sion.Curren­tDa­ta­ba­se
Set mailDb = New No­tes­Da­ta­ba­se( "", "" )
Call mailDb.Open­Mail
Dim coll As No­tes­Do­cu­men­tCollec­tion
Set coll = db.Un­pro­ces­sed­Do­cu­ments

Dim me­mo As No­tes­Do­cu­ment, rtI­tem As No­tes­Ric­hTextI­tem
Set me­mo = New No­tes­Do­cu­ment(mailDb)
me­mo.Sub­ject = "Upo­zor­ne­nie z ap­li­ká­cie "+ db.Tit­le
Set rti­tem = New No­tes­Ric­hTextI­tem(me­mo, "Bo­dy")
	
Dim ric­hSty­le As No­tes­Ric­hTextSty­le
Set ric­hSty­le = ses­sion.Crea­te­Ric­hTextSty­le
With ric­hSty­le      
	.Fon­tSi­ze = 12
	.Bold=True
End With
Call rtI­tem.Ap­pen­dSty­le(ric­hSty­le)     
rtI­tem.Ap­pen­dText("UPO­ZOR­NE­NIE")
rti­tem.Ad­dNewLi­ne(2)
	
With ric­hSty­le      
	.Fon­tSi­ze = 9
	.Bold=Fal­se
End With
Call rtI­tem.Ap­pen­dSty­le(ric­hSty­le)     
rti­tem.Ap­pen­dText("Chcel(a) by som Vás upo­zor­niť na tie­to do­ku­men­ty:")
rti­tem.Ad­dNewLi­ne(2)
For i = 1 To coll.Count
	Set doc = coll.GetNthDo­cu­ment(i)                   
	rti­tem.Ap­pen­dDoc­Link doc, "Pre­po­je­nie"
	rti­tem.Ad­dTab(1)
	rti­tem.Ap­pen­dText Cstr(doc.Doc­Crea­ted(0))
	rti­tem.Ad­dTab(1)
	rti­tem.Ap­pen­dText doc.Sub­ject(0)
	rti­tem.Ad­dNewLi­ne(1)
Next
	
rti­tem.Ad­dNewLi­ne(2)
rti­tem.Ap­pen­dText("Maj­te sa....")
Call me­mo.Sa­ve( True, True )
	
Dim uiwork As New No­te­sUIWor­kspa­ce
Dim uidoc As No­te­sUI­Do­cu­ment
Set uidoc = uiwork.Edit­Do­cu­ment( True, me­mo)
Call uidoc.Go­to­Field( "Bo­dy" )

3. Ulož­te po­hľad. Over­te fun­kčnosť tla­čid­la tak, že ozna­čí­te nie­koľ­ko do­ku­men­tov a klik­nu­tím ho aki­vu­je­te. Vý­sle­dok je ana­lo­gic­ký ako na obr. 1.

lotus_script OBR.jpg
Obr. 1

Kód vy­uží­va mno­hé tec­hni­ky, kto­ré sme sa už nau­či­li, ale zá­ro­veň aj nie­koľ­ko no­vi­niek:
• Ot­vo­re­nie po­što­vej da­ta­bá­zy me­tó­dou mailDb.Open­Mail
• Vy­tvo­re­nie po­ľa Bo­dy ty­pu RT
• De­fi­ní­cia štý­lu ric­hSty­le pre text v RT
• Pri­ra­de­nie vlas­tnos­tí štý­lu prí­ka­zom With
• Vlo­že­nie pre­po­je­nia doc­link na do­ku­men­ty me­tó­dou Ap­pen­dDoc­Link

DO­MI­NO XML: DXL
Ako po­sled­ný prak­tic­ký po­stup si vy­skú­ša­me expor­to­va­nie úda­jov do XML z DMS. Da­ta­bá­za Lo­tus No­tes mô­že byť to­tiž sprís­tup­ne­ná aj ako XML. Do­mi­no XML (zná­me aj ako DXL) te­da inter­pre­tu­je vo for­me XML ta­gov nie­len úda­je (do­ku­men­ty), ale i návr­ho­vé pr­vky (for­mu­lá­re, po­hľa­dy...). DXL tak ot­vá­ra pries­tor na efek­tív­nu vý­me­nu in­for­má­cií med­zi Do­mi­no/No­tes a exter­ným pros­tre­dím.

Vy­uži­tím tried No­tesDXLExpor­ter a No­tesStream si prip­ra­ví­me ak­ciu, kto­rá za­pí­še ob­sah ozna­če­ných do­ku­men­tov do sú­bo­ru C:\vy­stup.dxl:

1. V po­hľa­de Po­dľa dá­tu­mu vy­tvor­te tla­čid­lo DXL export.
2. Ako kód vlož­te:
Dim ses­sion As New No­tes­Ses­sion
Dim db As No­tes­Da­ta­ba­se
Set db = ses­sion.Curren­tDa­ta­ba­se
Dim coll As No­tes­Do­cu­men­tCollec­tion
Set coll=db.Un­pro­ces­sed­Do­cu­ments
Dim stream As No­tesStream
Set stream = ses­sion.Crea­teS­tream
Const sFi­le­na­me = "c:\vy­stup.dxl"
If Not stream.Open(sFi­le­na­me) Then
	Mes­sa­ge­box "Nie je mož­né ot­vo­riť sú­bor:"+ sFi­le­na­me, 48, "Chy­ba"
	Exit Sub
End If
Call stream.Trun­ca­te
Dim expor­ter As No­tesDXLExpor­ter
Set expor­ter = ses­sion.Crea­teDXLExpor­ter
Call expor­ter.Se­tIn­put(coll)
Call expor­ter.Se­tOut­put(stream)
Call expor­ter.Pro­cess
3. Ulož­te po­hľad a over­te fun­kčnosť tla­čid­la. Po ukon­če­ní spra­co­va­nia si ot­vor­te sú­bor C:\vy­stup.dxl a pres­kú­maj­te je­ho štruk­tú­ru.

Al­go­rit­mus kó­du je za­lo­že­ný na nas­le­du­jú­cich kro­koch:
• Vy­tvo­re­nie ko­lek­cie coll z ozna­če­ných do­ku­men­tov v po­hľa­de
• Ini­cia­li­zá­cia „to­ku in­for­má­cií“ stream ty­pu No­tesStream
• Pri­ra­de­nie sú­bo­ru, do kto­ré­ho bu­de sme­ro­va­ný stream
• Ini­cia­li­zá­cia pre­men­nej expor­ter ty­pu No­te­sExpor­ter
• Pri­ra­de­nie vstu­pu expor­te­ru – ozna­če­né do­ku­men­ty
• Pri­ra­de­nie vý­stu­pu expor­te­ru – stream (te­da sú­bor)
• Ak­ti­vo­va­nie pre­no­su me­tó­dou expor­ter.Pro­cess

Ana­lo­gic­kým spô­so­bom pre­bie­ha aj im­port sú­bo­rov XML do da­ta­bá­zy No­tes, tak­že sa auto­ma­tic­ky po­nú­ka mož­nosť mo­di­fi­ká­cie do­ku­men­tov po­mo­cou texto­vé­ho edi­to­ra.

XPA­GES A DO­MI­NO DE­SIG­NER 8.5
Na­ko­niec eš­te nie­koľ­ko slov o tec­hno­ló­gii XPa­ges, s kto­rou priš­la ver­zia Lo­tus No­tes 8.5 a kto­rá vy­uží­va Ja­va Server Fa­ces a zná­my Do­jo tool­kit. V zá­sa­de ide o mož­nosť tvor­by webo­vých strá­nok nad da­ta­bá­zou Lo­tus No­tes vo vi­zuál­nom vý­vo­jom pros­tre­dí Do­mi­no De­sig­ne­ra, pri­čom vy­tvo­re­né strán­ky sú rov­na­ké pri prís­tu­pe z webo­vé­ho preh­lia­da­ča i klien­ta Lo­tus No­tes (od 8.5.1). Ho­ci ide eš­te stá­le o no­vin­ku, prax už te­raz uka­zu­je jej vý­raz­né up­lat­ne­nie. Na prá­cu s XPa­ges bu­de­te po­tre­bo­vať no­vú ver­ziu Do­mi­no De­sig­ne­ra 8.5, za­lo­že­nú na Ec­lip­se fra­mewor­ku. Kaž­do­pád­ne po­uží­va­nie toh­to pros­tre­dia mož­no od­po­rú­čať mi­ni­mál­ne z nas­le­du­jú­cich dô­vo­dov:

• IBM ho po­sky­tu­je ZA­DAR­MO (pre lo­kál­ne ale­bo tes­to­va­cie da­ta­bá­zy).
• Ide o kom­plexné vý­vo­jo­vé pros­tre­die, kto­ré mož­no vy­užiť nie­len pri vý­vo­ji ap­li­ká­cií Lo­tus No­tes.

A to je už nao­zaj ko­niec se­riá­lu. Je­ho cie­ľom bo­lo po­môcť ob­jas­niť zá­kla­dy Lo­tusScrip­tu tak, aby sa či­ta­te­ľom zjed­no­du­šil ďal­ší roz­voj ich zna­los­tí. Tre­ba na to eš­te ve­ľa tr­pez­li­vos­ti, ale ur­či­te to sto­jí za to...

Ďal­šie čas­ti >>

Zdroj: Infoware 8-9/2010



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

LO­TUS SCRIPT: Prá­ca s po­ľa­mi a do­mi­no XML / 4. časť
V poslednej časti seriálu sa pozrieme na spracovanie jednotlivých polí dokumentov technológiou Domino XML. čítať »
 
LO­TUS SCRIPT: Ma­ni­pu­lá­cia s do­ku­men­tmi / 3. časť
V predchádzajúcej časti seriálu sme si objasnili základné konštrukčné prvky LS a zároveň prístup k základným objektom Domino. Teraz budeme pokračovať mimoriadne praktickou časťou – manipuláciou s dokumentmi databázy Notes pomocou back-end i front-end tried. čítať »
 
LO­TUS SCRIPT: „Do­mi­no ob­jek­ty“ / 2. časť
V 1. časti seriálu sme sa zorientovali v problematike LotusScriptu (LS), vyskúšali si používanie Domino Designera a LS Debuggera pri tvorbe a odľaďovaní LS sekvencií. čítať »
 
LO­TUS SCRIPT: Zá­kla­dy / 1. časť
IBM Lotus Domino/Notes. Softvér, ktorý je od roku 1996 strategickou súčasťou portfólia IBM a v súčasnosti de facto štandard pre „collaboration“ systémy. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter