Lisafunktsioonid programmeerimisel LibreOffice Calcis

Hoiatav ikoon

JĂ€rgmistes lĂ”ikudes kirjeldatud Calci lisafunktsioonide abil laiendamise meetod on aegunud. Liidesed on kĂŒll endiselt sobivad ja toetatud, et tagada ĂŒhilduvus olemasolevate lisafunktsioonidega, kuid uute lisafunktsioonide programmeerimiseks tuleks kasutada uusi API-funktsioone.


LibreOffice Calc can be expanded by Add-Ins, which are external programming modules providing additional functions for working with spreadsheets. These are listed in the Function Wizard in the Add-In category. If you would like to program an Add-In yourself, you can learn here which functions must be exported by the so that the Add-In can be successfully attached.

LibreOffice searches the Add-in folder defined in the configuration for a suitable . To be recognized by LibreOffice, the must have certain properties, as explained in the following. This information allows you to program your own Add-In for Function Wizard of LibreOffice Calc.

Lisafunktsioonide kontseptsioon

Iga lisafunktsioonide teek hÔlmab mitut funktsiooni. MÔnda funktsiooni kasutatakse administratiivsel otstarbel. Oma funktsioonide jaoks vÔid valida peaaegu mis tahes nime. Siiski peavad nimed jÀrgima teatud reegleid, mis on seotud parameetrite edastamisega. TÀpsed nimepaneku- ja kÀivitustavad on erinevate platvormide jaoks erinevad.

Functions of

Kindlasti peavad olemas olema haldusfunktsioonid GetFunctionCount ja GetFunctionData. Nende abil saab mÀÀratleda nii funktsioonid kui ka parameetrite tĂŒĂŒbid ja tagastatavad vÀÀrtused. Tagastatavate vÀÀrtustena on toetatud tĂŒĂŒbid Pikad reaalarvud ja String. Parameetritena on lisaks toetatud ka pikkade reaalarvude massiivi, stringide massiivi ja lahtrite massiivi lahtrialad.

Parameetrid edastatakse viidete abil. Nende vÀÀrtuste muutmine on seetÔttu sisuliselt vÔimalik. Siiski pole see LibreOffice Calcis toetatud, kuna see pole arvutustabelites mÔttekas.

Teegid saab kĂ€itusajal uuesti laadida ja haldusfunktsioonid saavad nende sisu analĂŒĂŒsida. Iga funktsiooni jaoks on saadaval teave parameetrite arvu ja tĂŒĂŒbi, sisemiste ja vĂ€liste funktsiooninimede ning administratiivnumbri kohta.

Funktsioonid kutsutakse sĂŒnkroonselt ja tulemused tagastatakse kohe. VĂ”imalikud on ka reaalajas töötavad funktsioonid (asĂŒnkroonsed funktsioonid), mida pole siinkohal aga nende keerukuse tĂ”ttu ĂŒksikasjalikult selgitatud.

Üldine teave kasutajaliidese kohta

LibreOffice Calci lisatud lisafunktsiooni parameetrite suurim lubatud arv on 16: ĂŒks tagastatav vÀÀrtus ja kuni 15 funktsiooni sisendparameetrit.

AndmetĂŒĂŒbid on mÀÀratud jĂ€rgnevalt:

AndmetĂŒĂŒp

Definitsioon

CALLTYPE

Windows'is: FAR PASCAL (_far _pascal)

Mujal: vaikimisi (operatsioonisĂŒsteemis mÀÀratud vaikevÀÀrtus)

USHORT

2-baidine mÀrgita tÀisarv

DOUBLE

8-baidine platvormist sÔltuv vorming

Paramtype

Platvormist sÔltuv nagu int

PTR_DOUBLE =0 viit pikale reaalarvule

PTR_STRING =1 viit nulliga lÔpetatud stringile

PTR_DOUBLE_ARR =2 viit pikkade reaalarvude massiivile

PTR_STRING_ARR =3 viit stringide massiivile

PTR_CELL_ARR =4 viit lahtrite massiivile

NONE =5


functions

Following you will find a description of those functions, which are called at the .

For all functions, the following applies:

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

