Esercizio - Uso delle funzioni predefinite

Completato

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

  1. Selezionare File > Nuovo file, quindi salvare il file selezionando File > Salva. Assegnare al file il nome ArmstrongCard.Page.al.

  2. Creare una nuova pagina in questo file usando frammenti di codice. Immettere tpage e premere TAB.

  3. Modificare ID in 50113 e name in Scheda Armstrong.

  4. Impostare la proprietà PageType su Scheda e impostare la proprietà UsageCategory su Documenti.

  5. Rimuovere la proprietà SourceTable e impostare la proprietà Caption su Scheda Armstrong.

  6. Creare il trigger OnOpenPage nella definizione myInt. È possibile usare il frammento ttrigger.

  7. Rimuovere la variabile myInt predefinita.

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

  9. 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);
    
  10. Rimuovere le azioni dalla pagina.

  11. Rimuovere il gruppo dall'area del contenuto.

  12. 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;
    } 
    
  13. Aprire il file launch.json nella cartella .vscode. Impostare startupObjectId su 50113 e startupObjectType su Pagina.

  14. Pubblicare l'estensione nella sandbox. Selezionare Visualizza > Riquadro comandi... oppure usare i tasti di scelta rapida CTRL+MAIUSC+P.

  15. Immettere AL: Publish nella casella di ricerca (o premere F5) e selezionare il comando dall'elenco.

  16. Verificare che l'applicazione Microsoft Dynamics 365 Business Central venga avviata e che sia visualizzata la pagina Scheda Armstrong.

  17. Verificare che la finestra di messaggio mostri quattro numeri: 1, 153, 1634, 9474.