IBM Lotus Symphony


Lotus Symphony Spreadsheets -ohjelman lisäosien ohjelmointi

Varoituskuvake Seuraavassa kuvattu lisäosien avulla toteutettava Lotus Symphony Spreadsheets -ohjelman laajennustapa on vanhentunut. Liittymät ovat edelleen tuettuja, jotta voidaan varmistaa aikaisempien lisäosien yhteensopivuus, mutta uusien lisäosien ohjelmoinnissa tulee käyttää uusia API-funktioita.

Lotus Symphony Spreadsheets -ohjelmaa voi laajentaa lisäosien avulla. Lisäosat ovat ulkoisia ohjelmointimoduuleja, jotka sisältävät lisäfunktioita laskentataulukoiden käsittelyyn. Lisäosien luettelo on ohjatun funktiotoiminnon Lisäosa-luokassa. Jos haluat ohjelmoida lisäosan itse, saat tässä osassa tietoja siitä, mitkä funktiot ulkoisen DLL-kirjaston on vietävä, jotta lisäosan voi liittää onnistuneesti.

Lotus Symphony etsii sopivan DLL-kirjaston kokoonpanossa määritetystä lisäosakansiosta. Jotta Lotus Symphony tunnistaa DLL-kirjaston, kirjastolla on oltava tietyt ominaisuudet, jotka selitetään jäljempänä. Näiden tietojen avulla voit ohjelmoida omia lisäosia Lotus Symphony Spreadsheets -ohjelman ohjattuun funktiotoimintoon.

Lisäosat

Kukin lisäosakirjasto sisältää useita funktioita. Joitakin funktioita käytetään hallintatarkoituksiin. Voit valita funktioillesi lähes minkä nimen tahansa. Funktioiden on kuitenkin noudatettava tiettyjä parametrien välitystä koskevia sääntöjä. Tarkat nimeämis- ja kutsukäytännöt vaihtelevat käyttöympäristön mukaan.

AddIn-DLL-kirjaston funktiot

Kirjastossa on oltava ainakin hallintafunktiot GetFunctionCount ja GetFunctionData. Niiden avulla voidaan määrittää funktiot, parametrien lajit ja paluuarvot. Paluuarvo voi olla pitkä liukuluku tai merkkijono. Parametrina voi lisäksi käyttää pitkiä liukulukuja sisältävän taulukon, merkkijonotaulukon tai solutaulukon solualueita.

Parametrit välitetään viittausten avulla. Siksi näitä arvoja voi periaatteessa muuttaa. Lotus Symphony Spreadsheets -ohjelma ei kuitenkaan tue arvojen muuttoa, koska se ei ole järkevää laskentataulukoissa.

Kirjastot voi ladata uudelleen ohjelman ajon aikana, ja hallintafunktiot voivat analysoida niiden sisältöä. Funktioista on saatavana tiedot niiden sisäisestä ja ulkoisesta nimestä sekä parametrien määrästä ja lajista. Lisäksi nähtävissä on funktion hallintanumero.

Funktiot kutsutaan tahdistetusti, ja ne palauttavat tulokset heti. Funktiot voivat olla myös reaaliaikaisia (asynkronisia). Tällaiset funktiot ovat kuitenkin monimutkaisia, joten niitä ei selitetä yksityiskohtaisesti.

Yleisiä tietoja liittymästä

Lotus Symphony Spreadsheets -ohjelmaan liitettävässä lisäosafunktiossa voi olla enintään 16 parametria: yksi paluuarvo ja enintään 15 funktion syöteparametria.

Tietolajit määritetään seuraavasti:

Taulukko 1. Tietolajien määritelmät
Tietolaji Määritelmä
CALLTYPE

Windows-järjestelmät: FAR PASCAL (_far _pascal)

Muut järjestelmät: oletusasetus (käyttöjärjestelmäkohtainen)

USHORT 2-tavuinen etumerkitön kokonaisluku
DOUBLE 8-tavuinen ympäristöriippuvainen muoto
Paramtype