Output: Resulting value

Input: Any number of types (double&, char*, double*, char**, Cell area), where the Cell area is an array of types double array, string array, or cell array.

GetFunctionCount()

Tagastab funktsioonide arvu ilma viiteparameetri haldusfunktsioonideta. Igal funktsioonil on unikaalne arv vahemikus 0 ja nCount-1. Seda arvu lÀheb hiljem vaja funktsioonide GetFunctionData ja GetParameterDescription jaoks.

SĂŒntaks

void CALLTYPE GetFunctionCount(USHORT& nCount)

Parameeter

USHORT &nCount:

Output: Reference to a variable, which is supposed to contain the number of Add-In functions. For example: If the Add-In provides 5 functions for LibreOffice Calc, then nCount=5.

GetFunctionData()

Tuvastab kogu olulise teabe lisafunktsiooni kohta.

SĂŒntaks

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

Parameeter

USHORT& nNo:

Input: Function number between 0 and nCount-1, inclusively.

char* pFuncName:

Output: Function name as seen by the programmer, as it is named in the . This name does not determine the name used in the Function Wizard.

USHORT& nParamCount:

Output: Number of parameters in AddIn function. This number must be greater than 0, because there is always a result value; the maximum value is 16.

Paramtype* peType:

Output: Pointer to an array of exactly 16 variables of type Paramtype. The first nParamCount entries are filled with the suitable type of parameter.

char* pInternalName:

Output: Function name as seen by the user, as it appears in the Function Wizard. May contain umlauts.

Parameetrid pFuncName ja pInternalName on char-massiivid, mis on LibreOffice Calcis kasutusele vÔetud suurusega 256.

GetParameterDescription()

Lisafunktsiooni ja tema parameetrite lĂŒhikirjeldus. Soovi korral saab seda funktsiooni kasutada ka funktsiooni ja parameetrite kirjelduse kuvamiseks FunktsiooninĂ”ustajas.

SĂŒntaks

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

Parameeter

USHORT& nNo:

Input: Number of the function in the library; between 0 and nCount-1.

USHORT& nParam:

Input: Indicates, for which parameter the description is provided; parameters start at 1. If nParam is 0, the description itself is supposed to be provided in pDesc; in this case, pName does not have any meaning.

char* pName:

Output: Takes up the parameter name or type, for example, the word "Number" or "String" or "Date", and so on. Implemented in LibreOffice Calc as char[256].

char* pDesc:

Output: Takes up the description of the parameter, for example, "Value, at which the universe is to be calculated." Implemented in LibreOffice Calc as char[256].

pName ja pDesc on char-massiivid; LibreOffice Calcis on need kasutusele vÔetud suurusega 256. Pane tÀhele, et FunktsiooninÔustajas saadaolev ruum on piiratud ja kÔiki 256 mÀrki ei saa kasutada.

Lahtrite alad

JĂ€rgmised tabelid sisaldavad teavet selle kohta, milliseid andmestruktuure peab vĂ€line programmimoodul lahtrialade edastamiseks sisaldama. LibreOffice Calc eristab sĂ”ltuvalt andmete tĂŒĂŒbist kolme erinevat massiivi.

Pikkade reaalarvude massiiv

Parameetrina saab edastada lahtrite ala vÀÀrtustega, mille tĂŒĂŒp on Arv vĂ”i Pikad reaalarvud. Pikkade reaalarvude massiiv mÀÀratakse LibreOffice Calcis jĂ€rgmiselt:

Offset

Name

Kirjeldus

0

Vrg1

Veeru number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

2

Rd1

Rea number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

4

Tab1

Tabeli number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

6

Vrg2

Veeru number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

8

Rd2

Rea number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

10

Tab2

Tabeli number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

12

Arv

JĂ€rgnevate elementide arv. TĂŒhje lahtreid ei loendata ega kĂ€sitleta.

14

Veerg

Elemendi veeru number. Nummerdus algab 0-st.

16

Rida

Elemendi rea number. Nummerdus algab 0-st.

18

Tab

Elemendi tabeli number. Nummerdus algab 0-st.

20

Viga

