[Resolved] Add rows in subform with Excel / Sheet datas
Hi!
I'm trying to build an application where I can choose an Excel / Sheet file from a Workdrive folder, and for each data in the file, I create a row of a subform.
But I can't do it, here is the code I have:
- inputString = input.choose_xls_file;
- separatorIndex = inputString.indexOf(" - ");
- if(separatorIndex != -1)
- {
- getItemId = inputString.substring(separatorIndex + 3);
- getFileName = inputString.subString(0,separatorIndex);
- }
- queryData = Map();
- response = zoho.sheet.getSheets(getItemId,"creatorcon");
- worksheetNames = response.get("worksheet_names");
- worksheetName = "";
- for each worksheet in worksheetNames
- {
- worksheetName = worksheet.get("worksheet_name");
- worksheetId = worksheet.get("worksheet_id");
- }
- responseV2 = zoho.sheet.getRecords(getItemId,worksheetName,queryData,"creatorcon");
- // info responseV2;
- if(responseV2.get("status") == "success")
- {
- recordsList = responseV2.get("records");
- if(recordsList.size() > 0)
- {
- firstRecord = recordsList.get(0);
- input.project_name = firstRecord.get("Projet");
- input.customer_name = firstRecord.get("Nom du client");
- // Créer une liste pour les nouvelles lignes du sous-formulaire
- newSubform = List();
-
- // Boucle sur les enregistrements pour ajouter chaque ligne au sous-formulaire
- for each record in recordsList
- {
- // Créer une nouvelle Map pour chaque ligne
- subformRow = Map();
-
- // Ajouter les données de chaque champ dans la ligne (Map)
- subformRow.put("nom_materiaux", record.get("Nom matériaux"));
-
- // Vérifier et affecter la quantité
- quantiteStr = record.get("Quantité matériaux");
- if(quantiteStr != null && quantiteStr.isNumber())
- {
- subformRow.put("quantite_materiaux", quantiteStr.toLong());
- }
- else
- {
- subformRow.put("quantite_materiaux", 0); // Valeur par défaut si non valide
- }
-
- // Vérifier et affecter le prix unitaire
- prixStr = record.get("Prix unitaire matériaux");
- if(prixStr != null && prixStr.isNumber())
- {
- subformRow.put("prix_unitaire_materiaux", prixStr.toDecimal());
- }
- else
- {
- subformRow.put("prix_unitaire_materiaux", 0.0); // Valeur par défaut si non valide
- }
-
- subformRow.put("type_materiaux", record.get("Type matériaux"));
-
- // Ajouter cette ligne (Map) à la liste des lignes du sous-formulaire
- newSubform.add(subformRow);
-
- info "subformRow : " + subformRow.toString(); // Afficher la ligne du sous-formulaire
- }
- // Assignation de la liste de Maps au sous-formulaire
- // input.subform_materiaux = newSubform;
- }
- }

If I decomment this :

I have this error :

Thanks for your help :)