Page 8617 Config. Package Import Preview, source in 29
Source29
src/Layers/W1/BaseApp/System/RapidStart/ConfigPackageImportPreview.Page.al152 lines, Copyright (c) Microsoft Corporation. MIT
namespace System.IO;
page 8617 "Config. Package Import Preview"
{
Caption = 'Config. Package Import Preview';
Editable = false;
PageType = List;
ShowFilter = false;
SourceTable = "Config. Package Table";
SourceTableTemporary = true;
layout
{
area(content)
{
group("Import Configuration Package Data from Excel")
{
Caption = 'Import Configuration Package Data from Excel';
group(Control11)
{
InstructionalText = 'Data in the Excel file will be imported for the following packages and tables:';
ShowCaption = false;
group(Control10)
{
InstructionalText = 'Review the package codes and tables in the list. If a configuration package with this code does not exist, it will be created. If it does exist, its data may be overwritten.';
ShowCaption = false;
group(Control9)
{
InstructionalText = 'Choose the Import action to proceed.';
ShowCaption = false;
}
}
}
}
repeater(Group)
{
field("Package Code"; Rec."Package Code")
{
ApplicationArea = Basic, Suite;
StyleExpr = PackageStyleExpr;
ToolTip = 'Specifies the code for the package that data will be imported to.';
}
field("New Package"; Rec."Delayed Insert")
{
ApplicationArea = Basic, Suite;
Caption = 'New Package';
ToolTip = 'Specifies if a package with this code does not exist already.';
}
field("Table ID"; Rec."Table ID")
{
ApplicationArea = Basic, Suite;
StyleExpr = TableStyleExpr;
ToolTip = 'Specifies the table ID.';
}
field("Table Name"; Rec."Table Name")
{
ApplicationArea = Basic, Suite;
StyleExpr = TableStyleExpr;
ToolTip = 'Specifies the table name.';
}
field("New Table"; Rec.Validated)
{
ApplicationArea = Basic, Suite;
ToolTip = 'Specifies if the package does not include data for this table.';
}
}
}
}
actions
{
area(creation)
{
action(Import)
{
ApplicationArea = Basic, Suite;
Enabled = IsImportEnabled;
Image = ImportExcel;
ToolTip = 'Import the selected sheets with configuration package data from an Excel file.';
trigger OnAction()
begin
VerifyPackageCode();
ImportConfirmed := true;
CurrPage.Close();
end;
}
}
area(Promoted)
{
group(Category_Process)
{
Caption = 'Process';
actionref(Import_Promoted; Import)
{
}
}
}
}
trigger OnAfterGetRecord()
begin
PackageStyleExpr := GetStyle(Rec."Delayed Insert");
TableStyleExpr := GetStyle(Rec.Validated);
end;
trigger OnOpenPage()
begin
IsImportEnabled := not Rec.IsEmpty();
end;
var
ImportConfirmed: Boolean;
IsImportEnabled: Boolean;
PackageStyleExpr: Text;
SelectedPackageCode: Code[20];
TableStyleExpr: Text;
PackageCodeMustMatchErr: Label 'The package code in all sheets of the Excel file must match the selected package code, %1. Modify the package code in the Excel file or import this file from the Configuration Packages page to create a new package.', Comment = '%1 - package code';
local procedure GetStyle(New: Boolean): Text
begin
if New then
exit('Favorable');
exit('Unfavorable');
end;
procedure SetData(NewSelectedPackageCode: Code[20]; var TempConfigPackageTable: Record "Config. Package Table" temporary)
begin
SelectedPackageCode := NewSelectedPackageCode;
Rec.Copy(TempConfigPackageTable, true);
end;
procedure IsImportConfirmed(): Boolean
begin
exit(ImportConfirmed);
end;
local procedure VerifyPackageCode()
var
TempConfigPackageTable: Record "Config. Package Table" temporary;
begin
if SelectedPackageCode <> '' then begin
TempConfigPackageTable.Copy(Rec, true);
TempConfigPackageTable.SetFilter("Package Code", '<>%1', SelectedPackageCode);
if not TempConfigPackageTable.IsEmpty() then
Error(PackageCodeMustMatchErr, SelectedPackageCode);
end;
end;
}