Auswahlzeilenereignis
Business Portals kann ein Ereignis auslösen, wenn eine Zeile im Frontend ausgewählt wird. Diese Auswahl wird an Business Central gesendet, wo sie von einer benutzerdefinierten Codeunit verarbeitet werden kann, um Aktionen wie das Neuberechnen von Werten oder das Aktualisieren verwandter Daten durchzuführen.
Dieser Abschnitt bietet ein Beispiel dafür, wie man eine benutzerdefinierte Codeunit implementiert, die ausgelöst wird, wenn eine Zeile vom Benutzer ausgewählt wird.
Codebeispiel
In diesem Beispiel verwenden wir die Tabelle Verkaufsauftragszeilen in einem Szenario, in dem die Auswahl einer Zeile ein Ereignis auslöst, das beispielsweise verwandte Felder aktualisieren oder Validierungen durchführen kann.
Die Zeilenauswahl sendet Daten an Business Central, wo sie in einer Business Central-Codeunit verarbeitet werden.
'SELECTLINE':
begin
LocalEventXmlElement := XmlElement.Create('EVENT');
LocalRootXmlElement.Add(LocalEventXmlElement);
LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Alle Zeilen mit der gleichen Menge werden ausgewählt.');
LocalRootXmlElement.SetAttribute('EVENTMESSAGETYPE', 'default');
LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILE', 'Da dies ein Mehrfachauswahlfeld ist, geben Sie bitte einen Wert ein.');
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;