Esercizio - Uso delle funzioni predefinite
Si lavora presso CRONUS International Ltd. come sviluppatore e si vogliono testare le nuove nozioni acquisite sulle funzioni predefinite. Si vuole creare una pagina che calcoli i numeri di Armstrong (fino a 10000) e li visualizzi in una finestra di messaggio.
Un numero di Armstrong viene calcolato elevando ogni cifra alla potenza della cifra finale e creando una somma dei risultati.
Esempio: 153
1 elevato a potenza 3 = 1
5 elevato a potenza 3 = 125
3 elevato a potenza 3 = 27
Somma di 1, 125 e 27 = 153
Di conseguenza, 153 è un numero di Armstrong.
Nota
Ai fini di questo esercizio, non useremo la definizione ufficiale dei numeri Armstrong. La definizione ufficiale è che la potenza è il numero di cifre, non la cifra finale. Se si esegue una ricerca online per i numeri Armstrong, si troveranno una definizione e una soluzione diverse.
Attività
Creare una nuova pagina.
Creare il trigger OnOpenPage.
Definire le variabili per il calcolo dei numeri di Armstrong.
Scrivere la logica di calcolo.
Visualizzare il risultato in una finestra di messaggio.
Passaggi
Selezionare File > Nuovo file, quindi salvare il file selezionando File > Salva. Assegnare al file il nome ArmstrongCard.Page.al.
Creare una nuova pagina in questo file usando frammenti di codice. Immettere tpage e premere TAB.
Modificare ID in 50113 e name in Scheda Armstrong.
Impostare la proprietà PageType su Scheda e impostare la proprietà UsageCategory su Documenti.
Rimuovere la proprietà SourceTable e impostare la proprietà Caption su Scheda Armstrong.
Creare il trigger OnOpenPage nella definizione myInt. È possibile usare il frammento ttrigger.
Rimuovere la variabile myInt predefinita.
Creare le variabili locali seguenti nel trigger OnOpenPage:
Counter1 di tipo integer
CounterText Text[5]
Counter2 di tipo integer
PowerNumber di tipo integer
Number di tipo integer
Result di tipo integer
ResultList List of [Integer]
ArmstrongNumbers di tipo testo
Immettere il codice seguente tra il blocco begin ed end di OnOpenPage.
Esempio di codice
Ch10 := 10; Ch13 := 13; Newline := Format(Ch10) + Format(Ch13); for Counter1 := 0 to 10000 do begin CounterText := Format(Counter1); Evaluate(PowerNumber, CopyStr(CounterText, StrLen(CounterText), 1)); for Counter2 := 1 to StrLen(CounterText) do begin Evaluate(Number, CopyStr(CounterText, Counter2, 1)); Result += Power(Number, PowerNumber); end; if Result = Counter1 then ResultList.Add(Result); Clear(Result); end; foreach Counter1 in ResultList do ArmstrongNumbers += Newline + Format(Counter1); Message(ArmstrongNumbers);Rimuovere le azioni dalla pagina.
Rimuovere il gruppo dall'area del contenuto.
La pagina ora assomiglia alla seguente:
page 50113 "Armstrong Card" { PageType = Card; ApplicationArea = All; UsageCategory = Documents; Caption = 'Armstrong Card'; layout { area(Content) { } } trigger OnOpenPage() var Counter1, Counter2, PowerNumber, Number, Result : Integer; CounterText: Text[5]; ArmstrongNumbers, Newline : Text; ResultList: List of [Integer]; Ch10, Ch13 : Char; begin Ch10 := 10; Ch13 := 13; Newline := Format(Ch10) + Format(Ch13); for Counter1 := 0 to 10000 do begin CounterText := Format(Counter1); Evaluate(PowerNumber, CopyStr(CounterText, StrLen(CounterText), 1)); for Counter2 := 1 to StrLen(CounterText) do begin Evaluate(Number, CopyStr(CounterText, Counter2, 1)); Result += Power(Number, PowerNumber); end; if Result = Counter1 then ResultList.Add(Result); Clear(Result); end; foreach Counter1 in ResultList do ArmstrongNumbers += Newline + Format(Counter1); Message(ArmstrongNumbers); end; }Aprire il file launch.json nella cartella .vscode. Impostare startupObjectId su 50113 e startupObjectType su Pagina.
Pubblicare l'estensione nella sandbox. Selezionare Visualizza > Riquadro comandi... oppure usare i tasti di scelta rapida CTRL+MAIUSC+P.
Immettere AL: Publish nella casella di ricerca (o premere F5) e selezionare il comando dall'elenco.
Verificare che l'applicazione Microsoft Dynamics 365 Business Central venga avviata e che sia visualizzata la pagina Scheda Armstrong.
Verificare che la finestra di messaggio mostri quattro numeri: 1, 153, 1634, 9474.