LOTUS SCRIPT: „Domino objekty“ / 2. časť

lotus.jpg V 1. čas­ti se­riá­lu sme sa zo­rien­to­va­li v prob­le­ma­ti­ke Lo­tusScrip­tu (LS), vy­skú­ša­li si po­uží­va­nie Do­mi­no De­sig­ne­ra a LS De­bug­ge­ra pri tvor­be a od­ľa­ďo­va­ní LS sek­ven­cií. Dnes sa po­zrie­me na zá­klad­né sta­veb­né pr­vky LS i je­ho vy­uži­tie pri sprís­tup­ne­ní No­tes da­ta­bá­zo­vých pr­vkov.

PRE­MENNÉ
Za­čni­me zá­klad­ným sta­veb­ným pr­vkom kó­dov – pre­men­nou. Ide to pa­mä­ťo­vú hod­no­tu, kto­rú je mož­né me­niť po­čas be­hu kó­du me­niť. Pre­men­ná je ur­če­ná:
• Náz­vom (ne­zá­le­ží na veľ­kos­ti zna­kov, v náz­ve však nes­mie byť med­ze­ra)
• Dá­to­vým ty­pom (napr. String - re­ťa­zec zna­kov, In­te­ger – ce­lé čís­la, Doub­le – de­sa­tin­né čís­la,...)

Sa­mot­ná dek­la­rá­cia (te­da pri­ra­de­nie dá­to­vé­ho ty­pu pre­men­nej) mô­že byť:
• Expli­cit­ná - prí­ka­zom DIM ná­zov AS dá­to­vý typ
• Im­pli­cit­ná – uve­de­ním de­fi­no­va­nej prí­po­ny v náz­ve pre­men­nej (napr. LNa­me$ pri­ra­dí pre­men­nej Lna­me dá­to­vý typ String)

TI­PY:
• Expli­cit­ná dek­la­rá­cia pre­men­nej nie je po­vin­ná (len v prí­pa­de po­uži­tia di­rek­tí­vy Op­tion Dec­la­re v da­nom kó­de) a mô­že sa vy­sky­to­vať na ľu­bo­voľ­nom mies­te scrip­tu (pred po­uži­tím pre­men­nej).
• Hod­no­ta sa do pre­men­nej pri­ra­ďu­je zna­kom = (rov­ná sa).
• Texto­vý re­ťa­zec je uzat­vo­re­ný v úvod­zov­kách "... " (ale­bo |...|, resp. {...}).

PRAX: PRE­MENNÉ
Vy­uži­tie dek­la­rá­cie pre­men­ných si vy­skú­ša­me na nas­le­du­jú­com kó­de (vy­tvor­te agen­ta č.2 ana­lo­gic­ky k č.1 a vlož­te kód):

Dim Vek As In­te­ger
Vek=22
Me­no$="Pe­ter"
Mes­sa­ge­box Me­no$+" má "+Cstr(Vek)+| ro­kov|

lotus Obr1.jpg
Obr. 1

Vy­svet­le­nie kó­du:
1. ria­dok: Expli­cit­ná dek­la­rá­cia pre­men­nej Vek
2. ria­dok: Pri­ra­de­nie hod­no­ty do pre­men­nej Vek
3. ria­dok: Im­pli­cit­ná dek­la­rá­cia pre­men­nej Me­no s pri­ra­de­ním hod­no­ty
4. ria­dok: Zob­ra­ze­nie texto­vé­ho re­ťaz­ca, kto­rý vzni­kol zlo­že­ním z viac čas­tí, pri­čom fun­kcia Cstr kon­ver­tu­je čí­sel­nú hod­no­tu do re­ťaz­ca

K prob­le­ma­ti­ke pre­men­ných lo­gic­ky pa­tria aj po­lia (Array), zoz­na­my (List) či trie­dy (Class). Vzhľa­dom k li­mi­to­va­né­mu roz­sa­hu se­riá­lu sa tým­to pr­vkom ve­no­vať ne­bu­de­me, roz­hod­ne sú však po­treb­né pri „váž­nej­šom“ vy­uži­tí LS.

VET­VE­NIE KÓDU

LS po­sky­tu­je pre vet­ve­nie kó­du nas­le­dov­né zá­klad­né mož­nos­ti:

Spô­sob Vy­svet­le­nie
IF...THEN...EL­SE Kla­sic­ké vet­ve­nie kó­du do 2 ve­tiev (spl­ne­ná resp. nespl­ne­ná po­dmien­ka)
IF...THEN...EL­SEIF...THEN.... Viac­ná­sob­né vno­re­nie vet­ve­nia kó­du
IF...GO­TO...EL­SE Od­skok kó­du na de­fi­no­va­né ná­ves­tie v prí­pa­de spl­ne­nia po­dmien­ky
SE­LECT CA­SE... Vet­ve­nie kó­du do via­ce­rých ve­tiev
Bliž­šie syn­tak­tic­ké de­tai­ly náj­de­te v prí­ruč­ke k Do­mi­no De­sig­ne­ru (DD).

CYK­LY V KÓDE

Opa­ko­va­né vy­ko­ná­va­nie kó­du je mož­né v LS zreali­zo­vať nas­le­dov­ný­mi spô­sob­mi:

Spô­sob Vy­svet­le­nie
FOR...TO...STEP
NEXT
Kla­sic­ké opa­ko­va­nie cyk­lu od – do. Cyk­lus je mož­né opus­tiť prí­ka­zom EXIT FOR (po­kra­ču­je za prí­ka­zom NEXT) ale­bo GO­TO (po­kra­ču­je sa na de­fi­no­va­nom ná­ves­tí).
FO­RALL...IN...
END FO­RALL
Spra­co­va­nie jed­not­li­vých pr­vkov po­ľa. Ten­to cyk­lus sa čas­to vy­uží­va pri spra­co­va­ní jed­not­li­vým hod­nôt v tzv. „mul­ti-va­lue“ po­liach No­tes do­ku­men­tu.
WHI­LE po­dmien­ka
WEND
Cyk­lus sa opa­ku­je kým je spl­ne­ná po­dmien­ka, de­fi­no­va­ná pri vstu­pe.
DO
LOOP
Ne­ko­neč­né opa­ko­va­nie, kto­ré sa opúš­ťa prí­ka­zom EXIT DO. Ten­to cyk­lus má aj mo­di­fi­ká­cie s po­dmien­kou na za­čiat­ku či kon­ci.

Cyk­ly i vet­ve­nie vy­uži­je­me v ďal­ších LS kó­doch, syn­tak­tic­ké de­tai­ly sú uve­de­né v DD prí­ruč­ke.

DO­MI­NO OB­JEK­TY
Hlav­ný zmy­sel vy­uži­tia LS v pros­tre­dí Do­mi­no/No­tes sys­té­mu je v prís­tu­pe k tzv. „Do­mi­no ob­jek­tom“. Tie­to ob­jek­ty po­pi­su­jú vlas­tnos­ti a me­tó­dy roz­lič­ných čas­tí pros­tre­dia (da­ta­bá­za, ACL, po­hľad, ot­vo­re­ný do­ku­ment,...) a de­lia sa do 2 zá­klad­ných ka­te­gó­rií:
• FRONT-END (zá­kla­dom je No­te­sUIWor­kspa­ce)
• BACK-END (zá­kla­dom je No­tes­Ses­sion)
TIP: Ce­lý di­ag­ram (te­da zoz­nam ob­jek­tov aj so vzá­jom­ný­mi vzťah­mi) je dos­tup­ný v úvod­nej strán­ke DD (ho­me pa­ge). Z toh­to mies­ta je zá­ro­veň mož­né pres­kú­mať ich všet­ky dos­tup­né vlas­tnos­ti a me­tó­dy.

Vy­tvo­re­nie no­vej in­štan­cie trie­dy sa reali­zu­je dvo­mi spô­sob­mi:
• Pria­mo pri dek­la­rá­cii: DIM pre­men­na AS NEW trie­da
• Po dek­la­rá­cii: SET pre­men­na = NEW trie­da
Sprís­tup­ne­nie vlas­tnos­tí čí me­tód tried sa reali­zu­je cez „bod­ku“: pre­men­na.Vlas­nost/

PRAX: NO­TES­SES­SION
Trie­da No­tes­Ses­sion je zá­kla­dom „back-end“ tried a umož­ňu­je prís­tup k ak­tuál­ne bež­iace­mu kon­textu scrip­tu. Jej vy­uži­tie si ove­rí­me na nas­le­du­jú­com kó­de (vy­tvor­te agen­ta č.3):

