ይዞታዎች

# ተጨማ-ሪዎች ለ ፕሮግራም በ LibreOffice ሰንጠረዥ

ይህ የ ማስፊያ ዘዴ ለ ሰንጠረዥ ተጨማ-ሪዎች የ ተገለጸው ጊዜው ያለፈበት ነው: ይህ ገጽታ ውጋ ያለው እና የ ተደገፈ ነው: ተስማሚነቱን ለ ማረጋገጥ ከ ነበሩት ተጨማ-ሪዎች ጋር: ነገር ግን ለ አዲስ ተጨማ-ሪዎች ፕሮግራም እርስዎ መጠቀም አለብዎት አዲስ API ተግባሮች.

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 shared library external DLL so that the Add-In can be successfully attached.

LibreOffice searches the Add-in folder defined in the configuration for a suitable shared library DLL. To be recognized by LibreOffice, the shared library DLL 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.

## የ ተጨማ-ሪዎች ሀሳብ

እያንዳንዱ ተጨ-ማሪ መጻህፍት ቤት የሚያቀርበው በርካታ ተግባሮች ነው: አንዳንድ ተግባሮች የሚጠቅሙት ለ አስተዳደር ጉዳዮች ነው: እርስዎ ማንኛውንም ስም መምረጥ ይችላሉ ለ እርስዎ ተግባሮች: ነገር ግን አንዳንድ ደንቦች መከተል አለባቸው: ደንብን በሚለከት ለማለፍ: በ ትክክል መሰየም እና ስብሰባ መጥራት የ ተለዩ መድረኮችን ይከተላሉ

### Functions of Shared Library AddIn DLL

አነስተኛ የ አስተዳዳሪ ተግባሮች የ ተግባሮች መቁጠሪያ ያግኙ እና የ ተግባሮች ዳታ ያግኙ መውጣት አለብዎት: እነዚህን ለ መጠቀም: ተግባሮች እንዲሁም እንደ ደንብ አይነቶች እና ዋጋዎች ይመልሳል እና መወሰን ይቻላል: እንደ መመለሻ ዋጋዎች: የ ድርብ እና ሀረገ አይነቶች የ ተደገፉ ናቸው: እንደ ደንቦች: በ ተጨማሪ የ ክፍል ቦታዎች ድርብ ማዘጋጃ ሀረግ ማዘጋጃ እና ክፍል ማዘጋጃ የ ተደገፉ ናቸው

ደንቦች የሚያልፉት ማመሳከሪያ በ መጠቀም ነው: ስለዚህ የ እነዚህ ዋጋዎች መቀየር በ መሰረቱ ይቻላል: ነገር ግን ይህ የ ተደገፈ አይደለም በ LibreOffice ሰንጠረዥ ውስጥ ምክንያቱም በ ሰንጠረዥ ውስጥ ምንም ስሜት አይሰጥም

መጻህፍት ቤቶችን እንደገና መጫን ይቻላል በ ማስኬጃ ጊዜ ውስጥ እና ይዞታዎቹን መመርመር ይቻላል በ አስተዳዳሪ ተግባሮች: ለ እያንዳንዱ ተግባር: መረጃ ዝግጁ ነው በ መቁጠሪያ እና ደንብ አይነት ውስጥ: የ ውስጥ እና የ ውጪ ተግባር ስሞች እና የ አስተዳዳሪ ቁጥር

ይህ ተግባር በ ተመሳሳይ ጊዜ ይባላል እና ውጤት ወዲያውኑ ይመልሳል: በ ተመሳሳይ ጊዜ (በ ተለያየ ጊዜ) እንዲሁም ይቻላል: ነገር ግን: በደንብ አልተገለጹም ምክንያቱም በጣም ውስብስብ ነው

## ባጠቃላይ መረጃ ስለ ገጽታ

ከፍተኛው ቁጥር ደንብ ከ ተጨማሪ ተግባር የተያያዘው ከ LibreOffice ሰንጠረዥ ጋር 16: ነው: አንድ መመለሻ ዋጋ እና ከፍተኛ 15 ተግባር ማስገቢያ ደንብ

የ ዳታ አይነቶች እንደሚቀጥለው ተገልጸዋል:

የ ዳታ አይነቶች | ትርጉም
--- | ---
CALLTYPE | በ መስኮት ውስጥ: FAR PASCAL (_far _pascal) ሌላ: ነባር (የ መስሪያ ስርአት የ ተወሰነ ነባር)
USHORT | 2 ባይት ያልተመደበ ኢንቲጀር
DOUBLE | 8 ባይት መደረክ-ጥገኛ አቀራረብ
Paramtype | መድረክ-ጥገኛ እንደ ኢንቲጀር ጠቋሚ_ድርብ =0 ጠቋሚ ወደ ድርብ ጠቋሚ_ሀረግ =1 ጠቋሚ ወደ ዜሮ-የተወገደ ሀረግ ጠቋሚ_ድርብ_ማዘጋጃ =2 ጠቋሚ ወደ ድርብ ማዘጋጃ ጠቋሚ_ሀረግ_ማዘጋጃ =3 ጠቋሚ ወደ ሀረግ ማዘጋጃ ጠቋሚ_ክፍል_ማዘጋጃ =4 ጠቋሚ ወደ ክፍል ማዘጋጃ ምንም =5

