Formulaire vitis - champ section_grid
Salut,
J'ai trouvé un bug sur les champs de type section_grid, le filtre n'est pas appliqué sur la liste bien que les paramètres form_filter_value et section_filter_attr soient définis (on a tous les enregistrements alors qu'on devrait avoir uniquement ceux associé à l'enregistrement parent). Pourtant le filtre s'applique bien en search et en insert.
Comme je suis un génie, j'ai corrigé le problème tout seul ;) Voici comment j'ai corrigé : Dans la directive de formReader ...\src\vitis\client\javascript\externs\formReader\formReaderDrtv.js Dans initSectionSubformGrid, la fonction getSectionRessourceData a deux paramètres, le deuxième étant le filtre et dans la plupart des cas il n'y a qu'un paramètre de passé !
Donc j'ai créé une variable sFilter comme pour initBoSubformGrid :
// Filtre composant (défini par field.bo_filter_attr et field.form_filter_value) if (goog.isDefAndNotNull(sFilterAttr) && sFilterAttr !== '') { if (goog.isDefAndNotNull(sFilterValue) && sFilterValue !== '') { if (goog.isDefAndNotNull(oMainScope['oFormValues'])) { if (goog.isDefAndNotNull(oMainScope['oFormValues'][oMainScope['sFormDefinitionName']])) { if (goog.isDefAndNotNull(oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue])) { bIsIntersected = true; oSearchValues[sFilterAttr] = oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue]; oInsertValues[sFilterAttr] = oMainScope['oFormValues'][oMainScope['sFormDefinitionName']][sFilterValue]; } } } } } var sFilter = formReaderService['parseFilter'](oSearchValues);
Et j'ai rajouté la variable sFilter en paramètres dans tous les appels à getSectionRessourceData. Exemple :
formReaderService['getSectionRessourceData'](scope['oSection']['ressource_id'],sFilter).then(function (aRessourceData) { scope['aRessourceData'] = aRessourceData;
Et voilà, le travail la liste est filtrée :
J'ai testé l'insert, l'update, le search et le delete pour les refresh tout est OK ! Vous pouvez l'intégrer au code source ;)
Merkiiiii