Partekatu honen bidez:


Idatzi gabeko objektuaren datu mota

Idatzi gabeko objektua Power Fx edozein datu-egitura eduki dezakeen datu-mota da, konplexua edo sinplea. Ezin da zuzenean erabili eta datu-mota esplizituki bihurtzea eskatzen du. Idatzi gabeko objektu bateko erregistroetako eremuak puntu-idazkera erabiliz atzi daitezke, eta eremuen existentzia exekuzioan soilik egiaztatzen da.

Idatzi gabeko objektua Idatzi gabeko hornitzaile espezifikoen itzulera mota da. Une honetan, ParseJSON() funtzioak soilik idatzi gabeko objektua itzultzen du.

Mota soilak

Idatzi gabeko objektu motako aldagai baten balioa ezin da zuzenean erabili. Beti idatzi behar duzu dagokion mota-eraikitzailea erabiliz.

Ondorengo adibideek idatzi gabeko objektu izeneko UOValue aldagai baten balioa bihurtzen dute.

Text(UOValue)
Value(UOValue)

Ondorengo taulan datu motak eta dagozkion funtzioak zerrendatzen dira idatzi gabeko objektua datu mota horretara bihurtzeko.

Datu mota Function Deskribapenak
Boolean Boolear() Idatzi gabeko objektuaboolear bihurtzean, azpian dagoen balioak boolear bat edo automatikoki izan daitekeen mota bat irudikatu behar du. bihurtuta (adibidez, kate bat "egia").
Kolorea ColorValue() edo RGBA() Koloreak Cascading Style Sheet (CSS) kolore-definizio-notazioan irudika daitezke kate gisa edo RGBA osagai indibidual gisa. Idatzi gabeko objektua Cascading Style Sheet (CSS) kolore-definizio kate batetik zuzenean bihur daiteke ColorValue() funtzioa edo RGBA zenbaki indibidualetatik koloreetara RGBA() funtzioa erabiliz.
Moneta, zenbaki Value() Idatzi gabeko objektuazenbakia bihurtzean, azpiko balioak automatikoki izan daitekeen zenbaki edo mota bat irudikatu behar du. bihurtuta (adibidez, "123.456" katea).
Data, DateTime, denbora DateValue(), TimeValue() edo DateTimeValue() Data, ordua eta data-ordu idatzi gabeko objektutik dagokion motara zuzenean bihur daitezke, ISO 8601 formatuan irudikatzen direnean. Lehenik eta behin, beste formatuak testu bihurtu behar dira Testua() funtzioa erabiliz eta ondoren DateValue(), TimeValue() edo DateTimeValue() funtzioa lehenespenez uneko erabiltzailearen ezarpenen hizkuntza erabiliko du data eta ordua interpretatzeko.
GUIDa GUID() Idatzi gabeko objektua zuzenean GUID bihur daiteke azpiko objektuak GUID bat adierazten badu edo kate bat adierazten badu.
HyperLink, Irudia, Media Testua() Datu-mota hauek testu-datu motak dira, eta testu bihurtu eta gero Power Fx erabil daitezke.
Aukera, Bi aukera Switch() edo If() Aukerak eta bi aukera kate lokalizatu gisa aurkezten dira Power Fx. Aukerak zenbaki batekin babesten dira eta bi aukera boolear gisa. Ez dago bihurketa zuzena boolear, zenbakia edo katea aukera edo bi aukera, baina Switch() edo If() funtzioan erabil daitezke boolear, testua edo zenbakiaren balioa zuzen esleitzeko aukera edo bi aukera balioa.
Grabatu e/e Ez dago bihurketa zuzena idatzi gabeko objektua erregistratzeko egitrua, baina indibidualak eremuak berreskura daitezke idatzi gabeko objektua sortzeko erregistro berria.
Erregistroaren erreferentzia e/e Erregistro-erreferentziak datu-iturburuetarako esklusiboak dira eta ez dute irudikapen esanguratsurik idatzi gabeko objektuak.
Table Table() eta ForAll() Bat idatzi gabeko objektua matrize bat irudika dezake, eta taula batean bihur daiteke. Objektu hauek erregistro-matrizeak izan daitezke, edo zutabe bakarreko taulak diren balio-matrizeak. ForAll() erabil daiteke sortzeko taula osorik idatzitako erregistroak. Berrikusi artikulu honetan beheragoko adibideak informazio gehiago lortzeko.
Testu-mezua Testua() Testua zuzenean bihur daiteke. Bada bat idatzi gabeko objektua ordezten duen zenbakia, bihurtu behar duzu idatzi gabeko objektua hurrengora zenbakiaren lehenengo erabilita Value() testura bihurtu aurretik.

