Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Notă
Grupurile de interes din comunitate s-au mutat acum din Yammer în Microsoft Viva Engage. Pentru a vă alătura unei comunități Viva Engage și a participa la cele mai recente discuții, completați Request acces la Finanțe și Operațiuni Viva Engage Comunitate și alegeți comunitatea la care doriți să vă asociați.
Acest articol descrie funcțiile runtime de reflexie.
classIdObțineți
Regăsește identificatorul numeric (ID-ul de clasă) al clasei căreia îi aparține obiectul inițializat.
int classIdGet(class object)
Parametri
| Parametru | Descriere |
|---|---|
| obiect | Obiectul pentru care se obține ID-ul clasei. |
Valoare returnată
ID-ul de clasă al obiectului specificat.
Exemplu
static void classIdGetExample(Args _args)
{
int i;
WorkTimeCheck w;
i = classIdGet(w);
print "Class ID for object is " + int2Str(i);
}
dimOf
Regăsește numărul de elemente index pentru care este alocat spațiu într-o matrice X++.
int dimOf(anytype object)
Parametri
| Parametru | Descriere |
|---|---|
| obiect | Matricea pentru a determina dimensiunea dimensiunii. |
Valoare returnată
Dacă valoarea parametrului obiectului este o matrice, numărul de elemente din matrice; altfel, 0 (zero).
Observații
Funcția dimOf este destinată matricelor X++ declarate ca următoarele tipuri primitive X++:
- boolean
- date
- Int
- int64
- real
- utcDateTime
Un exemplu este int iAmounts[6];. Matricele de valori de enumerare și tipurile de date extinse sunt acceptate, de asemenea, dacă se bazează în cele din urmă pe unul dintre tipurile de date primitive anterioare (cum ar fi int). Funcția dimOf nu acceptă matrice cu toate tipurile primitive X++. Iată tipurile de matrice pe care funcția dimOf nu le acceptă:
- Str
- container
- orice tip
- Matrice de obiecte de clasă
- Instanțe ale clasei Matrice
Exemplu
static void JobDimOfArrays(Args _args)
{
int iAmounts[20], iCounts[];
ABCModel enumAbcModel[22]; // Enum
ABCModelType exdtAbcModelType[24]; // Extended data type
anytype anyThings[26];
str sNames[28];
Array myArrayObj; // Class
info("Start of job.");
info("--(Next, normal int array, dimOf() accepts it.)");
info(int2Str(dimOf(iAmounts)));
info("--(Next, normal enum array, dimOf() accepts it.)");
info(int2Str(dimOf(enumAbcModel)));
info("--(Next, normal extended data type array (based on enum), dimOf() accepts it.)");
info(int2Str(dimOf(exdtAbcModelType)));
info("--(Next, dynamic int array, dimension not yet set.)");
info(int2Str(dimOf(iCounts)));
info("--(Next, dynamic int array, after dimension established.)");
iCounts[13] = 13;
info(int2Str(dimOf(iCounts)));
info(" == == == == == (Next, array types that dimOf() does not support.)");
info("--(Next, normal anytype array, dimOf() always returns 0.)");
info(int2Str(dimOf(anyThings)));
info("--(Next, an instance of class X++ Array, dimOf() always returns 0.)");
myArrayObj = new Array(Types::Integer);
myArrayObj.value(1,501);
info(int2Str(dimOf(myArrayObj)));
info("--(Next, the lastIndex method provides size information about Array instances.)");
info(int2Str(myArrayObj.lastIndex()));
info("--(Next, normal str array, dimOf() does not accept it, job is halted.)");
info(int2Str(dimOf(sNames)));
info("End of job.");
}
/************ Actual Infolog output
Message (11:10:06 am)
Start of job.
--(Next, normal int array, dimOf() accepts it.)
20
--(Next, normal enum array, dimOf() accepts it.)
22
--(Next, normal extended data type array (based on enum), dimOf() accepts it.)
24
--(Next, dynamic int array, dimension not yet set.)
0
--(Next, dynamic int array, after dimension established.)
16
== == == == == (Next, array types that dimOf() does not support.)
--(Next, normal anytype array, dimOf() always returns 0.)
0
--(Next, an instance of class X++ Array, dimOf() always returns 0.)
0
--(Next, the lastIndex method provides size information about Array instances.)
1
--(Next, normal str array, dimOf() does not accept it, job is halted.)
Error executing code: Illegal operation on this type of array. (C)JobsJobDimOfArrays - line 41
************/
/*********** Pop-up error dialog box
"Internal error number 25 in script."
This error is caused by the code line...
info(int2Str(dimOf(iCounts)));
...before iCounts was assigned at any index.
***********/
fieldId2Name
Regăsește un șir care reprezintă numele câmpului pe care îl specificați utilizând un număr ID de tabel și un număr ID de câmp.
str fieldId2Name(int tableid, int fieldid)
Parametri
| Parametru | Descriere |
|---|---|
| tableid | Numărul ID al tabelului. Notă: Utilizați funcția tableName2Id pentru a specifica ID-ul unui tabel. |
| fieldid | Numărul ID al câmpului. |
Valoare returnată
Numele câmpului.
Observații
Pentru a returna o versiune imprimabilă a numelui câmpului, utilizați funcția fieldId2PName .
Exemplu
Următorul exemplu setează fn la numele câmpului din tabelul Client (CustGroup) care are un ID de câmp 7.
static void fieldId2NameExample(Args _arg)
{
str fn;
fn = fieldId2Name(tableName2Id("Customer"),7);
}
fieldId2PName
Regăsește numele imprimabil al câmpului pe care îl specificați utilizând un număr ID de tabel și un număr ID de câmp.
str fieldId2PName(int tableid, int fieldid)
Parametri
| Parametru | Descriere |
|---|---|
| tableid | Numărul ID al tabelului. Notă: Utilizați funcția tableName2Id pentru a specifica ID-ul unui tabel. |
| fieldid | Numărul ID al câmpului. Notă: Utilizați funcția fieldName2Id pentru a specifica ID-ul unui câmp. |
Valoare returnată
Numele câmpului.
Exemplu
static void fieldId2PNameExample(Args _arg)
{
str name;
tableid _tableId;
fieldid _fieldid;
_tableId = tableName2Id("Address");
_fieldId = fieldName2Id(_tableId, "Name");
name = fieldId2PName(_tableId, _fieldid);
print name;
}
fieldName2Id
Regăsește ID-ul de câmp al câmpului de tabel pe care îl specificați utilizând un număr ID de tabel și un număr ID de câmp.
int fieldName2Id(int tableid, str fieldname)
Parametri
| Parametru | Descriere |
|---|---|
| tableid | Numărul ID al tabelului. Notă: Utilizați funcția tableName2Id pentru a specifica ID-ul unui tabel. |
| nume câmp | Numele câmpului. |
Valoare returnată
ID-ul câmpului specificat de parametrii tableid și nume câmp .
Exemplu
static void fieldName2IdExample(Args _arg)
{
int id;
id = fieldName2Id(tableName2Id("Address"), "Name");
// Returns 6. Name is the 6th field in the Address table.
print id;
}
indexId2Name
Regăsește numele unui index.
str indexId2Name(int tableid, int indexid)
Parametri
| Parametru | Descriere |
|---|---|
| tableid | ID-ul tabelului căruia îi aparține indexul. |
| indexid | ID-ul indexului. |
Valoare returnată
Numele indexului.
Exemplu
static void indexId2NameExample(Args _arg)
{
str s;
tableid id;
indexid idx;
id = tableName2Id("Address");
idx = indexName2Id(id, "AddrIdx");
s = indexId2Name(id, idx);
print "The result of calling indexId2Name is " + s;
}
indexName2Id
Regăsește ID-ul unui index.
int indexName2Id(int tableid, str indexname)
Parametri
| Parametru | Descriere |
|---|---|
| tableid | ID-ul tabelului căruia îi aparține indexul. |
| nume index | Numele indexului. |
Valoare returnată
ID-ul indexului.
Exemplu
static void indexName2IdExample(Args _arg)
{
indexid idx;
tableid id;
id = tableName2Id("Address");
idx = indexName2Id(id, "AddrIdx");
print "Index ID for index name AddrIdx of table Address is " + int2Str(idx);
}
tableId2Name
Regăsește un șir care conține numele unui tabel.
str tableId2Name(int _tableid)
Parametri
| Parametru | Descriere |
|---|---|
| _tableid | ID-ul tabelului. |
Valoare returnată
Numele tabelului.
Exemplu
static void tableId2NameExample(Args _arg)
{
str s;
tableid id;
// Get the ID for table name Address.
id = tableName2Id("Address");
print "ID for table name Address is " + int2Str(id);
// Get the name from the table ID.
s = tableId2Name(id);
print "Name for table ID " + int2Str(id) + " is " + s;
// Get the printable name from the table ID.
s = tableId2PName(id);
print "Printable name for table ID " + int2Str(id) + " is " + s;
}
tableId2PName
Regăsește un șir care conține numele imprimabil (eticheta) unui tabel.
str tableId2PName(int _fieldid)
Parametri
| Parametru | Descriere |
|---|---|
| _fieldid | ID-ul tabelului. |
Valoare returnată
Eticheta tabelului.
Exemplu
static void tableId2NameExample(Args _arg)
{
str s;
tableid id;
// Get the ID for table name Address.
id = tableName2Id("Address");
print "ID for table name Address is " + int2Str(id);
// Get the name from the table ID.
s = tableId2Name(id);
print "Name for table ID " + int2Str(id) + " is " + s;
// Get the printable name from the table ID.
s = tableId2PName(id);
print "Printable name for table ID " + int2Str(id) + " is " + s;
}
tableName2Id
Regăsește ID-ul unui tabel.
int tableName2Id(str _name)
Parametri
| Parametru | Descriere |
|---|---|
| _nume | Numele tabelului. |
Valoare returnată
ID-ul tabelului.
Exemplu
static void tableName2IdExample(Args _arg)
{
str s;
tableid id;
// Get the ID for the Address table name.
id = tableName2Id("Address");
print "ID for the Address table name is " + int2Str(id);
// Get the name from the table ID.
s = tableId2Name(id);
print "Name for table ID " + int2Str(id) + " is " + s;
// Get the printable name from the table ID.
s = tableId2PName(id);
print "Printable name for table ID " + int2Str(id) + " is " + s;
}
typeOf
Regăsește tipul unui element.
enum typeOf(anytype _object)
Parametri
| Parametru | Descriere |
|---|---|
| _obiect | Elementul pentru care se returnează tipul. |
Valoare returnată
O valoare de enumerare a sistemului Types .
Exemplu
Următorul exemplu testează dacă primul element dintr-un container, c, este un alt container care conține un singur număr întreg.
if(typeof(conpeek(c, 1)) != Types::Container ||
conlen(conpeek(c, 1)) != 1 ||
typeof(conpeek(conpeek(c, 1), 1)) != Types::Integer)
{
// More code.
}