Vea kood, kusjuures vÀÀrtus 0 tÀhendab, et "viga puudub". Kui element pÀrineb valemiga lahtrist, mÀÀrab vea koodi valem.

22

VÀÀrtus

8-baidine IEEE muutuja tĂŒĂŒbiga pikk reaalarv / ujukomaarv

30

...

JĂ€rgmine element


Stringide massiiv

Lahtrite ala, mis sisaldab vÀÀrtusi andmetĂŒĂŒbiga tekst ja mida kĂ€sitletakse kui stringide massiivi. Stringide massiiv on LibreOffice Calcis defineeritud jĂ€rgnevalt:

Offset

Name

Kirjeldus

0

Vrg1

Veeru number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

2

Rd1

Rea number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

4

Tab1

Tabeli number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

6

Vrg2

Veeru number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

8

Rd2

Rea number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

10

Tab2

Tabeli number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

12

Arv

JĂ€rgnevate elementide arv. TĂŒhje lahterid ei loendata ega jĂ€eta vahele.

14

Veerg

Elemendi veeru number. Nummerdus algab 0-st.

16

Rida

Elemendi rea number. Nummerdus algab 0-st.

18

Tab

Elemendi tabeli number. Nummerdus algab 0-st.

20

Viga

Vea kood, kusjuures vÀÀrtus 0 tÀhendab, et "viga puudub". Kui element pÀrineb valemiga lahtrist, mÀÀrab vea koodi valem.

22

Pikkus

JÀrgmise stringi pikkus koos sulgeva null-baidiga. Kui pikkus koos sulgeva null-baidiga on paaritu vÀÀrtus, lisatakse stringile veel teinegi null-bait, et tulemuseks oleks paarisvÀÀrtus. SeetÔttu kasutatakse pikkuse arvutamiseks valemit ((stringipikkus+2)&~1).

24

String

String sulgeva null-baidiga

24+Len

...

JĂ€rgmine element


Lahtrite massiiv

Lahtrite massiive kasutatakse nii teksti kui ka arve sisaldavate lahtrialade kutsumiseks. Lahtrite massiiv on LibreOffice Calcis mÀÀratud jÀrgmiselt:

Offset

Name

Kirjeldus

0

Vrg1

Veeru number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

2

Rd1

Rea number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

4

Tab1

Tabeli number lahtrite ala ĂŒlemises vasakpoolses nurgas. Nummerdus algab 0-st.

6

Vrg2

Veeru number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

8

Rd2

Rea number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

10

Tab2

Tabeli number lahtrite ala alumises parempoolses nurgas. Nummerdus algab 0-st.

12

Arv

JĂ€rgnevate elementide arv. TĂŒhje lahterid ei loendata ega jĂ€eta vahele.

14

Veerg

Elemendi veeru number. Nummerdus algab 0-st.

16

Rida

Elemendi rea number. Nummerdus algab 0-st.

18

Tab

Elemendi tabeli number. Nummerdus algab 0-st.

20

Viga

Vea kood, kusjuures vÀÀrtus 0 tÀhendab, et "viga puudub". Kui element pÀrineb valemiga lahtrist, mÀÀrab vea koodi valem.

22

TĂŒĂŒp

Lahtri tĂŒĂŒp, 0 == pikk reaalarv, 1 == string

24

Pikkuse vÀÀrtus

Kui tĂŒĂŒp == 0: 8-baidine IEEE muutuja tĂŒĂŒbiga pikk reaalarv / ujukomaarv

Kui tĂŒĂŒp == 1: jĂ€rgmise stringi pikkus koos sulgeva null-baidiga. Kui pikkus koos sulgeva null-baidiga on paaritu vÀÀrtus, lisatakse stringile veel teinegi null-bait, et tulemuseks oleks paarisvÀÀrtus. SeetĂ”ttu kasutatakse pikkuse arvutamiseks valemit ((stringipikkus+2)&~1).

26 kui tĂŒĂŒp==1

String

Kui tĂŒĂŒp == 1: string sulgeva null-baidiga

32 vÔi 26+pikkus

...

JĂ€rgmine element


Palun toeta meid!