Erregistro motak

Sarbide-eremuak aldagaia ordeztuz idatzi gabeko objektua erregistroa erabiliz erregularra oharra erabilia erregistroetarako. Hala ere, eremuen existentzia ez da egiaztatuko exekuzio garaira arte. Ondorioz, intellisense ere ez dago eskuragarri. Eremu bat ez bada existitzen edo azpiko nulua balioa, sartzera izango da Blank() balioa.

Eremu bakoitza erregistroan mota da idatzi gabeko objektua, eta behar du behar bezala idatzita egotea. Eremua mota bakuneko idatzi gabeko erregistro bat izan daiteke. Erregistro bat bada, puntu-notazioa kateatu dezakezu. Eremurik katean ez bada existitzen, Blank() itzuliko da.

Adibide honek erabiltzen ditu eremuak idatzi gabeko objektu batetik aldagaia izena duena UORecord.

Text(UORecord.StringField)
Value(UORecord.Field.ChildField)

Eremu-izenak identifikatzaile-izen baliogabe batez osatuta dagoenean, adibidez eremu-izenak zenbaki batekin hasten direnean edo marratxo bat bezalako karaktere baliogabeak dituenean, eremu-izenak komatxo bakarrean jar ditzakezu:

untyped.'01'
untyped.'my-field'

Matrizeak

Bat idatzi gabeko objektua aldagaia eduki dezake matrize bat. Nahiz eta matrizea erregistro-maiz bat edo mota sinple-matrizea izan daitekeen idatzi gabeko objektua matrizea taularako erabilita Table() funtzioa beti emaitza zutabe bakarreko taula idatzi gabeko objektuak. Funtzioak esaterako ForAll() eta Index() ez du behar lehenik sortzea Table() eta emaitzak ez du behar erabiltzea zutabe bakarra Value eremua,

Adibidez, lortu bigarren zenbakia matrizea idatzi gabeko objektua barne hartuz zenbakia balioak ( [1, 2, 3] ), formula honek erabil dezake berreskuratzeko bigarren errenkada taulan eta bihurtu zutabea zenbakira:

Value( Index( UOArray, 2 ) )

Bada idatzi gabeko objektua bihurtu zen Table() lehenik, bigarren errenkada zutabe bakarreko emaitzaren taula da Value zutabea barne hartzen du idatzi gabeko objektua:

Value( Index( Table( UOArray ), 2 ).Value )

Fieldizeneko testu-zutabea duten erregistro-matrize baterako, logika bera aplikatzen da. Idatzi gabeko objektua zuzenean sar daiteke, edo Taula() funtzioa erabiliz gero idatzi gabeko objektua zutabe-taula.

Field zutabeak atzi daiteke zuzenean idatzi gabeko objektua itzuli Index() funtzioa.

Text( Index( UORecordArray, 2 ).Field )

Erabiltzean Table() funtzioa, lehenik berreskuratu zutabe bakarra Value zutabea lortzeko idatzi gabeko objektua, gero atzitu Field zutabea:

Text( Index( Table( UORecordArray ), 2 ).Value.Field )

Bihurtu matrizea erregistroak idatzitako taula, erabil dezakezu ForAll() funtzioa eta bihurtu eremu indibidual bakarra.

ForAll( UORecordArray, { FirstField: Value(ThisRecord.FirstField), SecondField: Text(ThisRecord.SecondField) } )

Bada idatzi gabeko objektua lehena bihurtutako taulara, berriro, emaitza zutabe bakarreko taula idatzi gabeko objektua behartzen du erabiltzea Value zutabea eremuak lortzeko.

ForAll( Table(UORecordArray), { FirstField: Value(ThisRecord.Value.FirstField), SecondField: Text(ThisRecord.Value.SecondField) } )