Ympäristöriippuvainen (kuten int)

PTR_DOUBLE =0: osoitin pitkään liukulukuun

PTR_STRING =1: osoitin nollaan päättyvään merkkijonoon

PTR_DOUBLE_ARR =2: osoitin pitkiä liukulukuja sisältävään taulukkoon

PTR_STRING_ARR =3: osoitin merkkijonotaulukkoon

PTR_CELL_ARR =4: osoitin solutaulukkoon

NONE =5

DLL-funktiot

Seuraavassa on kuvaus ulkoisessa DLL-kirjastossa aloitettavista funktioista.

Seuraavat seikat koskevat kaikkia DLL-funktioita:

void CALLTYPE fn(tulos, syöte_1, syöte_2, ...)

Tulos: tulosarvo

Syöte: mikä tahansa lajia (double&, char*, double*, char**, solualue) oleva numero, missä solualue on pitkiä liukulukuja sisältävä taulukko, merkkijonotaulukko tai solutaulukko.

GetFunctionCount()

Tämä funktio palauttaa funktioiden määrän viittausparametrin hallintafunktioita lukuun ottamatta. Kullakin funktiolla on ainutkertainen numero 0 - (nMäärä-1). GetFunctionData- ja GetParameterDescription-funktio käyttävät myöhemmin tätä numeroa.

Syntaksi

void CALLTYPE GetFunctionCount(USHORT& nMäärä)

Parametri

USHORT &nMäärä:

Lähtö: Viittaus lisäosafunktioiden määrän sisältävään muuttujaan. Esimerkki: Jos lisäosassa on viisi Lotus Symphony Spreadsheets -ohjelman funktiota, nMäärä on 5.

GetFunctionData()

Tämä funktio määrittää kaikki lisäosan tärkeät tiedot.

Syntaksi

void CALLTYPE GetFunctionData(USHORT& nNo, char* pFunkNimi, USHORT& nParamMäärä, Paramtype* peLaji, char* pSisäinenNimi)

Parametri

USHORT& nNo:

Syöte: Funktion numero 0 - (nMäärä-1) nämä numerot mukaan lukien.

char* pFunkNimi:

Lähtö: Ohjelmoijan näkemä DLL-kirjastoon määritetty funktion nimi. Tämä ei ole sama kuin ohjatussa funktiotoiminnossa käytettävä nimi.

USHORT& nParamMäärä:

Lähtö: Lisäosafunktion parametrien määrä. Tämän numeron on oltava suurempi kuin 0, koska funktio palauttaa aina arvon. Enimmäisarvo on 16.

Paramtype* peLaji:

Lähtö: Osoitin täsmälleen 16 Paramtype-lajia olevaa muuttujaa sisältävään taulukkoon. Ohjelma täyttää ensimmäiset nParamMäärä-merkinnät sopivanlajisilla parametreilla.

char* pSisäinenNimi:

Lähtö: Käyttäjän näkemä funktion nimi eli ohjatussa funktiotoiminnossa näkyvä nimi. Nimessä voi käyttää laajennetun merkistön sisältämiä merkkejä, kuten ä- ja ö-merkkejä.

Parametrit pFunkNimi ja pSisäinenNimi ovat merkkijonotaulukoita. Lotus Symphony Spreadsheets toteuttaa ne käyttämällä kokoa 256.

GetParameterDescription()

Tämä funktio sisältää lisäosafunktion ja sen parametrien lyhyen kuvauksen. Valinnaisesti tätä funktiota voi käyttää tuomaan lisäosafunktion ja sen parametrien kuvauksen näkyviin ohjatussa funktiotoiminnossa.

Syntaksi

void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pNimi, char* pKuvaus)

Parametri

USHORT& nNo:

Syöte: Funktion numero kirjastossa. Arvo voi olla 0 - (nMäärä-1).

USHORT& nParam:

Syöte: Ilmaisee, mille parametrille kuvaus annetaan. Parametrien numerot alkavat numerosta 1. Jos nParam-arvo on 0, pKuvaus sisältää varsinaisen kuvauksen. Tällöin pNimi-parametrin arvo on merkityksetön.

