PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Passer une structure à une fonction
Passer une structure à une fonction
Iniciado por Roumegou Eric, jan., 22 2018 5:27 PM - 8 respostas
Publicado em janeiro, 22 2018 - 5:27 PM
Bonjour
je voudrais passer une structure à une fonction qui aurait pour but de
remplir cette fonction.

Pb : la description de la structure n'est pas connue dans cette
fonction.

Elle ne sera pas non plus définie en globale du projet

Je suis dans une fenêtre ou une page, je décris la structure en global
à la page et je veux passer en chaine mon code sql et ma structure

La fonction execute la commande sql et me renvoie la structure avec les
infos. (pour l'instant un seul item)

Est-ce possible ?
je tourne en rond sur les variants etc ...


Merci de vos réponses


--
Roumegou Eric

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Membro registado
281 mensagems
Popularité : +24 (26 votes)
Publicado em janeiro, 22 2018 - 5:55 PM
Bonsoir,

C'est pour récupérer des enregistrements provenant d'une base de données ?
Publicado em janeiro, 23 2018 - 9:45 AM
Il se trouve que Roumegou Eric a formulé :
Bonjour
je voudrais passer une structure à une fonction qui aurait pour but de
remplir cette fonction.

Pb : la description de la structure n'est pas connue dans cette fonction.

Elle ne sera pas non plus définie en globale du projet

Je suis dans une fenêtre ou une page, je décris la structure en global à la
page et je veux passer en chaine mon code sql et ma structure

La fonction execute la commande sql et me renvoie la structure avec les
infos. (pour l'instant un seul item)

Est-ce possible ?
je tourne en rond sur les variants etc ...


Merci de vos réponses


bonjour eric,

tu peux très bien passer ta structure à ta fonction sans la définir
mais tu n'auras pas de complétion auto dans le code

ex :

st est structure
item1 est chaine
item2 est chaine
fin

varST est st

MaFonction(varST)


///////////
FONTION MaFontion(varST) ou FONTION Mafontion(LOCAL varST)

varST.item1 = "toto" ou varST.item1 = "toto"
varST.item2 = "tata" ou varST.item2 = "tata"
... ou ...

RENVOYER VRAI ou RENVOYER varST

maintenant si le but de la fonction est d'être générique et de remplir
n'importe quelle structure il faudra utiliser un truc du genre

mastruct est Structure
item1 est chaîne
item2 est chaîne
FIN

tt est mastruct

madef est un Définition

madef = RécupèreDéfinition(tt)

POUR TOUT var DE madef..Variable
WL.Trace (var..Nom)
FIN

--
Cordialement JeAn-PhI
Publicado em janeiro, 23 2018 - 12:22 PM
Damien a couché sur son écran :
Bonsoir,

C'est pour récupérer des enregistrements provenant d'une base de données ?

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com


bonjour
oui d'une base de données (mysql) mais non définie dans une analyse
je formalise la requete en sql natif.


--
Roumegou Eric
Publicado em janeiro, 23 2018 - 5:09 PM
Bonjour

C'est comme cela que je travaille et pour ma part je crée une collection de procédure spécifique pour centraliser toutes mes structures. Elles sont du coup disponibles partout. Très pratique à l'usage et je ne vois pas d'inconvénient particulier à procéder ainsi. Qu'y a-t-il de gênant dans cette approche (globale donc) ?
Membro registado
281 mensagems
Popularité : +24 (26 votes)
Publicado em janeiro, 23 2018 - 8:36 PM
Pourquoi ne pas utiliser simplement une source de données ? Comme ca, c’est dynamique et nul besoin de creer de structure.
Membro registado
70 mensagems
Popularité : +4 (4 votes)
Publicado em janeiro, 24 2018 - 10:37 AM
Si le but est de renvoyer un tableau de structure, pourquoi ne pas faire une petite classe?
Membro registado
70 mensagems
Popularité : +4 (4 votes)
Publicado em janeiro, 24 2018 - 10:47 AM
Sinon tu peux utiliser cette astuce

définition de ta classe
maST est une structure
membre1 est une chaîne
membre2 est une chaîne
membre3 est un entier
FIN

clDummy est une Classe

FIN


Prototype de ta fonction
Procedure transfereDonnées(pST est un clDummy::maST)
Mensagem modificada, janeiro, 24 2018 - 10:48 AM
Publicado em janeiro, 24 2018 - 11:54 AM
Bonjour,

vous pouvez définir vos structures dans les éléments suivants :
- projet
- collections de procédure
- fenêtre
- classe : dans ce cas, comme le signale Yann, il faut préfixer avec le nom de la classe.

Si elles sont définies au niveau du projet, de la collection de procédure ou de la classe, elles sont définies de manières globales.

Bonne journée !