Kopīgot, izmantojot


Power FxYAML formulas gramatika

Piezīmes

Microsoft Power Fx ir pamatnes programmu formulas valodas jaunais nosaukums. Šie raksti darbojas, kad izvelk valodu no pamatnes programmām, integrējot to ar citiem Microsoft Power Platform produktiem un padarām to pieejamu kā atvērtu avotu. Sāciet ar Microsoft Power Fx pārskatu par valodas ievadu.

Microsoft Power Fx programmai ir veiksmīgi izveidotas izteiksmes, kas balstītas uz Programmu Excel. Tomēr, izmantojot to programmā Power Apps un citos resursdatoros, kur UI nodrošina formulas saistīšanu no vārda līdz izteiksmei, formulas saistīšanas kā teksta rediģēšanas nav standarta veida.

Mēs kā mūsu valodu šim barjeram atlasījām nozares standarta YAML. Darbam ar YAML ir jau liels skaits rediģētāju, rīku un bibliotēku. Šajā rakstā ir aprakstīts, kā mēs attēlojam formulas YAML.

Šobrīd mēs atbalstam tikai ierobežotu YAML apakškopu. Tiek atbalstītas tikai šajā rakstā aprakstītās konstruētās būves.

Šeit nav attēlots viss, kas definē pamatnes lietojumprogrammu; papildinformācija plūst caur citiem failiem, kurus rīks rada un kas sniedz papildu informāciju.

Pirms vienādības zīmes

Vispirms, visām izteiksmēm ir jāsākas ar vadošu vienādības =zīmi:

Visible: =true
X: =34
Text: |
	="Hello, " &
	"World"

Mēs izmantojam = šādā veidā trīs iemeslu dēļ:

  • Tā ir saderīga ar programmu Excel, kurā tiek izmantota funkcija, kas izraisa izteiksmes =saistīšanu šūnā.
  • Tas faktiski pārstās formulas valodas sintaksi, lai YAML nemēģina to parsēt. Kā parasti YAML text: 1:00 uzslavēsies kā minūtes un sekundes, pārvēršot to par skaitli. Ievietojot iespēju =, YAML netiks lietotas tās netiešās rakstīšanas kārtulas un formulas. = lietošana aptver vairumu gadījumu, bet ne visus, un šie izņēmumi ir aprakstīti nākamajā sadaļā Vienas rindiņas formulas.
  • Turpmāk mēs tajā pašā failā atbalstīsim gan formulas (sākas ar =), gan ar formulām (nav =), tāpat kā Excel to var izdarīt Varam veikt ar YAML un failiem, kas nav YAML, visos Microsoft Power Platform avota failos. Jebkur, kur tiek atbalstīta formula, vadošais = atšķir Power Apps formulas izteiksmes no statiskas skalāras vērtības.

Vienas rindiņas formulas

Vienas rindiņas formulas tiek rakstītas veidlapā:

Nosaukuma:SPACE=izteiksme

Atstarpe starp kolu un vienādības zīmi ir nepieciešama, lai tā atbilstu YAML. Vienādības apzīmējums tiek uzskats, ka YAML tiek nodrošināts parasts izteiksmes pārskats, tādējādi pārējās līnijas pārējās rindiņas ļaujot tikt interpretētas kā Power Fx. Piemēram:

Text1: ="Hello, World"
Text2: ="Hello " & ", " & "World"
Number1: =34
Boolean1: =true
Time1: =1:34

Skaitļa zīmi # un kolu : nevar izmantot nekur vienas rindiņas formulās, pat ja tie ir kopētā teksta virknē vai ar identifikatora nosaukumu. Lai izmantotu skaitļa zīmi vai kolu, formula ir jāizsaka kā daudzrindu formula. Skaitļa apzīmējums tiek interpretēts kā YAML komentārs, bet kols tiek interpretēts kā jauns nosaukuma kartējums laukā YAML. Lai vienas rindiņas komentāram pievienotu komentāru, izmantojiet Power Fx rindiņas komentāru, kas sākas ar .//.

Netiek atbalstīta parasta YAML atsole ar vienpēdiņām un C veida apgrieztajām slīpsvītrām. Tā vietā izmantojiet daudzrindu formulas. Tas ir konsekvences nolūkos un lai atvieglotu izgriešanu/ielīmēšanu starp formulas joslu Power Apps Studio un YAML avota failiem.

Detalizētu informāciju par atļautajiem nosaukumiem un izteiksmes struktūru skatiet audekla programmu operatoru un identifikatoru dokumentācijā.

Daudzrindu formulas

Formulas var aptvert vairākas rindiņas, izmantojot YAML bloka mērogošanas rādītājus:

Name:SPACE ( | vai |+ vai |- ) =Expression-LineExpression-Line ...

Visām līnijām, kas ir daļa no bloka, ir jābūt atkāpei vismaz vienu atstarpi no pirmās rindas līmeņa.

Piemēram:

Text1: |
    ="Hello, World"
Text2: |
    ="Hello" &
    "," &
    "World"

Importējot tiek pieņemtas visas YAML daudzrindu mērogošanas notācijas, tostarp arī, piemēram, >+. Tomēr, lai nodrošinātu atstarpju pareizu saglabāšanu, tiek izveidotas tikai |, |+ vai |-.

