Creazione di parti di una pagina di attività
In Gestione ruolo utente, una pagina attività è quella in cui è possibile vedere le pile. Per creare una pagina attività, è necessario creare prima una tabella di origine. Queste tabelle sono chiamate tabelle Pila e in genere contengono molti FlowField, che calcolano i valori che possono essere visualizzati nel Gestione ruolo utente.
La chiave primaria di una tabella Pila è Chiave primaria e ha sempre un valore vuoto. La tabella Pila usa lo stesso tipo di chiave primaria delle tabelle di configurazione, il che significa che una tabella Pila può contenere solo un record e implementa il modello di struttura Singleton.
Quando un campo è configurato come FlowField, è possibile selezionare una pila per vedere i dettagli di tale calcolo. Queste pile verranno visualizzate in verde nella pagina Gestione ruolo utente. Se una pila viene visualizzata in grigio, non è possibile selezionarla perché viene calcolata con una funzione invece che con un FlowField.
table 1313 "Activities Cue"
{
Caption = 'Activities Cue';
fields
{
field(1; "Primary Key"; Code[10])
{
}
...
field(4; "Ongoing Sales Invoices"; Integer)
{
CalcFormula = Count ("Sales Header"
where("Document Type" = filter(Invoice)));
FieldClass = FlowField;
}
field(5; "Ongoing Purchase Invoices"; Integer)
{
CalcFormula = Count ("Purchase Header"
where("Document Type" = filter(Invoice)));
FieldClass = FlowField;
}
field(6; "Sales This Month"; Decimal)
{
}
field(7; "Top 10 Customer Sales YTD"; Decimal)
{
}
...
field(11; "Ongoing Sales Quotes"; Integer)
{
CalcFormula = Count ("Sales Header"
where("Document Type" = filter(Quote)));
FieldClass = FlowField;
}
field(12; "Requests to Approve"; Integer)
{
CalcFormula = Count ("Approval Entry"
where("Approver ID" = field("User ID Filter"),
Status = filter(Open)));
FieldClass = FlowField;
}
...
}
}
Per visualizzare le informazioni da una tabella Pila, è necessaria una pagina attività. Per creare una nuova pagina, si può usare il frammento tpage e impostare la proprietà PageType su CardPart. Una pagina attività è una CardPart standard; tuttavia, anziché usare un group, si dovrebbe usare un cuegroup. Tutti i campi che sono definiti all'interno di un cuegroup vengono visualizzati come pile su una pagina.
Una proprietà importante a livello di cuegroup è CuegroupLayout, dove si può definire se le pile vengono visualizzate con un layout ampio. Per usare il layout normale, omettere la proprietà CuegroupLayout. Il layout ampio viene usato per visualizzare grandi numeri finanziari, che non vengono visualizzati in un quadrato verde.
Il seguente esempio di codice mostra un frammento della pagina Attività usata nella schermata precedente.
page 1310 "O365 Activities"
{
Caption = 'Activities';
PageType = CardPart;
SourceTable = "Activities Cue";
layout
{
area(content)
{
cuegroup(Control54)
{
CueGroupLayout = Wide;
ShowCaption = false;
field("Sales This Month"; "Sales This Month")
{
DrillDownPageID = "Sales Invoice List";
trigger OnDrillDown()
begin
ActivitiesMgt.DrillDownSalesThisMonth;
end;
}
field("Overdue Sales Inv Amount"; "Overdue Sales Invoice Amount")
{
trigger OnDrillDown()
begin
ActivitiesMgt.DrillDownCalcOverdueSalesInvoiceAmount;
end;
}
}
cuegroup("Ongoing Sales")
{
Caption = 'Ongoing Sales';
field("Ongoing Sales Quotes"; "Ongoing Sales Quotes")
{
Caption = 'Sales Quotes';
DrillDownPageID = "Sales Quotes";
}
field("Ongoing Sales Orders"; "Ongoing Sales Orders")
{
Caption = 'Sales Orders';
DrillDownPageID = "Sales Order List";
}
field("Ongoing Sales Invoices"; "Ongoing Sales Invoices")
{
Caption = 'Sales Invoices';
DrillDownPageID = "Sales Invoice List";
}
}
cuegroup("Ongoing Purchases")
{
Caption = 'Ongoing Purchases';
field("Purchase Orders"; "Purchase Orders")
{
DrillDownPageID = "Purchase Order List";
}
field("Ongoing Purchase Invoices"; "Ongoing Purchase Invoices")
{
DrillDownPageID = "Purchase Invoices";
}
}
...
}
}
trigger OnOpenPage()
begin
// Implementing the Singleton Design Pattern
if not Get() then begin
Init();
Insert();
end;
end;
}