Make function for repeating code

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 :
  1. void test(string subform)
  2. {
  3. // Initialiser les totaux globaux avec leurs valeurs respectives, utilisation de la fonction personnalisée CheckFieldsIfNull
  4. totalPrixMateriauxGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_materiaux"));
  5. totalPrixFinitionGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_finition"));
  6. totalPrixQuincaillerieGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_quincaillerie"));
  7. totalPrixFraisSuppGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_frais_supp"));
  8. totalAvantTaxes = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("Sous_total_avant_taxes"));
  9. totalTps = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_tps"));
  10. totalTvq = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_tvq"));
  11. grandTotal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("sous_total"));
  12. // Soustraire le prix total de la ligne supprimée au prix total du sous-formulaire
  13. totalPrixFraisSuppGlobal = totalPrixFraisSuppGlobal - creer_soumission.subform().get("total_prix_frais_supp");
  14. // Mettre à jour les totaux globaux
  15. totalAvantTaxes = totalPrixFinitionGlobal + totalPrixMateriauxGlobal + totalPrixQuincaillerieGlobal + totalPrixFraisSuppGlobal;
  16. totalTps = thisapp.CalculateTax(totalAvantTaxes,creer_soumission.subform().get("tps_taxe"));
  17. totalTvq = thisapp.CalculateTax(totalAvantTaxes,creer_soumission.subform().get("tvq_taxe"));
  18. // Mettre à jour les inputs
  19. creer_soumission.subform().get("total_list_prix_materiaux") = totalPrixMateriauxGlobal;
  20. creer_soumission.subform().get("total_list_prix_finition") = totalPrixFinitionGlobal;
  21. creer_soumission.subform().get("total_list_prix_quincaillerie") = totalPrixQuincaillerieGlobal;
  22. creer_soumission.subform().get("total_list_prix_frais_supp") = totalPrixFraisSuppGlobal;
  23. creer_soumission.subform().get("Sous_total_avant_taxes") = totalAvantTaxes;
  24. creer_soumission.subform().get("total_tps") = totalTps;
  25. creer_soumission.subform().get("total_tvq") = totalTvq;
  26. creer_soumission.subform().get("sous_total") = grandTotal;
  27. }
This code give an error :


The original script in all script in my app is :
  1. // Initialiser les totaux globaux avec leurs valeurs respectives, utilisation de la fonction personnalisée CheckFieldsIfNull
  2. totalPrixMateriauxGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_materiaux);
  3. totalPrixFinitionGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_fintion);
  4. totalPrixQuincaillerieGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_quincaillerie);
  5. totalPrixFraisSuppGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_frais_supp);
  6. totalAvantTaxes = thisapp.CheckFieldsIfNull(input.Sous_total_avant_taxes);
  7. totalTps = thisapp.CheckFieldsIfNull(input.total_tps);
  8. totalTvq = thisapp.CheckFieldsIfNull(input.total_tvq);
  9. grandTotal = thisapp.CheckFieldsIfNull(input.sous_total);

  10. // Soustraire le prix total de la ligne supprimée au prix total du sous-formulaire
  11. totalPrixFraisSuppGlobal = totalPrixFraisSuppGlobal - row.total_prix_frais_supp;

  12. // Mettre à jour les totaux globaux
  13. totalAvantTaxes = totalPrixFinitionGlobal + totalPrixMateriauxGlobal + totalPrixQuincaillerieGlobal + totalPrixFraisSuppGlobal;
  14. totalTps = thisapp.CalculateTax(totalAvantTaxes,input.tps_taxe);
  15. totalTvq = thisapp.CalculateTax(totalAvantTaxes,input.tvq_taxe);
  16. grandTotal = totalAvantTaxes + totalTps + totalTvq;

  17. // Mettre à jour les inputs
  18. input.total_list_prix_materiaux = totalPrixMateriauxGlobal;
  19. input.total_list_prix_fintion = totalPrixFinitionGlobal;
  20. input.total_list_prix_quincaillerie = totalPrixQuincaillerieGlobal;
  21. input.total_list_prix_frais_supp = totalPrixFraisSuppGlobal;
  22. input.Sous_total_avant_taxes = totalAvantTaxes;
  23. input.total_tps = totalTps;
  24. input.total_tvq = totalTvq;
  25. input.sous_total = grandTotal;

Thank you all :)