„LibreOffice“ skaičiuoklės papildiniai programavimui

Warning Icon

Aprašomas skaičiuoklės praplėtimo metodas papildiniais yra šiek tiek pasenęs. Sąsajos vis dar galiojančios ir palaikomos tam, kad užtikrintų suderinamumą su esančiais papildiniais, bet programavimui naujų papildinių naudokite naujas API funkcijas.


„LibreOffice“ skaičiuoklė gali būti praplėsta išoriniais programavimo moduliais suteikiančiais papildomų darbo knygos funkcijų. Jos yra pateikiamos Funkcijos vediklio papildinių kategorijoje. Jei norite suprogramuoti papildinį, čia galite sužinoti, kokias funkcijas turi eksportuoti sėkmingam papildinių pridėjimui.

„LibreOffice“ ieško papildinio katalogo apibrėžtoje konfigūracijoje tinkamam . Tam, kad „LibreOffice“ atpažintų, turi turėti atitinkamas toliau aprašomas savybes. Pateikta informacija padės suprogramuoti „LibreOffice“ skaičiuoklės Funkcijos vediklio papildinį.

Papildinio konceptas

Kiekviena papildinio biblioteka pateikia keletą funkcijų. Kai kurios funkcijos naudojamos administraciniais tikslais. Galite pasirinkti beveik bet kokį savo funkcijos pavadinimą. Tačiau, pavadinimas privalo laikytis tam tikrų parametrų taisyklių. Tikslūs pavadinimų ir iškvietimų susitarimai skiriasi skirtingoms platformoms.

funkcijos

Būtinai turi būto vykdomosios funkcijosGetFunctionCount and GetFunctionData. Kitos funkcijos gali būti apibrėžiamos šiomis dviem funkcijomis. Langelių sritys dvigubas masyvas, eilutsė masyvas, and langelių masyvas yra palaikomos.

Parametrai užrašomi naudojant nuorodas. Keisti šias reikšmes galima. Tačiau, „LibreOffice“ skaičiuoklė nepalaiko reikšmių keitimo, nes tai neturi prasmės darbo knygoje.

Bibliotekos gali būti atsiųstos iš naujo vykdymo metu ir vykdymo funkcijos gali analizuoti jų turinį. Kiekviena funkcija gali naudoti informaciją apie skaičiavimą ir parametrų tipą, vidinių ir išorinių funkcijų vardus ir vykdymo numerį.

Funkcijos gali būti iškviečiamos sinchroniškai ir rezultatą pateikti iškart. Tikralaikio funkcijas (asinchroninės) taip galima naudoti. Tačiau jos nėra aprašomos, nes yra labai sudėtingos.

Pagrindinė sąsajos informacija

„LibreOffice“ skaičiuoklės papildinio funkcija gali naudoti iki 16 parametrų: viena grąžinama reikšmė ir 15 įvedamų funkcijos parametrų.

Duomenų tipų aprašymai:

Duomenų tipas

Apibrėžimas

CALLTYPE

„Windows“ atitikmuo: FAR PASCAL (_far _pascal)

Kita: numatyta (operacinėje sistemoje)

USHORT

2 baitų sveikasis skaičius be ženklo

DOUBLE

8 baitų nuo platformos priklausomas formatas

Paramtype

Nuo platformos priklausomas

PTR_DOUBLE =0 – dvigubas

PTR_STRING =1 – nulinė eilutė

PTR_DOUBLE_ARR =2 – dvigubas masyvas

PTR_STRING_ARR =3 – eilutės masyvas

PTR_CELL_ARR =4 – langelių masyvas

NONE =5


funkcijos

Toliau aprašomos funkcijos, kurios iškviečiamos iš .

Visoms funkcijoms taikoma:

void CALLTYPE fn(out, in1, in2, ...)

Išvestis: rezultato reikšmė

Įvestis: bet koks skaičiaus tipas, kai langelių sritis yra dvigubas masyvas, eilutės masyvas ar langelių masyvas.

GetFunctionCount()

Funkcija grąžina funkcijos, neįskaitant valdymo funkcijų, numerį. Kiekviena funkcija turi numerį tarp 0 ir nCount-1. Šis skaičius vėliau bus reikalingas funkcijoms GetFunctionData and GetParameterDescription.

Sintaksė

void CALLTYPE GetFunctionCount(USHORT& nCount)

Parametras

USHORT &nCount:

Išvestis: nuoroda į kintamąjį, kuris nusako papildinio funkcijų skaičių. Pavyzdžiui, jei papildinys grąžina „LibreOffice“ skaičiuoklės 5 funkcijas, tai parametras nCount=5.

