Deselecteer Lijn Evenement
Business Portals kunnen een evenement triggeren wanneer een lijn op de frontend wordt gedeselecteerd. Deze actie wordt naar Business Central gestuurd, waar het kan worden afgehandeld door een aangepaste codeunit om updates terug te draaien, waarden te resetten of andere logica uit te voeren.
Deze sectie biedt een voorbeeld van hoe een aangepaste codeunit kan worden geïmplementeerd die wordt getriggerd wanneer een lijn door de gebruiker wordt gedeselecteerd.
Code Voorbeeld
In dit voorbeeld zullen we de Verkooporderlijn-tabel gebruiken in een scenario waarin het deselecteren van een lijn een evenement triggert dat bijvoorbeeld eerder bijgewerkte velden kan resetten of berekeningen kan terugdraaien.
De deselectie van de lijn stuurt gegevens naar Business Central, waar het wordt verwerkt in een Business Central codeunit.
'UNSELECTLINE':
begin
LocalEventXmlElement := XmlElement.Create('EVENT');
LocalRootXmlElement.Add(LocalEventXmlElement);
LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Alle lijnen met dezelfde hoeveelheid zullen worden geselecteerd.');
LocalRootXmlElement.SetAttribute('EVENTMESSAGETYPE', 'default');
LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILE', '');
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;