I am trying to ask a user for a password if it tries to enter unit price below a threshold.
I do this through a StandardDialog page and trying to write the logic to tackle the Cancel and Ok Button.
pageextension 50144 MyExtension extends "Sales Order Subform"
{
layout
{
modify("Unit Price")
{
trigger OnAfterValidate()
var
rec_Item: Record Item;
rec_SalesSetup: Record "Sales & Receivables Setup";
rec_Set: Record "Sales & Receivables Setup";
recSO: Record "Sales Line";
begin
rec_SalesSetup.Get();
rec_Item.Get(Rec."No.");
IF (Rec."Unit Price" < rec_Item."Unit Cost") AND (rec_SalesSetup."Allow Negative Unit Price" = true) then begin
Clear(myPage);
IF myPage.RunModal() = Action::Cancel then begin
rec_Item.Reset();
rec_Item.Get(Rec."No.");
recSO.SetFilter("Document No.", Rec."Document No.");
recso.SetRange("Line No.", Rec."Line No.");
recSO.SetFilter("No.", Rec."No.");
IF recSO.FindFirst() then begin
Rec."Unit Price" := rec_Item."Unit Cost";
CurrPage.Update();
end;
end
else
IF myPage.RunModal() = Action::Ok then begin
rec_Item.Reset();
IF Password = rec_Set.Password then
CurrPage.Close()
end;
END;
end;
}
var
myPage: Page Password;
}
Here is the StandardDialog page which has 1) page field that is just a variable. We don't need to store this value hence it is to just check for the password against the Password field I created extending the Sales & Receivable Setup page and table.
page 50140 Password
{
PageType = StandardDialog;
ApplicationArea = All;
UsageCategory = Administration;
// SourceTable = ;
layout
{
area(Content)
{
field(Password; Password)
{
ApplicationArea = All;
}
}
}
var
Password: Text[10];
}
The problem is in the
IF myPage.RunModal() = Action::Ok then begin
I can't access the Password page field. How do I access this field's value so my
IF myPage.RunModal() = Action::Ok then begin
rec_Item.Reset();
IF Password = rec_Set.Password then
CurrPage.Close()
end;
code works. Right now it doesn't recognize Password