GetFunctionData()

Apibrėžia visą svarbia informaciją apie papildinio funkcijas.

Sintaksė

void CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName)

Parametras

USHORT& nNo:

Įvestis: funkcijos numeris tarp 0 ir nCOUNT-1 imtinai.

char* pFuncName:

Išvestis: programuotojas mato funkcijos pavadinimas kaip yra . Šis pavadinimas neapibrėžia pavadinimo naudojamo Funkcijos vediklyje.

USHORT& nParamCount:

Išvestis: AddIn funkcijos parametrų skaičius. Šis skaičius turi būti didesnis už 0, nes visada pateikiamas rezultatas. Didžiausias skaičius gali būti 16.

Paramtype* peType:

Išvestis: nurodo į 16 Paramtype tipo kintamųjų masyvą. Pirmieji nParamCount įrašai užpildomi tinkamo tipo parametrais.

char* pInternalName:

Išvestis: funkcijos pavadinimas, kurį mato vartotojas Funkcijų vediklyje. Galimi umliautai.

Parametrai pFuncName ir pInternalName yra ženklių masyvais, kurių dydis „LibreOffice“ skaičiuoklėje yra 256.

GetParameterDescription()

Tiekia rumpą papildinio funkcijos ir jos parametrų aprašymą. Šią funkciją naudokite, kai norėsite parodyti funkcijos ir jos parametrų aprašymą Funkcijos vediklyje.

Sintaksė

void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc)

Parametras

USHORT& nNo:

Įvestis: bibliotekoje esančios funkcijos numeris. Jis gali būti tarp 0 ir nCount-1.

USHORT& nParam:

Įvestis: nurodo, kuriam parametrui skirtas aprašymas. Parametrai pradedami skaičiuoti nuo 1. Jei nParam yra 0, pats aprašymas pateikiamas pDesc. Šiuo atveju pName neturi jokios reikšmės.

char* pName:

Išvestis: paima parametro vardą arba tipą, pavyzdžiui, žodis „skaičius“ ar „eilutė“, ar „data“ ir pan. „LibreOffice“ skaičiuoklėje esantį kaip char[256].

char* pDesc:

Išvestis: paima parametro aprašymą, pavyzdžiui, „Visatos apskaičiavimo reikšmė“. „LibreOffice“ skaičiuoklėje yra kaip char[256].

pName ir pDesc yra ženklų masyvai. „LibreOffice“ skaičiuoklėje yra 256 ilgio. Atkreipkite dėmesį, kad vietos Funkcijų vediklyje yra ribotai ir visi 256 ženklai tikrai netilps.

Langelių sritys

Toliau lentelėse pateikia informacija, kurios duomenų struktūros turi būti pateiktos iš išorinio programos modulio siekiant perduoti langelių sritis. „LibreOffice“ skaičiuoklėje yra trys skirtingi masyvai priklausomai nuo duomenų tipo.

Dvigubas masyvas

Skaičių arba dvigubo tipo langelių sritis gali būti perduodama kaip parametras. Dvigubas masyvas „LibreOffice“ skaičiuoklėje gali būti aprašomas taip:

Poslinkis

Pavadinimas

Aprašymas

0

Stlp. 1

Viršutinio kairiojo srities langelio stulpelio numeris. Numeravimas pradedamas nuo 0.

2

Eil. 1

Viršutinio kairiojo srities langelio eilutės numeris. Numeravimas pradedamas nuo 0.

4

Tabuliavimo žymė 1

Srities kairiosios viršutinės lentelės numeris. Numeravimas pradedamas nuo 0.

6

Stlp. 2

Srities apatinio dešiniojo langelio stulpelio numeris. Numeravimas pradedamas nuo 0.

8

Eil. 2

Srities apatinio dešiniojo langelio eilutės numeris. Numeravimas pradedamas nuo 0.

10

Tabuliavimo žymė 2

Srities apatinės dešiniosios lentelės numeris. Numeravimas pradedamas nuo 0.

12

Skaičius

Sekančio elemento numeris. Tušti langeliai neskaičiuojami.

14

Stulpelis

Elemento stulpelio numeris. Numeravimas pradedamas nuo 0.

16

Eilutė

Elemento eilutės numeris. Numeravimas pradedamas nuo 0.

18

Tabuliavimo žymė

Lentelės elemento numeris. Numeravimas pradedamas nuo 0.

20

Klaida

Klaidos numeris, kur 0 reiškia, kad klaidos nėra. Jei elementas yra iš formulės langelio, tai klaidos reikšmę nusako formulė.

22

Reikšmė

8 baitų dvigubo arba slenkančio taško IEEE kintamasis

