LibreOffice Calc-en programatzeko osagarria

Abisu-ikonoa

Osagarrien bidez Calc hedatzeko metodoa deskribatzen da jarraian, baina zaharkituta dago. Dena den, interfazeak oraindik ere baliozkoak dira eta horiei buruzko laguntza teknikoa ere eskaintzen da, lehendik dauden osagarriekiko bateragarritasuna bermatzeko, baina osagarri berriak programatzeko, API funtzio berriak erabili behar zenituzke.


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.

Osagarrien kontzeptua

Osagarrien (ingelesez 'add-in') liburutegi bakoitzak funtzio batzuk eskaintzen ditu. Funtzio horietako batzuk xede administratiboetarako erabiltzen dira. Edozein izen aukera dezakezu zeure funtzioentzat. Dena den, zenbait arau jarraitu behar dituzte parametroak pasatzeari dagokionez. Izenak ipintzeko eta dei egiteko konbentzio desberdinak daude plataformen arabera.

Functions of

Gutxienez, GetFunctionCount eta GetFunctionData funtzio administratiboek hor egon behar dute. Horiek erabiliz, funtzioak, parametro motak eta itzultzeko balioak determina daitezke. Emaitza balio gisa, Double eta String motak onartzen dira. Parametro gisa, gainera, Double Array, String Array eta Cell Array gelaxka-barrutiak onartzen dira.

Parametroak erreferentzia bidez pasatzen dira. Hortaz, balio horiek aldatzea ezinezkoa da funtsean. Nolanahi ere, hori ez da onartzen LibreOffice Calc-en, ez baitu zentzurik kalkulu-orrietan.

Liburutegiak birkarga daitezke exekuzioan zehar, eta funtzio administratiboek liburutegi horien edukiak azter ditzakete. Funtzio bakoitzari dagokionez, informazioa erabilgarri egongo da kopurua eta mota parametroei buruz, barneko eta kanpoko funtzioei buruz, eta zenbaki administratiboa ere bai.

Funtzioei sinkronikoki dei egiten zaie eta berehala itzultzen dituzte emaitzak. Denbora errealeko funtzioak (funtzio asinkronoak) ere posible dira; dena den, hemen ez dugu xehetasunik emango, oso konplexuak baitira.

Interfazeari buruzko informazio orokorra

LibreOffice Calc-en erantsitako osagarri-funtzio bateko parametroen gehieneko kopurua 16 da: itzultzeko balio bat eta funtzioen sarrerako 15 parametro gehienez.

Honela definitzen dira datu motak:

Datu motak

Definizioa

CALLTYPE

Windowsen: FAR PASCAL (_far _pascal)

Bestelakoetan: lehenetsia (sistema eragilearen lehenespen espezifikoa)

USHORT

2 byte-ko osoko zenbaki sinatu gabea

DOUBLE

Plataformari lotutako 8 byte-ko formatua

Paramtype

Plataformari lotua, int gisa

PTR_DOUBLE =0, double baten erakuslea

PTR_STRING =1, zeroz amaitutako karaktere-kate baten erakuslea

PTR_DOUBLE_ARR =2, double motako matrize baten erakuslea

PTR_STRING_ARR =3, string motako matrize baten erakuslea

PTR_CELL_ARR =4, cell motako matrize baten erakuslea

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()

Erreferentzia-parametroaren kudeaketa-funtziorik gabeko funtzioen kopurua ematen du. Funtzio bakoitzak 0 eta nCount-1 bitarteko zenbaki bakar bat dauka. Gero zenbaki hori beharko da GetFunctionData eta GetParameterDescription funtzioentzat.

Sintaxia

void CALLTYPE GetFunctionCount(USHORT& nCount)

Parametroa

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()

Osagarri-funtzio bati buruzko informazio esanguratsu guztia zehazten du.

Sintaxia

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

Parametroa

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.

pFuncName eta pInternalName parametroak char matrizeak dira; 256 tamainarekin inplementatzen dira LibreOffice Calc-en.

GetParameterDescription()

Osagarri-funtzioaren eta bere parametroen deskribapen labur bat ematen du. Nahi izanez gero, Funtzioen morroian funtzioen eta parametroen azalpen bat erakusteko erabil daiteke funtzio hau.

Sintaxia

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

Parametroa

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 eta pDesc char matrizeak dira; LibreOffice Calc-en 256 tamainarekin inplementatuak. Kontuan izan Funtzioen morroian erabilgarri dagoen lekua mugatua dela eta 256 karaktereak ezin direla osorik erabili.

Gelaxka-barrutiak

Ondorengo taulan azaltzen da, besteak beste, zein datu-egitura eman behar dituen kanpoko programa-modulu batek gelaxka-barrutiak pasatu ahal izateko. LibreOffice Calc-ek hiru matrize mota desberdintzen ditu, datu motaren arabera.

Double motako matrizea

Parametro gisa, Number/Double motako balioak dituen gelaxka-barruti bat pasatu daiteke. Double motako matrize bat honela definitzen da LibreOffice Calc-en:

Offset

Izena

Deskribapena

0

Col1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko zutabearen zenbakia. Zenbakitzea 0n hasten da.

2

Row1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko errenkada-zenbakia; zenbakitzea 0n hasten da.