## Shared Library DLL functions

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

For all Shared Library DLL 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()

የ ተግባሮች ቁጥር ይመልሳል ያለ ተግባሮች አስተዳዳሪ ለ ማመሳከሪያ ደንብ: እያንዳንዱ ተግባር የ ተለየ ቁጥር አለው በ 0 እና nመቁጠሪያ-1. መካከል: ይህ ቁጥር ያስፈልጋል ለ የ ተግባር ዳታ ማግኛ እና የ ደንብ መግለጫ ተግባር ማግኛ ለ ተግባሮች በኋላ

አገባብ

void CALLTYPE GetFunctionCount(USHORT& nCount)

ደንብ

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

ሁሉንም አስፈላጊ መረጀ ስለ ተጨ-ማሪ ተግባር መወሰኛ

አገባብ

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

ደንብ

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 Shared Library DLL. 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.

የ ደንብ ተግባር ስም እና የ ደንብ የ ውስጥ ስም ደንቦች የ ባህሪ ማዘጋጃ ናቸው: የሚፈጸሙ በ 256 መጠን በ LibreOffice ሰንጥረዥ ውስጥ

### GetParameterDescription()

ግልጽ መግለጫ ማቅረቢያ ለ ተጨ-ማሪ ተግባር እና ደንቦቹ: እንደ ምርጫ ይህን ተግባር መጠቀም ይቻላል ተግባር ለማሳየት እና ደንቦችን ለ መግለጫ በ ተግባር አዋቂ ውስጥ

አገባብ

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

ደንብ

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].

የ ደንብ ስም እና የ ደንብ መግለጫ ባህሪ ማዘጋጃ ናቸው: የሚፈጸሙ በ LibreOffice ሰንጠረዥ ውስጥ በ 256. መጠን: እባክዎን ያስታውሱ ዝግጁ ክፍተት ያለው በ ተግባር አዋቂ የ ተወሰነ ነው እና 256 ባህሪ በ ሙሉ አይጠቀምም

## የ ክፍል ቦታዎች

የሚቀጥሉት ሰንጠረዦች መረጃ ይዘዋል ስለ የትኛው የ ዳታ አካሎች መቅረብ እናዳለባቸው በ ውጪ ፕሮግራም ክፍል የ ክፍል ቦታ ለማለፍ LibreOffice ሰንጠረዥ ይለያል በ ሶስት የተለያዩ ማዘጋጃዎች እንደ ዳታው አይነት

### ድርብ ማዘጋጃ

እንደ ደንብ: የ ክፍል ቦታ ከ ዋጋዎች ጋር የ ቁጥር/ድርብ አይነት ማሳለፍ ይቻላል: ድርብ ማዘጋጃ በ LibreOffice ሰንጠረዥ ውስጥ የሚገለጸው እንደሚከተለው ነው:

Offset | Name | Description
--- | --- | ---
0 | አምድ1 | የ አምድ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
2 | ረድፍ1 | የ ረድፍ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
4 | Tab1 | የ ሰንጠረዥ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
6 | አምድ2 | የ አምድ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
8 | ረድፍ2 | የ ረድፍ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
10 | Tab2 | የ ሰንጠረዥ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
12 | መቁጠሪያ | የሚቀጥሉት አካላቶች ቁጥር: ባዶ ክፍሎች አይቆጠሩም ወይንም ይታለፋሉ
14 | አምድ | የ አምድ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
16 | ረድፍ | የ ረድፍ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
18 | ማስረጊያ | የ ሰንጠረዥ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
20 | ስሀተት | ስህተት ቁጥር: ዋጋው 0 የሚገለጽበት እንደ "ስህተት አይደለም" አካሉ ከ መቀመሪያ ክፍል ውስጥ ከ መጣ የ ስህተት ዋጋ የሚወሰነው በ መቀመሪያ ነው
22 | ዋጋ | 8 ባይት IEEE ተለዋዋጭ ለ አይነት ድርብ/ተንሳፋፊ ነጥብ
30 | ... | የሚቀጥለው አካል

### ሀረግ ማዘጋጃ

የ ክፍል ቦታ: ዋጋዎች የያዘ የ ዳታ አይነት ጽሁፍ እና ማሳለፍ የሚቻል እንደ ሀረግ ማዘጋጃ: የ ሀረግ ማዘጋጃ በ LibreOffice ሰንጠረዥ ውስጥ የሚገለጸው እንደሚከተለው ነው

