Select Line Event
Business Portals kunnen een gebeurtenis activeren wanneer een regel op de frontend is geselecteerd. Deze selectie wordt naar Business Central gestuurd, waar het kan worden verwerkt door een aangepaste codeunit om acties uit te voeren zoals het herberekenen van waarden of het bijwerken van gerelateerde gegevens.
Deze sectie biedt een voorbeeld van hoe een aangepaste codeunit kan worden geïmplementeerd die wordt geactiveerd wanneer een regel door de gebruiker is geselecteerd.
Code Voorbeeld
In dit voorbeeld zullen we de Sales Order Line-tabel gebruiken in een scenario waarin het selecteren van een regel een gebeurtenis activeert die bijvoorbeeld gerelateerde velden kan bijwerken of validaties kan uitvoeren.
De regelselectie stuurt gegevens naar Business Central, waar het wordt verwerkt in een Business Central codeunit.
'SELECTLINE':
begin
LocalEventXmlElement := XmlElement.Create('EVENT');
LocalRootXmlElement.Add(LocalEventXmlElement);
LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Alle regels met dezelfde hoeveelheid zullen worden geselecteerd.');
LocalRootXmlElement.SetAttribute('EVENTMESSAGETYPE', 'default');
LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILE', 'Aangezien dit een meerkeuzeveld is, voer alstublieft een waarde in.');
LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILETYPE', 'default');
if Evaluate(LocalRecordId, LocalEventValueText, 9) then
if LocalRecordRef.Get(LocalRecordId) then begin
LocalRecordRef.SetTable(LocalRecordSalesLine);
Local2RecordSalesLine.SetRange("Document Type", LocalRecordSalesLine."Document Type");
Local2RecordSalesLine.SetRange("Document No.", LocalRecordSalesLine."Document No.");
Local2RecordSalesLine.SetRange(Quantity, LocalRecordSalesLine.Quantity);
if Local2RecordSalesLine.FindSet() then
repeat
LocalInfoXmlElement := XmlElement.Create('INFO');
LocalEventXmlElement.Add(LocalInfoXmlElement);
LocalInfoXmlElement.SetAttribute('VALUE', Format(Local2RecordSalesLine.RecordId, 0, 9));
until Local2RecordSalesLine.Next() = 0;
end;
end;