4

Tab1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko taula-zenbakia; zenbakitzea 0n hasten da.

6

Col2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko zutabearen zenbakia. Zenbakitzea 0n hasten da.

8

Row2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko errenkada-zenbakia; zenbakitzea 0n hasten da.

10

Tab2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko taula-zenbakia; zenbakitzea 0n hasten da.

12

Kopurua

Ondorengo elementuen kopurua. Gelaxka hutsak ez dira kontatzen edo pasatzen.

14

Col

Elementuaren zutabe-zenbakia. Zenbakitzea 0n hasten da.

16

Errenkada

Elementuaren errenkada-zenbakia; zenbakitzea 0n hasten da.

18

Tab

Elementuaren taula-zenbakia; zenbakitzea 0n hasten da.

20

Error

Errore-zenbakia (0 balioa "no error." gisa definitua). Elementua formula-gelaxka batetik badator, errore-balioa formulak determinatzen du.

22

Balioa

8 byte-ko IEEE aldagaia, double/koma mugikorrekoa motakoa

30

...

Hurrengo elementua


String motako matrizea

Gelaxka-barruti bat, testu motako datu-balioak dituena eta string motako matrize gisa pasatzen dena. String motako matrize bat honela definitzen da LibreOffice Calc-en:

Desplazamendua

Izena

Deskribapena

0

Col1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko zutabearen zenbakia. Zenbakitzea 0n hasten da.

2

Row1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko errenkada-zenbakia; zenbakitzea 0n hasten da.

4

Tab1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko taula-zenbakia; zenbakitzea 0n hasten da.

6

Col2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko zutabearen zenbakia. Zenbakitzea 0n hasten da.

8

Row2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko errenkada-zenbakia; zenbakitzea 0n hasten da.

10

Tab2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko taula-zenbakia; zenbakitzea 0n hasten da.

12

Kopurua

Ondorengo elementuen kopurua. Gelaxka hutsak ez dira kontatzen edo pasatzen.

14

Col

Elementuaren zutabe-zenbakia. Zenbakitzea 0n hasten da.

16

Errenkada

Elementuaren errenkada-zenbakia; zenbakitzea 0n hasten da.

18

Tab

Elementuaren taula-zenbakia; zenbakitzea 0n hasten da.

20

Error

Errore-zenbakia (0 balioa "no error." gisa definitua). Elementua formula-gelaxka batetik badator, errore-balioa formulak determinatzen du.

22

Len

Ondorengo karaktere-katearen luzera, itxierako 0 byte-a barne. Luzera, itxierako 0a barne, zenbaki bakoiti bat bada, bigarren 0 byte bat gehituko zaio karaktere-kateari, balio bikoitia lortzeko. Beraz, honela kalkulatzen da Len: ((StrLen+2)&~1).

24

Karaktere-katea

Karaktere-katea itxierako zero byte-arekin

24+Len

...

Hurrengo elementua


Cell motako matrizea

Testua nahiz zenbakiak dituzten gelaxka-areei dei egiteko erabiltzen dira Cell motako matrizeak. Cell motako matrize bat honela definitzen da LibreOffice Calc-en:

Desplazamendua

Izena

Deskribapena

0

Col1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko zutabearen zenbakia. Zenbakitzea 0n hasten da.

2

Row1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko errenkada-zenbakia; zenbakitzea 0n hasten da.

4

Tab1

Gelaxka-barrutiko goi-ezkerraldeko ertzeko taula-zenbakia; zenbakitzea 0n hasten da.

6

Col2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko zutabearen zenbakia. Zenbakitzea 0n hasten da.

8

Row2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko errenkada-zenbakia; zenbakitzea 0n hasten da.

10

Tab2

Gelaxka-barrutiko behe-eskuinaldeko ertzeko taula-zenbakia; zenbakitzea 0n hasten da.

12

Kopurua

Ondorengo elementuen kopurua. Gelaxka hutsak ez dira kontatzen edo pasatzen.

14

Col

Elementuaren zutabe-zenbakia. Zenbakitzea 0n hasten da.

16

Errenkada

Elementuaren errenkada-zenbakia; zenbakitzea 0n hasten da.

18

Tab

Elementuaren taula-zenbakia; zenbakitzea 0n hasten da.

20

Error

Errore-zenbakia (0 balioa "no error." gisa definitua). Elementua formula-gelaxka batetik badator, errore-balioa formulak determinatzen du.

22

Mota

Gelaxka-edukiaren mota, 0 == Double, 1 == String

24

Value or Len

type == 0 bada: 8 byte-ko IEEE aldagaia, double/koma mugikorrekoa motakoa

type == 1 bada: Ondorengo karaktere-katearen luzera, itxierako 0 byte-a barne. Luzera, itxierako 0a barne, zenbaki bakoiti bat bada, bigarren 0 byte bat gehituko zaio karaktere-kateari, balio bikoitia lortzeko. Beraz, honela kalkulatzen da Len: ((StrLen+2)&~1).

26 if type==1

Karaktere-katea

type == 1 bada: Karaktere-katea itxierako zero byte-arekin

32 or 26+Len

...

Hurrengo elementua


Emaguzu laguntza!