char* pNimi:

Lähtö: Parametrin nimi tai laji, esimerkiksi sana "Numero", "Merkkijono" tai "Päivämäärä". Lotus Symphony Spreadsheets -ohjelmassa tämä toteutetaan muodossa char[256].

char* pKuvaus:

Lähtö: Parametrin kuvaus, esimerkiksi "Maailmankaikkeudelle laskettava arvo". Lotus Symphony Spreadsheets -ohjelmassa tämä toteutetaan muodossa char[256].

pNimi ja pKuvaus ovat merkkijonotaulukoita, jotka on Lotus Symphony Spreadsheets -ohjelmassa toteutettu käyttämällä kokoa 256. Huomaa, että ohjatussa funktiotoiminnossa käytettävissä oleva tilan määrä on rajallinen, joten koko 256 merkin pituutta ei voi käyttää.

Solualueet

Seuraavissa taulukoissa on tietoja siitä, mitkä tietorakenteet ulkoiselle ohjelmamoduulille on annettava, jotta se voi välittää solualueita. Lotus Symphony Spreadsheets jakaa taulukot kolmeen ryhmään niiden tietolajin mukaan.

Pitkiä liukulukuja sisältävä taulukko

Parametrina voi välittää solualueen, jonka arvot ovat numeroita tai pitkiä liukulukuja. Pitkiä liukulukuja sisältävä taulukko määritetään Lotus Symphony Spreadsheets -ohjelmassa seuraavasti:

Taulukko 2. Pitkiä liukulukuja sisältävän taulukon määritelmä
Siirtymä Nimi Kuvaus
0 Sar_1 Solualueen vasemmassa yläkulmassa olevan sarakkeen numero. Numerointi alkaa nollasta.
2 Rivi_1 Solualueen vasemmassa yläkulmassa olevan rivin numero. Numerointi alkaa nollasta.
4 Taul_1 Solualueen vasemmassa yläkulmassa olevan taulukon numero. Numerointi alkaa nollasta.
6 Sar_2 Solualueen oikeassa alakulmassa olevan sarakkeen numero. Numerointi alkaa nollasta.
8 Rivi_2 Solualueen oikeassa alakulmassa olevan rivin numero. Numerointi alkaa nollasta.
10 Taul_2 Solualueen oikeassa alakulmassa olevan taulukon numero. Numerointi alkaa nollasta.
12 Määrä Seuraavien elementtien määrä. Ohjelma ei laske eikä välitä tyhjiä soluja.
14 Sar Elementin sarakenumero. Numerointi alkaa nollasta.
16 Rivi Elementin rivinumero. Numerointi alkaa nollasta.
18 Taul Elementin taulukkonumero. Numerointi alkaa nollasta.
20 Virhe Virhenumero. Arvo 0 tarkoittaa, ettei virheitä ole. Jos elementti on peräisin kaavasolusta, kaava määrittää virheen arvon.
22 Arvo 8-tavuinen IEEE-muuttuja, jonka tietolaji on pitkä liukuluku tai liukulukumuuttuja.
30 ... Seuraava elementti.

Merkkijonotaulukko

Solualue, joka sisältää tekstitietolajin arvoja ja jonka funktio välittää merkkijonotaulukkona. Merkkijonotaulukko määritetään Lotus Symphony Lotus Symphony Spreadsheets -ohjelmassa seuraavasti:

