Make function for repeating code
Hi,
It's me again with my questions... 😅
In my Creator app, there's code that repeats itself in several places. And repeating code necessarily means optimization.
So I'm trying to create a custom function to centralize my code in a single place and call the function in each script where I need it.
However, depending on the script where I need it, I reference different inputs. So I should be able to pass them as parameters, but that doesn't work.
Furthermore, these inputs are subform inputs, so the function must be able to target the subform, then the input.
Could you help me solve my challenge, please? Thank you!
Here's the information:
In my function, I try to get subform :
- void test(string subform)
- {
- // Initialiser les totaux globaux avec leurs valeurs respectives, utilisation de la fonction personnalisée CheckFieldsIfNull
- totalPrixMateriauxGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_materiaux"));
- totalPrixFinitionGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_finition"));
- totalPrixQuincaillerieGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_quincaillerie"));
- totalPrixFraisSuppGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_frais_supp"));
- totalAvantTaxes = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("Sous_total_avant_taxes"));
- totalTps = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_tps"));
- totalTvq = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_tvq"));
- grandTotal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("sous_total"));
- // Soustraire le prix total de la ligne supprimée au prix total du sous-formulaire
- totalPrixFraisSuppGlobal = totalPrixFraisSuppGlobal - creer_soumission.subform().get("total_prix_frais_supp");
- // Mettre à jour les totaux globaux
- totalAvantTaxes = totalPrixFinitionGlobal + totalPrixMateriauxGlobal + totalPrixQuincaillerieGlobal + totalPrixFraisSuppGlobal;
- totalTps = thisapp.CalculateTax(totalAvantTaxes,creer_soumission.subform().get("tps_taxe"));
- totalTvq = thisapp.CalculateTax(totalAvantTaxes,creer_soumission.subform().get("tvq_taxe"));
- // Mettre à jour les inputs
- creer_soumission.subform().get("total_list_prix_materiaux") = totalPrixMateriauxGlobal;
- creer_soumission.subform().get("total_list_prix_finition") = totalPrixFinitionGlobal;
- creer_soumission.subform().get("total_list_prix_quincaillerie") = totalPrixQuincaillerieGlobal;
- creer_soumission.subform().get("total_list_prix_frais_supp") = totalPrixFraisSuppGlobal;
- creer_soumission.subform().get("Sous_total_avant_taxes") = totalAvantTaxes;
- creer_soumission.subform().get("total_tps") = totalTps;
- creer_soumission.subform().get("total_tvq") = totalTvq;
- creer_soumission.subform().get("sous_total") = grandTotal;
- }
This code give an error :
The original script in all script in my app is :
- // Initialiser les totaux globaux avec leurs valeurs respectives, utilisation de la fonction personnalisée CheckFieldsIfNull
- totalPrixMateriauxGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_materiaux);
- totalPrixFinitionGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_fintion);
- totalPrixQuincaillerieGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_quincaillerie);
- totalPrixFraisSuppGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_frais_supp);
- totalAvantTaxes = thisapp.CheckFieldsIfNull(input.Sous_total_avant_taxes);
- totalTps = thisapp.CheckFieldsIfNull(input.total_tps);
- totalTvq = thisapp.CheckFieldsIfNull(input.total_tvq);
- grandTotal = thisapp.CheckFieldsIfNull(input.sous_total);
- // Soustraire le prix total de la ligne supprimée au prix total du sous-formulaire
- totalPrixFraisSuppGlobal = totalPrixFraisSuppGlobal - row.total_prix_frais_supp;
- // Mettre à jour les totaux globaux
- totalAvantTaxes = totalPrixFinitionGlobal + totalPrixMateriauxGlobal + totalPrixQuincaillerieGlobal + totalPrixFraisSuppGlobal;
- totalTps = thisapp.CalculateTax(totalAvantTaxes,input.tps_taxe);
- totalTvq = thisapp.CalculateTax(totalAvantTaxes,input.tvq_taxe);
- grandTotal = totalAvantTaxes + totalTps + totalTvq;
- // Mettre à jour les inputs
- input.total_list_prix_materiaux = totalPrixMateriauxGlobal;
- input.total_list_prix_fintion = totalPrixFinitionGlobal;
- input.total_list_prix_quincaillerie = totalPrixQuincaillerieGlobal;
- input.total_list_prix_frais_supp = totalPrixFraisSuppGlobal;
- input.Sous_total_avant_taxes = totalAvantTaxes;
- input.total_tps = totalTps;
- input.total_tvq = totalTvq;
- input.sous_total = grandTotal;
Thank you all :)