Komponenta instance

Komponenti tiek instancēti, izmantojot YAML objektu notācijas. Objekta tips tiek izveidots ar operatoru As kā daļu no kreisās puses YAML atzīmes. Konteineru vadīklām objektus var ligzdot.

nosaukumsAskomponents-tips [ .komponents-veidne ] : ( vienrindas formula vai vairākrindu formula vai objekta instance ) ...

Visām līnijām, kas ir daļa no bloka, ir jābūt atkāpei vismaz vienu atstarpi no pirmās rindas līmeņa.

Piemēram:

Gallery1 As Gallery.horizontalGallery:
    Fill: = Color.White
    Label1 As Label:
        Text: ="Hello, World"
        X: =20
        Y: =40
        Fill: |
            =If( Lower( Left( Self.Text, 6 ) ) = "error:",
                Color.Red,
                Color.Black
            ) 

Komponenta tips var būt jebkurš audekla komponents vai vadīkla. Pamattipi, piemēram, Skaitlis, netiek atbalstīti.

Komponents-veidne ir neobligāts apzīmētājs komponentiem, kuriem ir dažādas veidnes, piemēram, galerijai. Ne visiem komponentiem ir veidnes.

Ja Nosaukumā ir speciālās rakstzīmes un tas ir aplauzts ar vienpēdiņām, visa frāze būs jāpārnes uz kola kreiso pusi. To var izdarīt vienā no šādiem veidiem:

  • Lietojiet vienpēdiņas, lai aplauztu visu kreiso pusi, tādēļ esošās vienpēdiņas jāizmanto divas reizes:
    '''A name with a space'' As Gallery':
    
  • Lietojiet dubultpēdiņas, lai aplauztu visu kreiso pusi, taču pārliecinieties, vai nosaukumā nav dubultpēdiņu:
    "'A name with a space' As Gallery":
    

Komponenta definīcija

Līdzīgi arī komponenti tiek definēti, izveidojot instanci ar kādu no atbalstītajiem pamattipiem. Pamattipiem nevar būt tieša instance. Objekta definīcijā rekvizītus var pievienot tam, ko nodrošina pamattips.

Atbalstītie pamattipi ir: CanvasComponent

Vienkārša rekvizīta definīcija

Komponenti lieto rekvizītus, lai sazinātos ar lietojumprogrammu, kurā tie tiek viesoti.

nosaukums: ( vienrindas izteiksme vai vairākrindu izteiksme )

Formulas tipu netieši norāda izteiksmes tips.

Ievades rekvizītiem izteiksme nodrošina noklusējuma ievietošanu lietojumprogrammā, kad komponents tiek instancēts. Veidotājs šo izteiksmi var modificēt tā, lai tā būtu piemērota, bet nevar mainīt šo tipu.

Izvades rekvizītiem izteiksme nodrošina veicamo aprēķinu. Veidotājs nevar modificēt šo izteiksmi, tā ir iekapsulēta komponentā.

Šobrīd visi rekvizīti ir tikai datu plūsma un tajos nevar būt blakusefekti.

Šobrīd šeit nav definēti papildu metadati par rekvizītu, bet tā vietā tie tiek definēti citos faila .msapp failos, piemēram, rekvizīta aprakstu.

Piemēram:

DateRangePicker As CanvasComponent:
    DefaultStart: |-
		=// input property, customizable default for the component instance
		Now()                      
    DefaultEnd: |-
		=// input property, customizable default for the component instance
		DateAdd( Now(), 1, Days )    
    SelectedStart: =DatePicker1.SelectedDate   // output property
    SelectedEnd: =DatePicker2.SelectedDate     // output property

YAML saderība

YAML komentāri

YAML rindas komentāri, kurus neierobežo skaitļa zīme #, nekur netiek saglabāti avota formātā. Tā vietā formulas ietvaros norobežojiet rindu komentārus ar rakstzīmēm // vai bloķējiet komentārus ar /* un */. Papildinformācija: Komentāri

Biežāk izplatītās kļūdas

Ir dažas vietas, kur Power Fx un YAML gramatika nav savietojama vai var samulsināt lietotāju. Šajos gadījumos rodas kļūda.

Piemēram:

Text: ="Hello #PowerApps"
Record: ={ a: 1, b: 2 }

Numura zīme # tiek uztverta par YAML komentāru, lai gan tā ir iegulta programmā, ko Excel uzskata par teksta virkni (aplauzta ar dubultpēdiņām). Lai izvairītos no neizpratnes, importēšanas laikā šis pieteikums radīs kļūdu. Tā vietā var izmantot YAML daudzrindu veidlapu.

Runājot par lauka record vērtību, YAML uzskatīs a: un b: par vēl viensaistošu nosaukuma kartēšanu. YAML ļauj atkārtoti izmantot to pašu nosaukuma karti, bet pēdējai jāignorē jebkādas iepriekš noteiktas definīcijas. Tā kā var rasties neizpratne zema koda veidotājiem un veidot rekvizītu formulas zaudējumus, tiks parādīta kļūda, ja viens un tas pats nosaukums parādīsies divas reizes.