Я хочу скрыть поле «Другая причина», если поле «Причина» имеет значение «Другое». См. следующее расширение страницы, чтобы увидеть поля страницы.
pageextension 50101 CJ_PurchaseReturnOrder extends "Purchase Return Order"
{
layout
{
addlast(General)
{
field("TO Code"; Rec."TO Code")
{
ApplicationArea = all;
TableRelation = "Transfer Header";
}
field("Item Journal Code"; Rec."Item Journal Code")
{
ApplicationArea = all;
TableRelation = "Item Journal Line";
}
field("Reason"; Rec.Reason)
{
ApplicationArea = all;
}
field("Other Reason"; Rec."Other Reason")
{
ApplicationArea = all;
}
}
}
}
Я попытался решить эту проблему с помощью следующего кода:
pageextension 50101 CJ_PurchaseReturnOrder extends "Purchase Return Order"
{
layout
{
addlast(General)
{
field("TO Code"; Rec."TO Code")
{
ApplicationArea = all;
TableRelation = "Transfer Header";
}
field("Item Journal Code"; Rec."Item Journal Code")
{
ApplicationArea = all;
TableRelation = "Item Journal Line";
}
field("Reason"; Rec.Reason)
{
ApplicationArea = all;
}
field("Other Reason"; Rec."Other Reason")
{
ApplicationArea = all;
Enabled = EnableToCode;
}
}
}
var
EnableToCode: Boolean;
trigger OnAfterGetRecord()
begin
if Rec.Reason = Rec.Reason::Other then
EnableToCode := true
else
EnableToCode := false;
end;
}
Я ожидаю, что поле скроется, если поле текущей записи имеет значение «Rec.Reason::Other». Чего мне не хватает, чтобы скрыть поле? Заранее спасибо.
Требуются изменения форматирования.





у вас почти есть решение, потому что вам нужно использовать только правильное свойство: Visible (https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/properties/devenv- видимое свойство)
pageextension 50101 CJ_PurchaseReturnOrder extends "Purchase Return Order"
{
layout
{
addlast(General)
{
field("TO Code"; Rec."TO Code")
{
ApplicationArea = all;
TableRelation = "Transfer Header";
}
field("Item Journal Code"; Rec."Item Journal Code")
{
ApplicationArea = all;
TableRelation = "Item Journal Line";
}
field("Reason"; Rec.Reason)
{
ApplicationArea = all;
}
field("Other Reason"; Rec."Other Reason")
{
ApplicationArea = all;
Visible = OtherReasonIsVisible;
}
}
}
var
OtherReasonIsVisible: Boolean;
trigger OnAfterGetRecord()
begin
if Rec.Reason = Rec.Reason::Other then
OtherReasonIsVisible := true
else
OtherReasonIsVisible := false;
end;
}
Существует дополнительная информация, о которой часто забывают, поэтому я хочу упомянуть ее здесь: если вы пытаетесь динамически настроить видимость поля страницы, вам необходимо переместить поле в группу и использовать свойство видимости группы, чтобы динамически показывать/скрывать поле страницы (см.: Динамическая видимость элементов управления)
Не могли бы вы отформатировать код, пожалуйста? Читабельнее будет :)