30

Kitas elementas


Eilutės masyvas

Langelių sritis, kurioje yra teksto tipo reikšmės ir nusakomos eilutės masyvu. Eilutės masyvas „LibreOffice “ skaičiuoklėje apibrėžiamas:

Poslinkis

Pavadinimas

Aprašymas

0

Stlp. 1

Viršutinio kairiojo srities langelio stulpelio numeris. Numeravimas pradedamas nuo 0.

2

Eil. 1

Viršutinio kairiojo srities langelio eilutės numeris. Numeravimas pradedamas nuo 0.

4

Tabuliavimo žymė 1

Srities kairiosios viršutinės lentelės numeris. Numeravimas pradedamas nuo 0.

6

Stlp. 2

Srities apatinio dešiniojo langelio stulpelio numeris. Numeravimas pradedamas nuo 0.

8

Eil. 2

Srities apatinio dešiniojo langelio eilutės numeris. Numeravimas pradedamas nuo 0.

10

Tabuliavimo žymė 2

Srities apatinės dešiniosios lentelės numeris. Numeravimas pradedamas nuo 0.

12

Skaičius

Sekančio elemento numeris. Tušti langeliai neskaičiuojami.

14

Stlp.

Elemento stulpelio numeris. Numeravimas pradedamas nuo 0.

16

Eilutė

Elemento eilutės numeris. Numeravimas pradedamas nuo 0.

18

Tabuliavimo žymė

Lentelės elemento numeris. Numeravimas pradedamas nuo 0.

20

Klaida

Klaidos numeris, kur 0 reiškia, kad klaidos nėra. Jei elementas yra iš formulės langelio, tai klaidos reikšmę nusako formulė.

22

Ilgis

Eilutės ilgis įskaitant eilutės pabaigos nulinį baitą. Jei ilgis įskaitant pabaigos nulinį baitą lygus nelyginei reikšmei, tai eilutėje pridedamas antrasis nulinis baitas taip, kad būtų lyginė ilgio reikšmė. Nors Ilgis skaičiuojamas naudojant ((StrLen+2)&~1).

24

Eilutė

Eilutė su pabaigos nuliniu baitu

24+Ilgis

Kitas elementas


Langelių masyvas

Langelių masyvai naudojami iškviesti tiek tekstinėms sritims tiek skaitinėms. Langelių masyvas „LibreOffice“ skaičiuoklėje aprašomas taip:

Poslinkis

Pavadinimas

Aprašymas

0

Stlp. 1

Viršutinio kairiojo srities langelio stulpelio numeris. Numeravimas pradedamas nuo 0.

2

Eil. 1

Viršutinio kairiojo srities langelio eilutės numeris. Numeravimas pradedamas nuo 0.

4

Tabuliavimo žymė 1

Srities kairiosios viršutinės lentelės numeris. Numeravimas pradedamas nuo 0.

6

Stlp. 2

Srities apatinio dešiniojo langelio stulpelio numeris. Numeravimas pradedamas nuo 0.

8

Eil. 2

Srities apatinio dešiniojo langelio eilutės numeris. Numeravimas pradedamas nuo 0.

10

Tabuliavimo žymė 2

Srities apatinės dešiniosios lentelės numeris. Numeravimas pradedamas nuo 0.

12

Skaičius

Sekančio elemento numeris. Tušti langeliai neskaičiuojami.

14

Stulpelis

Elemento stulpelio numeris. Numeravimas pradedamas nuo 0.

16

Eilutė

Elemento eilutės numeris. Numeravimas pradedamas nuo 0.

18

Tabuliavimo žymė

Lentelės elemento numeris. Numeravimas pradedamas nuo 0.

20

Klaida

Klaidos numeris, kur 0 reiškia, kad klaidos nėra. Jei elementas yra iš formulės langelio, tai klaidos reikšmę nusako formulė.

22

Tipas

Langelio turinio tipas, 0 == dvigubas, 1 == eilutė

24

Ilgio reikšmė

Jei tipas == 0: dvigubo arba slenkančio taško 8 baitų IEEE kintamasis

Jei tipas == 1: eilutės ilgis įskaitant eilutės pabaigos nulinį baitą. Jei ilgis įskaitant pabaigos nulinį baitą lygus nelyginei reikšmei, tai eilutėje pridedamas antrasis nulinis baitas taip, kad būtų lyginė ilgio reikšmė. Nors Ilgis skaičiuojamas naudojant ((StrLen+2)&~1).

26 jei tipas == 1

Eilutė

Jei tipas == 1: eilutė su pabaigos nuliniu baitu

32 arba 26+Ilgis

Kitas elementas