IBM Lotus Symphony
|
![]() |
Metoda za razširjanje programa Lotus® Symphony™ Spreadsheets z dodatki, ki je opisna v naslednjih odsekih, ni več veljavna. Vmesniki so še vedno veljavni in podprti za zagotavljanje združljivosti z obstoječimi dodatki, vendar morate za programiranje novih dodatkov uporabiti nove funkcije API-ja. |
Lotus Symphony Spreadsheets je mogoče razširiti z dodatki, ki so zunanji moduli za programiranje, ki nudijo dodatne funkcije za delo s preglednicami. Te so navedene v Čarovniku za funkcije v kategoriji Dodatek. Če želite sami programirati dodatek, lahko tukaj najdete informacije o tem, katere funkcije morate izvoziti z zunanjim DLL-jem, da lahko dodatek uspešno priključite.
Lotus Symphony poišče mapo dodatka, je definirana v konfiguraciji za ustrezen DLL. Da ga lahko Lotus Symphony prepozna, mora DLL imeti določene lastnosti, kot je razloženo v nadaljevanju. Te informacije vam omogočajo, da sprogramirate svoj Dodatek za Čarovnika za funkcije programske opreme Lotus Symphony Spreadsheets.
Vsaka knjižnica dodatkov nudi več funkcij. Nekatere funkcije se uporabljajo v skrbniške namene. Za svoje funkcije lahko izberete skoraj katerokoli ime. Vendar pa morajo upoštevati določena pravila glede posredovanja parametrov. Natančna pravila za poimenovanje in klicanje so odvisna od platforme.
Obstajati morata vsaj funkciji GetFunctionCount in GetFunctionData. S temi funkcijami lahko določite funkcije in vrste parametrov ter vrnjene vrednosti. Kot vrnjeni vrednosti sta podprti vrsti Double (število z dvojno dolžino) in String (niz). Kot parametri so podprta področja celic Double Array, String Array in Cell Array.
Parametri se posredujejo s sklici. Zato je sprememba teh vrednosti v osnovi možna. Vendar pa to ni podprto v programu Lotus Symphony Spreadsheets, ker to ni smiselno v preglednicah.
Knjižnice lahko znova naložite med izvajanjem, vsebino pa lahko analizirate s skrbniškimi funkcijami. Za vsako funkcijo so na voljo informacije o števcu in vrsti parametrov, imenih notranjih in zunanjih funkcij ter skrbniški številki.
Funkcije se kličejo sinhrono, njihovi rezultati pa so vrnjeni nemudoma. Možne so tudi funkcije v realnem času (asinhrone funkcije), vendar le-te niso razložene podrobno zaradi njihove kompleksnosti.
Največje število parametrov v funkciji dodatkov programa Lotus Symphony Spreadsheets je 16: ena vrnjena vrednost in največ 15 vhodnih parametrov funkcije.
Vrste podatkov so definirane na naslednjih način:
Vrsta podatkov | Definicija |
---|---|
CALLTYPE | V sistemu Windows: FAR PASCAL (_far _pascal) Drugo: privzeto (privzete nastavitve, specifične za operacijski sistem) |
USHORT | 2-bajtno celo število brez predznaka |
DOUBLE | 8-bajtna oblika, odvisna od platforme |
Paramtype | od platforme odvisno, kot je int PTR_DOUBLE =0 kazalnik na double (decimalno število z dvojno dolžino) PTR_STRING =1 kazalnik na niz, ki se konča z ničlo PTR_DOUBLE_ARR =2 kazalnik na double array (matrika realih števil z dvojno natančnostjo) PTR_STRING_ARR =3 kazalnik na nizovno matriko PTR_CELL_ARR =4 kazalnik na cell array (celična matrika) NONE =5 |
V nadaljevanju boste našli opis funkcij, ki so klicane v zunanjem DLL-ju.
Za vse funkcije DLL velja naslednje:
void CALLTYPE fn(out, in1, in2, ...)
Izhodni podatki: Nastala vrednost
Vhodni podatki: Katerokoli število vrst (double&, char*, double*, char**, Cell area), pri čemer je Cell area matrika vrste matrike realih števil z dvojno natančnostjo, nizovna matrika ali celična matrika.
Vrne število funkcije brez upravljalnih funkcij parametra sklica. Vsaka funkcija ima unikatno število med 0 in nCount-1. To število je potrebno za funkciji GetFunctionData in GetParameterDescription.
Skladnja
void CALLTYPE GetFunctionCount(USHORT& nCount)
Parameter
USHORT &nCount:
Izhodni podatki: Sklic na spremenljivko, ki naj bi vsebovala število funkcij dodatka. Na primer: Če dodate nudi 5 funkcij za Lotus Symphony Spreadsheets, potem velja nCount=5.
Določa vse pomembne informacije o funkciji dodatka.
Skladnja
void CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName)
Parameter
USHORT& nNo:
Vhodni podatki: Število funkcije med 0 in vključno nCount-1.
char* pFuncName:
Izhodni podatki: Ime funkcije, kot jo vidi programer in kot je poimenovana v DLL-ju. To ime ne določa imena, uporabljenega v čarovniku za funkcije.
USHORT& nParamCount:
Izhodni podatki: Število parametrov v funkciji dodatka. To število mora biti večje od 0, ker vedno obstaja nastala vrednost. Največja vrednost je 16.
Paramtype* peType:
Izhodni podatki: Kazalec na matriko z natanko 16 spremenljivkami vrste Paramtype. Prvi vnosi nParamCount so zapolnjeni z ustrezno vrsto parametra.
char* pInternalName:
Izhodni podatki: Ime funkcije, kot jo vidi uporabnik in kot se pojavi v čarovniku za funkcije. Lahko vsebuje preglase.
Parametra pFuncName in pInternalName sta matriki znakov, ki sta implementirani z velikostjo 256 v programu Lotus Symphony Spreadsheets.
Nudi kratek opis funkcije dodatka in njegovih parametrov. Kot možnost lahko s to funkcijo pokažete opis funkcije in parametra v Čarovniku za funkcije.
Skladnja
void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc)
Parameter
USHORT& nNo:
Vhodni podatki: Številka funkcije v knjižnici; med 0 in nCount-1.
USHORT& nParam:
Vhodni podatki: Nakazuje, za kateri parameter je na voljo opis. Parametri se začnejo z 1. Če je nParam enak 0, bi moral biti opis podan v pDesc. V tem primeru pName nima nobenega pomena.
char* pName:
Izhodni podatki: Vzame ime ali vrsto parametra, na primer besedo "Število" ali "Niz" ali "Datum" in tako dalje. Implementirano v programski opremi Lotus Symphony Spreadsheets kot znak char[256].
char* pDesc:
Izhodni podatki: Vzame opis parametra, na primer "Vrednost, pri kateri naj se izračuna univerzalna množica." Implementirano v programski opremi Lotus Symphony Spreadsheets kot znak char[256].
pName in pDesc sta matriki char (znakov), implementirani v Lotus Symphony Spreadsheets z velikostjo 256. Prosimo, pomnite, da je prostor, ki je na voljo v Čarovniku za funkcije, omejen in da ni mogoče uporabiti vseh 256 znakov.
Naslednje tabele vsebujejo informacije o tem, katere podatkovne strukture mora nuditi zunanji programski modul, da lahko posreduje področja celic. Lotus Symphony Spreadsheets razlikuje med tremi različnimi matrikami glede na vrsto podatkov.
Kot parameter je mogoče posredovati področje celic z vrednostmi vrste Število/Realno število z dvojno natančnostjo. Matrika realnih števil z dvojno natančnostjo je v programski opremi Lotus Symphony Spreadsheets definirana, kot sledi:
Odmik | Ime | Opis |
---|---|---|
0 | Col1 | Številka stolpca v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
2 | Row1 | Številka vrstice v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
4 | Tab1 | Številka tabele v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
6 | Col2 | Številka stolpca v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
8 | Row2 | Številka vrstice v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
10 | Tab2 | Številka tabele v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
12 | Številka | Številka naslednjih elementov. Prazne celice niso preštete ali posredovane. |
14 | Col | Številka stolpca elementa. Oštevilčevanje se začne z 0. |
16 | Vrstica | Številka vrstice elementa. Oštevilčevanje se začne z 0. |
18 | Tabulator | Številka tabele elementa. Oštevilčevanje se začne z 0. |
20 | Napaka | Številka napake, kjer je vrednost 0 definirana kot "brez napake". Če element prihaja iz celice s formulo, vrednost napake določi formula. |
22 | Vrednost | 8-bajtna spremenljivka IEEE vrste realnega števila z dvojno natančnostjo/plavajočo vejico |
30 | ... | Naslednji element |
Področje celic, ki vsebuje vrednosti vrste podatkov Besedilo in je posredovano kot nizovna matrika. Nizovno matrika je v programski opremi Lotus Symphony Lotus Symphony Spreadsheets definirana kot sledi:
Odmik | Ime | Opis |
---|---|---|
0 | Col1 | Številka stolpca v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
2 | Row1 | Številka vrstice v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
4 | Tab1 | Številka tabele v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
6 | Col2 | Številka stolpca v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
8 | Row2 | Številka vrstice v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
10 | Tab2 | Številka tabele v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
12 | Številka | Številka naslednjih elementov. Prazne celice niso preštete ali posredovane. |
14 | Col | Številka stolpca elementa. Oštevilčevanje se začne z 0. |
16 | Vrstica | Številka vrstice elementa. Oštevilčevanje se začne z 0. |
18 | Tabulator | Številka tabele elementa. Oštevilčevanje se začne z 0. |
20 | Napaka | Številka napake, kjer je vrednost 0 definirana kot "brez napake". Če element prihaja iz celice s formulo, vrednost napake določi formula. |
22 | Len | Dolžina naslednjega niza, vključno z zaključnim ničelnim bajtom. Če je dolžina, vključno z zaključnim ničelnim bajtom, enaka lihi vrednosti, je nizu dodan še en ničeln bajt, da je dosežena soda vrednost. Zato je Len izračunan po formuli ((StrLen+2)&~1). |
24 | Niz | Niz z zaključnim ničelnim bajtom |
24+Len | ... | Naslednji element |
Celične matrike se uporabljajo za priklic področij celic, ki vsebujejo tako besedilo kot tudi številke. Celična matrika je v programski opremi Lotus Symphony Spreadsheets definirana kot sledi:
Odmik | Ime | Opis |
---|---|---|
0 | Col1 | Številka stolpca v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
2 | Row1 | Številka vrstice v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
4 | Tab1 | Številka tabele v zgornjem levem vogalu področja celic. Oštevilčevanje se začne z 0. |
6 | Col2 | Številka stolpca v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
8 | Row2 | Številka vrstice v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
10 | Tab2 | Številka tabele v spodnjem desnem vogalu področja celic. Oštevilčevanje se začne z 0. |
12 | Številka | Številka naslednjih elementov. Prazne celice niso preštete ali posredovane. |
14 | Col | Številka stolpca elementa. Oštevilčevanje se začne z 0. |
16 | Vrstica | Številka vrstice elementa. Oštevilčevanje se začne z 0. |
18 | Tabulator | Številka tabele elementa. Oštevilčevanje se začne z 0. |
20 | Napaka | Številka napake, kjer je vrednost 0 definirana kot "brez napake". Če element prihaja iz celice s formulo, vrednost napake določi formula. |
22 | Vrsta | Vrsta vsebine celice, 0 == Realno število z dvojno natančnostjo, 1 == Niz |
24 | Value ali Len | Če je vrsta == 0: 8-bajtna spremenljivka IEEE vrste realnega številna z dvojno natančnostjo/plavajočo vejico Če je vrsta == 1: Dolžina naslednjega niza, vključno z zaključnim ničelnim bajtom. Če je dolžina, vključno z zaključnim ničelnim bajtom, enaka lihi vrednosti, je nizu dodan še en ničeln bajt, da je dosežena soda vrednost. Zato je Len izračunan po formuli ((StrLen+2)&~1). |
26, če je vrsta==1 | Niz | Če je vrsta == 1: Niz z zaključnim ničelnim bajtom |
32 ali 26+Len | ... | Naslednji element |