Événement de Désélection de Ligne
Les Portails d'Affaires peuvent déclencher un événement lorsqu'une ligne est désélectionnée sur le frontend. Cette action est envoyée à Business Central, où elle peut être gérée par un codeunit personnalisé pour inverser des mises à jour, réinitialiser des valeurs ou effectuer d'autres logiques.
Cette section fournit un exemple de la façon d'implémenter un codeunit personnalisé qui est déclenché lorsqu'une ligne est désélectionnée par l'utilisateur.
Exemple de Code
Dans cet exemple, nous utiliserons la table des Lignes de Commande de Vente dans un scénario où la désélection d'une ligne déclenche un événement qui peut, par exemple, réinitialiser des champs précédemment mis à jour ou revenir sur des calculs.
La désélection de la ligne envoie des données à Business Central, où elles sont traitées dans un codeunit de Business Central.
'UNSELECTLINE':
begin
LocalEventXmlElement := XmlElement.Create('EVENT');
LocalRootXmlElement.Add(LocalEventXmlElement);
LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Toutes les lignes avec la même quantité seront sélectionnées.');
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;