Offset | Name | Description
--- | --- | ---
0 | አምድ1 | የ አምድ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
2 | ረድፍ1 | የ ረድፍ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
4 | Tab1 | የ ሰንጠረዥ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
6 | አምድ2 | የ አምድ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
8 | ረድፍ2 | የ ረድፍ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
10 | Tab2 | የ ሰንጠረዥ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
12 | መቁጠሪያ | የሚቀጥሉት አካላቶች ቁጥር: ባዶ ክፍሎች አይቆጠሩም ወይንም ይታለፋሉ
14 | አምድ | የ አምድ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
16 | ረድፍ | የ ረድፍ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
18 | ማስረጊያ | የ ሰንጠረዥ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
20 | ስሀተት | የ ስህተት ቁጥር: ይህ ዋጋ 0 የሚገለጸው እንደ "ስህተት የለም" አካሉ ከ መቀመሪያ ክፍል ውስጥ ከመጣ የ ስህተት ዋጋ የሚወሰነው በ መቀመሪያ ነው
22 | እርዝመት | የሚቀጥለው ሀረግ እርዝመት: የ መዝጊያ ዜሮ ባይት ያካትታል: እርዝመት የ መዝጊያ ዜሮ ባይት እኩል ከሆነ እና ጎዶሎ ዋጋ ካለው ሁለተኛ ዜሮ ባይት ይጨመራል ወደ ሀረግ ውስጥ ስለዚህ ሙሉ ዋጋ ማግኘት ይቻላል: ስለዚህ እርዝመት የሚሰላው በ መጠቀም ነው ((StrLen+2)&~1).
24 | ሀረግ | ሀረግ ከ መዝጊያ ዜሮ ባይት ጋር
24+Len | ... | የሚቀጥለው አካል

### ክፍል ማዘጋጃ

የ ክፍል ማዘጋጃ የሚጠቅመው ለ የ ክፍል ቦታ ለመጥራት ነው ጽሁፍ የያዘ እንዲሁም ቁጥሮች: የ ክፍል ማዘጋጃ በ LibreOffice ሰንጠረዥ የሚገለጸው እንደሚከተለው ነው:

Offset | Name | Description
--- | --- | ---
0 | አምድ1 | የ አምድ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
2 | ረድፍ1 | የ ረድፍ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
4 | Tab1 | የ ሰንጠረዥ ቁጥር በ ክፍል ውስጥ ከ ላይ-በ ግራ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
6 | አምድ2 | የ አምድ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
8 | ረድፍ2 | የ ረድፍ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
10 | Tab2 | የ ሰንጠረዥ ቁጥር በ ክፍል ውስጥ ከ ታች-በ ቀኝ ጠርዝ በኩል ያለው ቦታ ነው: ቁጥር የሚጀምረው ከ 0 ነው
12 | መቁጠሪያ | የሚቀጥሉት አካላቶች ቁጥር: ባዶ ክፍሎች አይቆጠሩም ወይንም ይታለፋሉ
14 | አምድ | የ አምድ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
16 | ረድፍ | የ ረድፍ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
18 | ማስረጊያ | የ ሰንጠረዥ ቁጥር ለ አካሉ: ቁጥር የሚጀምረው ከ 0 ነው
20 | ስህተት | የ ስህተት ቁጥር: ይህ ዋጋ 0 የሚገለጸው እንደ "ስህተት የለም" አካሉ ከ መቀመሪያ ክፍል ውስጥ ከመጣ የ ስህተት ዋጋ የሚወሰነው በ መቀመሪያ ነው
22 | አይነት | የ ክፍሉ ይዞታ አይነት: 0 == ድርብ, 1 == ሀረግ
24 | ዋጋ ወይንም እርዝመት | ከሆነ አይነት == 0: 8 ባይት IEEE ተለዋዋጭ ለ አይነት ድርብ/ተንሳፋፊ ነጥብ አይነት ከሆነ == 1: የሚቀጥለው ሀረግ እርዝመት: የ መዝጊያ ዜሮ ባይት ያካትታል: እርዝመት የ መዝጊያ ዜሮ ባይት እኩል ከሆነ እና ጎዶሎ ዋጋ ካለው ሁለተኛ ዜሮ ባይት ይጨመራል ወደ ሀረግ ውስጥ ስለዚህ ሙሉ ዋጋ ማግኘት ይቻላል: ስለዚህ እርዝመት የሚሰላው በ መጠቀም ነው ((StrLen+2)&~1).
26 አይነት ከሆነ==1 | ሀረግ | አይነት ከሆነ==1: ሀረግ ከ መዝጊያ ዜሮ ባይት ጋር
32 ወይንም 26+እርዝመት | ... | የሚቀጥለው አካል

Please support us!