PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → WINDEV
WINDEV
Débuté par Vinit Sawant, 08 déc. 2017 11:26 - 4 réponses
Posté le 08 décembre 2017 - 11:26
Hi,
In our WINDEV application we are getting following error while opening some data:

Error at line 33 of Local Procedure Maj_prix_AFF process.
ArraySeek function called.
Invalid column subscript: 1. Number of Array Columns: 5.

Technical Information

Project : Adage

Dump error of module <12.01Cy>.

- WL Call:
Processing , line <33>, thread <0>
Function , syntax # <0>

- Level: fatal error (EL_FATAL)

- Error Code: 2315

- WD55 Error Code: 0

- No system error code

- No system error message

- What happened?
Invalid column subscript: 1. Number of Array Columns: 5.

- Debug Information:
Fonction (0,103)

- Attached Information:
EIT_PILEWL :
Local Procedure Maj_prix_AFF (FenInt_DT_module.PROCEDURE.Maj_prix_AFF), ligne 33
EIT_COMPOSANT :

EIT_DATEHEURE : 08/12/2017 11:20:33

- Identifier in .err: 2315

Does anyone know why we are getting this error? and how to solve it?

Thanks in advance
Posté le 08 décembre 2017 - 12:08
Hi
without seeing the code, no.


Best regards
Posté le 08 décembre 2017 - 12:15
If you post line 33 of your code in FenInt_DT_module.PROCEDURE.Maj_prix_AFF(), you will get better answers......
Posté le 08 décembre 2017 - 12:41
Hi Fabrice and Arie,
Please have a look on the below code:

PROCEDURE Maj_prix_AFF(taAffDossier)

// | OPFR00214-Lot3 | 22/12/2009 | 1.4.0 | FDJ -Gestion des AFF - ajout des paliers...

nom_aff est une chaîne
IndiceDepart est un entier
indiceTBH est un entier
prix_aff est un réel
nb_ligne est un entier

Elt est un CElt dynamique
eComp est un CEltComp dynamique
key est une chaîne

IndiceDepart = 1
nb_ligne = TableauOccurrence(taAffDossier)

// Positionnement sur le bon module :
// Tri du tableau selon le module (1ere colonne)
TableauTrie(taAffDossier, ttCroissant, 1)
IndiceDepart = TableauCherche(taAffDossier,tcLinéaire,1,pModule:ordre,IndiceDepart)

// DEBUF_FDJ
//Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - Avant BOUCLE MAJ : "...
//, "Module :" + pModule:ordre + " ; nb_ligne: " +nb_ligne+ " --- Utilisateur réseau "+RéseauUtilisateur())

SI IndiceDepart > 0 ALORS
POUR i = IndiceDepart A nb_ligne

// DEBUF_FDJ
//Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - BOUCLE : "...
//, "Module :" + pModule:ordre + " ; moduleLigne : " +taAffDossier[i,1]+" --- Utilisateur réseau "+RéseauUtilisateur())

SI pModule:ordre = taAffDossier[i,1] ALORS
indiceTBH = Val(taAffDossier[i,2])
prix_aff = Val(taAffDossier[i,5])
// FOR DEBUG
//Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - BOUCLE MAJ : "...
//, "Module :" + pModule:ordre + " ; Indice: " +i+ " ; nom_aff :" +taAffDossier[i,3]+ " ; Prix :" +taAffDossier[i,5] +" --- Utilisateur réseau "+RéseauUtilisateur())

// Mise à jour dans l'arbre du module s'il existe sinon dans le TBH
// Si le module en cours est celui qui a déclenché le traitement de Calcul AFF,
// il faut MAJ l'arbre sur lequel s'appuient les autres traitements.
// Pour les autres modules on MAJ le TBH
SI ArbModule <> Null ALORS
key = TBH_DonnéesTechniques.ArbKey[indiceTBH]
Elt = ArbModule:ItemGet(key)
SI Elt..Classe = CEltComp ET Elt:Code [= C_CODE_AFF ALORS
eComp = Elt
eComp:prix = prix_aff
FIN
FIN

TBH_DonnéesTechniques.Prix_Comp[indiceTBH] = prix_aff

SINON
// FOR DEBUG
//Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - SORTIE de BOUCLE : "...
//, "Module :" + pModule:ordre + " ; moduleLigne : " +taAffDossier[i,1]+" --- Utilisateur réseau "+RéseauUtilisateur())
SORTIR
FIN
//IndicePrincipal++
FIN
FIN

RENVOYER "OK"
Posté le 08 décembre 2017 - 14:30
hi

we are still missing the declaration of the the array, but from what you are showing us, you are doing a search using a syntax made for 2 dimensions array. If the array you are passing to the function only has one dimension (and that's why we need it's declaration), that COULD explain the problem.

Best regards