function filterExpositions() {
debugger;
console.log(/Début du filtrage des relevés d'exposition./);
// Récupérer l'ID du compte depuis le champ de recherche 'sfa_clientid'
var accountLookup = Xrm.Page.getAttribute('sfa_clientid').getValue();
var accountId = accountLookup ? accountLookup[0].id.replace('{', '').replace('}', '') : null;
console.log(/ID du compte récupéré depuis le champ 'sfa_clientid':/, accountId);
if (!accountId) {
console.log(/Aucun ID de compte trouvé, filtrage des relevés d'exposition non effectué./);
return;
}
var expositionGrid = Xrm.Page.getControl('Subgrid_new_3');
if (!expositionGrid) {
console.log(/Grille de relevé d'exposition non trouvée./);
return;
}
// Création du FetchXML avec l'ID de compte dynamique pour le filtrage
var fetchXml = /<fetch top='50'>/ +
/<entity name='sfa_relev'>/ +
/<attribute name='sfa_name' />/+
/ <attribute name='sfa_famille4' />/+
/ <attribute name='sfa_famille3' />/+
/<attribute name='sfa_famille2' />/+
/ <attribute name='sfa_famille1' />/+
/ <attribute name='sfa_famille5' />/+
/ <attribute name='sfa_mise_en_place' />/+
/ <attribute name='sfa_famille6' />/+
/ <order attribute='sfa_mise_en_place' descending='true' />/+
/ <attribute name='sfa_compte_to_releves' />/+
/<attribute name='ownerid' />/+
/ <attribute name='sfa_relevid' />/+
/<link-entity name='account' from='accountid' to='sfa_compte_to_releves'>/ +
/<filter>/ +
/<condition attribute='accountid' operator='eq' value='/ + accountId + /' />/ +
/</filter>/ +
/</link-entity>/ +
/</entity>/ +
/</fetch>/;
console.log(/FetchXML construit avec l'ID du compte dynamique:/, fetchXml);
// Application du FetchXML à la sous-grille et rafraîchissement de celle-ci
expositionGrid.setFilterXml(fetchXml);
expositionGrid.refresh();
console.log(/Grille de relevé d'exposition rafraîchie avec le nouveau filtre./);
// Rafraîchissement du contrôle 'Subgrid_new_3'
var subGrid = Xrm.Page.getControl(/Subgrid_new_3/);
if (subGrid) {
subGrid.refresh();
console.log(/Contrôle 'subGrid' rafraîchi./);
} else {
console.log(/Contrôle 'subGrid' non trouvé./);
}
}
// Écouteur d'événements pour appeler filterExpositions lorsque le formulaire est chargé
document.addEventListener(/DOMContentLoaded/, function() {
console.log(/Document chargé, appel de filterExpositions./);
filterExpositions();
});
and what i have in the consol:
Début du filtrage des relevés d'exposition.
ID du compte récupéré depuis le champ 'sfa_clientid': 15087B86-EDAB-EE11-BE37-000D3A28949E
sfa_owner:43 FetchXML construit avec l'ID du compte dynamique: <fetch top='50'><entity name='sfa_relev'><attribute name='sfa_name' /> <attribute name='sfa_famille4' /> <attribute name='sfa_famille3' /><attribute name='sfa_famille2' /> <attribute name='sfa_famille1' /> <attribute name='sfa_famille5' /> <attribute name='sfa_mise_en_place' /> <attribute name='sfa_famille6' /> <order attribute='sfa_mise_en_place' descending='true' /> <attribute name='sfa_compte_to_releves' /><attribute name='ownerid' /> <attribute name='sfa_relevid' /><link-entity name='account' from='accountid' to='sfa_compte_to_releves'><filter><condition attribute='accountid' operator='eq' value='15087B86-EDAB-EE11-BE37-000D3A28949E' /></filter></link-entity></entity></fetch>
sfa_owner:48 Grille de relevé d'exposition rafraîchie avec le nouveau filtre.
sfa_owner:54 Contrôle 'subGrid' rafraîchi.