PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → Passage de Tableau dans une procedure
Passage de Tableau dans une procedure
Iniciado por yannNou98800, 19,ene. 2024 01:33 - 4 respuestas
Miembro registrado
2 mensajes
Publicado el 19,enero 2024 - 01:33
Bonjour,

J'ai ce code (sachant que chaque cahine du tableau a bien une valeur):
TableauDonnees est un tableau de chaines = [xlsDonnee(IdFichierXLS,i,2),xlsDonnee(IdFichierXLS,i,3), xlsDonnee(IdFichierXLS,i,4) , xlsDonnee(IdFichierXLS,i,5)]

envoieElements(sMesValeurs

-------------

Ma procédure est déclarée ainsi :
procedure interne envoieElements (pTableauDonnees)

-------------

J'ai cette erreur:
Le paramètre n°1 n'a pas de valeur par défaut et n'a pas reçu de valeur.

Avez-vous une idée?

Merci d'avance.
Publicado el 19,enero 2024 - 10:02
Bonjour,

vous chargez une variable Tableaudonnees et vous passez en paramètre la variable sMesValeurs à votre procédure, est ce voulu ?
Miembro registrado
3.891 mensajes
Popularité : +227 (347 votes)
Publicado el 20,enero 2024 - 22:35
Bonjour,
Dans l'appel de EnvoieElément, tu passes une chaine (sMesValeurs), hors EnvoieElement attend un tableau.

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
2 mensajes
Publicado el 22,enero 2024 - 00:25
Pardon, j'ai fait un mauvais copier-coller:
TableauDonnees est un tableau de chaines = [xlsDonnee(IdFichierXLS,i,2),xlsDonnee(IdFichierXLS,i,3), xlsDonnee(IdFichierXLS,i,4) , xlsDonnee(IdFichierXLS,i,5)]
envoieElements(TableauDonnees)

-------------

Ma procédure est déclarée ainsi :
procedure interne envoieElements (pTableauDonnees)
Miembro registrado
3.891 mensajes
Popularité : +227 (347 votes)
Publicado el 23,enero 2024 - 12:01
Qu'en est-il lorsque tu types ton paramètre dans la déclaration ?
Par ailleurs, tu utilises une procédure interne, les variable déclarées dans la procédures "mère" sont considérées comme globales. Donc TableauDonnées peut être utilisé directement dans EnvoieEnément sans être passé en paramètre.
Ton code est équivalent à
TableauDonnees est un tableau de chaînes = [xlsDonnée(IdFichierXLS,i,2),xlsDonnée(IdFichierXLS,i,3), xlsDonnée(IdFichierXLS,i,4) , xlsDonnée(IdFichierXLS,i,5)]
envoieElements()

PROCEDURE INTERNE EnvoieElément()
Trace(TableauDonnées[1]
FIN

Toutefois, le problème est ailleurs. Tu utilises une variable "i". Cette variable n'est jamais initialisée donc elle vaut 0 (zéro)
TableauDonnees est un tableau de chaînes = [xlsDonnée(IdFichierXLS,i,2),xlsDonnée(IdFichierXLS,i,3), xlsDonnée(IdFichierXLS,i,4) , xlsDonnée(IdFichierXLS,i,5)]

est donc équivalent à
TableauDonnees est un tableau de chaînes = [xlsDonnée(IdFichierXLS,0,2),xlsDonnée(IdFichierXLS,0,3), xlsDonnée(IdFichierXLS,0,4) , xlsDonnée(IdFichierXLS,0,5)]


--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 23,enero 2024 - 12:04