Dim ses­sion As New No­tes­Ses­sion
Mes­sa­ge­box "Ahoj, "+ses­sion.Com­mo­nU­serNam­e+" "+Chr(13)+Chr(13)_
 +"Dnes je: "+ Cstr(To­day)+" a ty pra­cu­ješ s  Lo­tus No­tes ver­zia "+ses­sion.No­tes­Ver­sion

lotus Obr2.jpg
Obr. 2

1. ria­dok: Expli­cit­ná dek­la­rá­cia in­štan­cie trie­dy No­tes­Ses­sion
2. ria­dok: Zob­ra­ze­nie in­for­má­cií z ak­tuál­ne­ho kon­textu, te­da:
• Me­no ak­tuál­ne prih­lá­se­né­ho po­uží­va­te­ľa (Com­mo­nU­serNam­e)
• Dneš­ný dá­tum z fun­kcie To­day kon­ver­ziou na texto­vý re­ťa­zec (Cstr(To­day))
• Ver­ziu klien­ta Lo­tus No­tes (No­tes­Ver­sion)

PRAX: NO­TES­DA­TA­BA­SE
Trie­da No­tes­Da­ta­ba­se pred­sta­vu­je „back-end“ No­tes da­ta­bá­zu a dá sa od­vo­diť pria­mo z ak­tuál­ne­ho kon­textu - No­tes­Ses­sion. Niž­šie uve­de­ný kód po­uži­te na vy­tvo­re­nie agen­ta č.4:

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
Mes­sa­ge­box |Ná­zov da­ta­bá­zy: "| & db.Tit­le & |".|
Mes­sa­ge­box |Ces­ta k da­ta­bá­ze: "| & db.Fi­le­Path & |".|
Mes­sa­ge­box |Veľ­kosť da­ta­bá­zy: | & For­mat(db.Si­ze,"#,#") & | [B].|
1. ria­dok: Expli­cit­ná dek­la­rá­cia in­štan­cie trie­dy No­tes­Ses­sion
2. ria­dok: Dek­la­rá­cia trie­dy No­tes­Da­ta­ba­se
3. ria­dok: Vy­tvo­re­nie in­štan­cie pre ak­tuál­nu dat­bá­zu (Curren­tDa­ta­ba­se)
4. ria­dok: Zob­ra­ze­nie náz­vu da­ta­bá­zy (Tit­le)
5. ria­dok: Zob­ra­ze­nie pl­nej ces­ty k da­ta­bá­ze (Fi­le­Path)
6. ria­dok: Zob­ra­ze­nie sfor­má­to­va­nej veľ­kos­ti da­ta­bá­zy (Si­ze)
Všim­ni­te si, že čas­ti texto­vé­ho re­ťaz­ca je mož­né spá­jať aj po­mo­cou zna­ku &.

ZIS­TE­NIE AD­RESNÝCH KNÍH
LS v spo­je­ní s No­tes­Ses­sion mô­že po­môcť od­po­ve­dať aj na otáz­ku: „Aké ad­res­né kni­hy ak­tuál­ne vy­uží­va môj No­tes klient?“ (Up­res­ne­nie tej­to in­for­má­cie je čas­to rie­še­ním mno­hých prob­lé­mov, sú­vi­siach s ro­zoz­ná­va­ním ad­ries pri e-mail sprá­vach). Niž­šie uve­de­ný script ulož­te do agen­ta č. 5:

Dim ses­sion As New No­tes­Ses­sion
Dim ABooks As Va­riant
ABooks = ses­sion.Ad­dres­sBooks
Fo­rall db In Abooks
	Call db.Open( "", "" )
	If db.Server="" Then
		Mes­sa­ge­box "Lo­kál­na: " + db.Tit­le
	El­se
		Mes­sa­ge­box "Server db: " + db.Tit­le
	End If
End Fo­rall
Kód ten­tok­rát ten­tok­rát ne­bu­de vy­svet­le­ný, pre­to­že to už bu­de va­šou sú­ťaž­nou úlo­hou.

SU­MA­RIZÁCIA
V 2. čas­ti sme preb­ra­li zá­klad­né konštruk­čné pr­vky pre LS a zá­ro­veň prís­tup k zá­klad­ným Do­mi­no ob­jek­tom. Na­bu­dú­ce pô­jde­me hlb­šie do ma­ni­pu­lá­cie s DMS ap­li­ká­ciou.

Ďal­šie čas­ti >>

Zdroj: Infoware 5/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