Taulukko 3. Merkkijonotaulukon määritelmä
Siirtymä Nimi Kuvaus
0 Sar_1 Solualueen vasemmassa yläkulmassa olevan sarakkeen numero. Numerointi alkaa nollasta.
2 Rivi_1 Solualueen vasemmassa yläkulmassa olevan rivin numero. Numerointi alkaa nollasta.
4 Taul_1 Solualueen vasemmassa yläkulmassa olevan taulukon numero. Numerointi alkaa nollasta.
6 Sar_2 Solualueen oikeassa alakulmassa olevan sarakkeen numero. Numerointi alkaa nollasta.
8 Rivi_2 Solualueen oikeassa alakulmassa olevan rivin numero. Numerointi alkaa nollasta.
10 Taul_2 Solualueen oikeassa alakulmassa olevan taulukon numero. Numerointi alkaa nollasta.
12 Määrä Seuraavien elementtien määrä. Ohjelma ei laske eikä välitä tyhjiä soluja.
14 Sar Elementin sarakenumero. Numerointi alkaa nollasta.
16 Rivi Elementin rivinumero. Numerointi alkaa nollasta.
18 Taul Elementin taulukkonumero. Numerointi alkaa nollasta.
20 Virhe Virhenumero. Arvo 0 tarkoittaa, ettei virheitä ole. Jos elementti on peräisin kaavasolusta, kaava määrittää virheen arvon.
22 Pituus Seuraavan merkkijonon pituus lopussa oleva nollatavu mukaan lukien. Jos pituus lopussa oleva nollatavu mukaan lukien on pariton luku, funktio lisää merkkijonon toisen nollatavun, jotta pituuden arvo on parillinen luku. Siksi Pituus lasketaan käyttämällä kaavaa ((MerkkijonoPituus + 2)&~1).
24 Merkkijono Merkkijono, jonka viimeinen merkki on nollatavu
24+Pituus ... Seuraava elementti.

Solutaulukko

Solutaulukoita käytetään sekä tekstiä että numeroita sisältävien solualueiden kutsuun. Solutaulukko määritetään Lotus Symphony Spreadsheets -ohjelmassa seuraavasti:

Taulukko 4. Solutaulukon määritelmä
Siirtymä Nimi Kuvaus
0 Sar_1 Solualueen vasemmassa yläkulmassa olevan sarakkeen numero. Numerointi alkaa nollasta.
2 Rivi_1 Solualueen vasemmassa yläkulmassa olevan rivin numero. Numerointi alkaa nollasta.
4 Taul_1 Solualueen vasemmassa yläkulmassa olevan taulukon numero. Numerointi alkaa nollasta.
6 Sar_2 Solualueen oikeassa alakulmassa olevan sarakkeen numero. Numerointi alkaa nollasta.
8 Rivi_2 Solualueen oikeassa alakulmassa olevan rivin numero. Numerointi alkaa nollasta.
10 Taul_2 Solualueen oikeassa alakulmassa olevan taulukon numero. Numerointi alkaa nollasta.
12 Määrä Seuraavien elementtien määrä. Ohjelma ei laske eikä välitä tyhjiä soluja.
14 Sar Elementin sarakenumero. Numerointi alkaa nollasta.
16 Rivi Elementin rivinumero. Numerointi alkaa nollasta.
18 Taul Elementin taulukkonumero. Numerointi alkaa nollasta.
20 Virhe Virhenumero. Arvo 0 tarkoittaa, ettei virheitä ole. Jos elementti on peräisin kaavasolusta, kaava määrittää virheen arvon.
22 Laji Solun sisällön laji. Arvo 0 tarkoittaa pitkää liukulukua ja 1 merkkijonoa.
24 Arvo tai Pituus

Jos laji on 0, tämä on 8-tavuinen IEEE-muuttuja, jonka tietolaji on pitkä liukuluku tai liukulukumuuttuja.

Jos laji on 1, tämä on seuraavan merkkijonon pituus lopussa oleva nollatavu mukaan lukien. Jos pituus lopussa oleva nollatavu mukaan lukien on pariton luku, funktio lisää merkkijonon toisen nollatavun, jotta pituuden arvo on parillinen luku. Siksi Pituus lasketaan käyttämällä kaavaa ((MerkkijonoPituus + 2)&~1).

26, jos laji on 1 Merkkijono Jos laji on 1, tämä on merkkijono, jonka viimeinen merkki on nollatavu.
32 tai 26 + pituus ... Seuraava elementti.

Palautetta tuotteesta | Lisäohjeet | Tavaramerkit