„LibreOffice“ skaičiuoklės papildiniai programavimui

warning

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


LibreOffice skaičiuoklę galite praplėsti papildiniais, kurie yra išoriniai programavimo moduliai, suteikiantys papildomas darbo su skaičiuoklės dokumentais funkcijas. Jie yra išvardyti Funkcijų vediklyje Papildinių kategorijoje. Jei norite programuoti papildinį patys, tai galite čia sužinoti, kurios funkcijos turi būti eksportuojamos per tam, kad papildinys sėkmingai būtų pridėtas.

LibreOffice ieško papildinių aplanko, nurodyto konfigūracijoje tinkamai . Kad LibreOffice atpažintų, turi atitikti tam tikras savybes, kaip aprašyta toliau. Tai leidžia patiems programuoti papildinį LibreOffice skaičiuoklės Funkcijų vedikliui.

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 skirtingose platformose skiriasi.

funkcijos

Būtinai turi būto vykdomosios funkcijosGetFunctionCount and GetFunctionData. Kitos funkcijos gali būti apibrėžiamos šiomis dviem funkcijomis. Langelių sritys dvigubas masyvas, eilutės 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 vykdymo metu gali būti atsiųstos iš naujo 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 (asinchronines) 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 rasite funkcijų, kurios iškviečiamos , aprašymus.

Visoms funkcijoms taikoma:

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

Išvestis: rezultato reikšmė

Įvestis: bet kokio tipo skaičius (double&, char*, double*, char**, Cell area), kur langelių sritisyra dvigubo masyvo, eilutės masyvo ar langelių masyvo tipo 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: kintamojo nuoroda, kurioje turi būti atitinkamas papildinio funkcijos skaičius. Pavyzdžiui: jei papildinys suteikia 5 LibreOffice skaičiuoklės funkcijas, tai reikšmė turi būti 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 skaičius tarp 0 ir nCount-1 imtinai.

char* pFuncName:

Išvestis: vartotojo matomas papildinio vardas, toks pats kaip ir . Šis pavadinimas neapibrėžia pavadinimo Funkcijos vediklyje.

USHORT& nParamCount:

Išvestis: papildinio funkcijos parametrų skaičius. Šis skaičius turi būti didesnis už 0, nes rezultato reikšmė visada yra; didžiausia reikšmė yra 16.

Paramtype* peType:

Išvestis: žymeklis masyve su tiksliai 16 Paramtype tipo kintamaisiais. Pirmieji nParamCount įrašai yra užpildyti tinkamo tipo parametrais.

char* pInternalName:

Išvestis: vartotojo matomas funkcijos pavadinimas, kaip jis matomas Funkcijų vediklyje. Gali turėti umliautus.

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

GetParameterDescription()

Tiekia trumpą 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: funkcijos bibliotekoje numeris; tarp 0 ir nCount-1.

USHORT& nParam:

Įvestis: nustato, kuriam parametrui pateiktas aprašymas; parametrai prasideda nuo 1. Jei nParam yra 0, tai aprašymas turi būti suteiktas nDesc; tokiu atveju pName neturi jokios reikšmės.

char* pName:

Išvestis: ima parametro vardą arba tipą, pavyzdžiui, žodis „Skaičius“ arba „Eilutė“, arba „Data“ ir pan. Įgyvendinta LibreOffice skaičiuoklėje kaip char[256].

char* pDesc:

Išvestis: ima parametro aprašymą, pavyzdžiui, „Skaičius, pagal kurį apskaičiuota visata“. Įgyvendinta LibreOffice skaičiuoklėje 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 pateikiama 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+Len

...

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


Paremkite mus!