Uso di una query per creare un set di dati del report

Completato

Le query permettono di recuperare i record da una o più tabelle o origini dati per poi combinare i dati in righe e colonne in un unico set di dati. Le query consentono inoltre di eseguire calcoli sui dati, ad esempio trovare la somma o la media di tutti i valori in una colonna del set di dati.

Anziché creare il set di dati del report direttamente dalle tabelle, è anche possibile usare un oggetto query. A tale scopo, è necessario effettuare le seguenti operazioni:

  • Aggiunta di una variabile globale che punta all'oggetto query

  • Uso di un numero intero nella definizione dell'elemento dati

  • Aggiunta di trigger OnPreDataItem e OnAfterGetRecord

Di seguito è riportato un esempio di un oggetto query che recupera diversi campi dalla tabella Item:

al-languageCopy
query 70100 "Items"
{
    Caption = 'Items.Query';
    QueryType = Normal;

    elements
    {
        dataitem(Item; Item)
        {
            column(No; "No.") { }
            column(Description; Description) { }
            column("Type"; "Type") { }
            column(UnitPrice; "Unit Price") { }
            column(UnitCost; "Unit Cost") { }
            column(Inventory; Inventory) { }
        }
    }
}

L'esempio seguente mostra come usare questa query come origine dati per un set di dati del report.

al-languageCopy
report 70100 Items
{
    UsageCategory = ReportsAndAnalysis;
    ApplicationArea = All;
    Caption = 'Items based on Query';

    dataset
    {
        dataitem(Integer;Integer)
        {
            column(ItemNo; Items.No)
            {}
            column(Description; Items.Description)
            {}        
            column(Type; Items.Type)
            {}
            column(UnitCost; Items.UnitCost)
            {}
            column(UnitPrice; Items.UnitPrice)
            {}
            column(Inventory; Items.Inventory)
            {}

            trigger OnPreDataItem()
            begin
                Items.Open();
            end;

            trigger OnAfterGetRecord()
            begin
                if not Items.Read() then
                    CurrReport.Break();
            end;
        }
    }
    var
        Items: Query Items;
}

Per testare questo report, dal client Business Central è possibile esportare i risultati del report come dati non elaborati in un file di Microsoft Excel. Il file contiene tutte le colonne del set di dati, ma senza il layout applicato. Usare il file per verificare che il report restituisca i dati previsti e per assicurare che i controlli del layout del report corrispondano ai tipi di valore del set di dati. Per esportare un report, eseguirlo e selezionare Invia a > Documento di Microsoft Excel (solo dati) nella pagina della richiesta.