PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Objets métiers SAGE 100c
Objets métiers SAGE 100c
Débuté par EJ, 11 avr. 2019 17:28 - 32 réponses
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 11 avril 2019 - 17:28
Bonjour,

Je suis a la recherche d'une aide sur l'utilisation des "Objets Métiers SAGE" avec Windev.
J'ai la dll "objets100c.dll" qui est installé sur mon poste.
Avec Visual Studio, j'ai référencé dans un projet l'objet COM "objets100clib" sans aucun problème, mais avec Windev je
n'arrive a rien.

Ma question est simple, comment déclarer mon objet COM dans Windev, et comment utiliser les méthodes qui lui sont rattachés.

Merci d'avance pour votre aide.:merci:
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 11 avril 2019 - 17:49
Essais de l'importer comme composant .net
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 11 avril 2019 - 19:03
les "Objets Métiers SAGE" n'est pas un reconnu comme un .net mais un objet COM.
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Membre enregistré
352 messages
Popularité : +12 (18 votes)
Posté le 12 avril 2019 - 09:07
Bonjour, c'est vraiment galère de faire appel aux OM Sage en wlangage, l'idéal serait de tout coder dans une librairie en .NET, dans windev, vous ferez appel aux différentes fonctions de traitement, chose que j'ai faite
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 12 avril 2019 - 20:25
Merci pour l'idée.
Effectivement, je vais faire un test dans ce sens. :merci:
Posté le 13 avril 2019 - 09:10
Bonjour,

Je te recommande consulter ce post pour lequel j'avais le même problème le mois dernier :
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/225022-objets-metiers-sage-225160/read.awp…

Jean-Marc SOUCHEZ
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 13 avril 2019 - 20:15
Pour info
l'exemple WD ar drone d'un TDF,
contient un composant interne d'accès aux objets COM.
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 15 avril 2019 - 09:29
Bonjour,

J'ai testé la solution de créer un .net avec Visual Studio et de l'inclure ensuite dans Windev, cela fonctionne sans problème.

Merci à tous pour l'aide
Posté le 08 février 2020 - 12:26
Bonjour,

J'ai aussi des problèmes d'intégration, merci de me dire sous quelle forme vous avez intégré ces fonctions sous Windev.

Salutations
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 12 février 2020 - 16:19
Bonjour MBM,

Peux-tu décrire un peu ton problème d'intégration...

Merci
Posté le 19 mai 2020 - 12:21
Je voudrais savoir comment tu fais appel à des modules .Net dans Windev stp !
Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 19 mai 2020 - 13:55
Bonjour,
https://doc.pcsoft.fr/fr-FR/?2012002

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 22 mai 2020 - 13:45
Bonjour,

J'ai changé de méthode pour éviter des problèmes avec la DLL.
Je te conseil le code suivant
// Connexion à la base SAGE 100C
cBaseCIALInt est un objet OLE dynamique
cBaseCPTAInt est un objet OLE dynamique

cBaseCIALInt = allouer un objet OLE "Objets100c.Cial.Stream.1"
cBaseCPTAInt = allouer un objet OLE "Objets100c.Cpta.Stream.1"

cBaseCIALInt >>Name = SansEspace(sNomBase)
cBaseCIALInt >>Loggable>>UserName = SansEspace(sUserName)
cBaseCIALInt >>Loggable>>UserPwd = SansEspace(sUserPwd)

cBaseCPTAInt = cBaseCIALInt >>CptaApplication

cBaseCIALInt>>Open()

// Lecture d'un Tiers
cTiers est un objet automation dynamique

cTiers = cBaseCPTAInt >>FactoryTiers>>ReadNumero("CARAT")


En Windev l'utilisation des Objets Métiers SAGE n'est pas intuitive. Personnellement je passe par un projet C# pour coder et avoir la syntaxe.
Après seulement je transpose en Windev et cela fonctionne sans problème.

Bon dev.
Posté le 06 juillet 2020 - 20:33
Bonjour,

J'ai repris ton exemple en installant aussi le KitObjets100c_311.exe.

le code est le suivant :

sNomBase est une chaîne = "C:\Users\Public\Documents\Sage\Gestion commerciale 100c\Bijou.gcm"
sUserName est une chaîne= "testsage"
sUserPwd est une chaîne= "$e12Q$F3i2"


cBaseCIALInt est un objet OLE dynamique
cBaseCPTAInt est un objet OLE dynamique

cBaseCIALInt = allouer un objet OLE "Objets100c.Cial.Stream.1"
cBaseCPTAInt = allouer un objet OLE "Objets100c.Cpta.Stream.1"

cBaseCIALInt >>Name = SansEspace(sNomBase)
cBaseCIALInt >>Loggable>>UserName = SansEspace(sUserName)
cBaseCIALInt >>Loggable>>UserPwd = SansEspace(sUserPwd)


cBaseCIALInt>>Open()

// Lecture d'un Tiers
cTiers est un objet Automation dynamique

cTiers = cBaseCPTAInt >>FactoryTiers>>ReadNumero("CARAT")

Lorsque j'exécute le programme j'ai à chaque fois ce message :

Vous avez appelé la méthode Automation 'Open'.
En tentant d'invoquer la méthode <Open> ou de lire la propriété <Open>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur FFFFFFFF : Erreur inconnue [3706] !'
En tentant d'invoquer la méthode <Open>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur FFFFFFFF : Erreur inconnue [3706] !'
En tentant de lire la propriété <Open>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 80020003, Le membre demandé n'existe pas'
En tentant d'écrire la propriété <Open>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 80070057, Un ou plusieurs arguments sont invalides'

Pile des appels :
Fin d'initialisation de FEN_Menu (FEN_Menu), ligne 20

Date : 06/07/2020 14:24:48
Projet : SageX

Informations supplémentaires :
Code erreur : 2205
Module : 'wd250vm.dll (01F250089f - 25.0.480.3)
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <34>

Avez vous déjà eu cette erreur et que faut il faire pour corriger ?

cdt,
Steeven
Posté le 10 juillet 2020 - 15:24
BaseGestcom est un objet Automation "Objets100c.Cial.Stream.1" // Objet Métiers sage 100c
BaseCompta est un objet Automation "Objets100c.Cpta.Stream.1"

//Connexion
BaseGestcom>>name ="c:\testsql1.gcm" // Adresse de la base GC
// Initialisation des infos de connexion CPTA
BaseCompta>>name = "c:\testsql1.mae"
BaseCompta>>loggable>>username = "XXXX" // Utilisateur de connexion
BaseCompta>>loggable>>userpwd = "XXXXX" // Mot de passe de la connexion

// Association de la base GC et CPTA
BaseGestcom>>CptaApplication = BaseCompta
// Initialisation des infos de connexion GC
BaseGestcom>>loggable>>username = "XXXXX" // Utilisateur de connexion
BaseGestcom>>loggable>>userpwd = "XXXXX" // Mot de passe de la connexion
// Ouverture de la base GC (la compta est aussi ouverte)

BaseGestcom>>open() // Ouverture de la base

SI PAS BaseGestcom>>ISOpen ALORS

Erreur("Impossible de se connecter à la base de données Sage Gestcom")

FIN


//ajout d'un client

pautListeClients, pautClient est un objet Automation dynamique
pautListeContacts,pautContact est un objet Automation dynamique
pautRegelement est un objet Automation dynamique
pautSiteLivraison est un objet Automation dynamique
pautModeRegelement est un objet Automation dynamique
pautRepresentant est un objet Automation dynamique
pautListeRepresentant est un objet Automation dynamique
pautListeCategorieComptable est un objet Automation dynamique
// Création de l'objet métier
pautClient = BaseCompta>>Factoryclient>>Create
pautClient>>CT_num=CLIENTS_FOURNISSEURS.NoDeCompteGescom

pautClient>>Adresse>>Adresse=CLIENTS_FOURNISSEURS.Adresse_CF
pautClient>>Adresse>>CodePostal=CLIENTS_FOURNISSEURS.CodePostal
pautClient>>Adresse>>Complement=CLIENTS_FOURNISSEURS.ComplementAdresse
pautClient>>Adresse>>Ville=CLIENTS_FOURNISSEURS.Ville
pautClient>>Adresse>>Pays =CLIENTS_FOURNISSEURS.Pays

pautClient>>Telecom>>Telecopie=CLIENTS_FOURNISSEURS.Fax_CF
pautClient>>Telecom>>Telephone=CLIENTS_FOURNISSEURS.Telephone
pautClient>>Telecom>>EMail=CLIENTS_FOURNISSEURS.eMail_CF
pautClient>>Telecom>>Site=CLIENTS_FOURNISSEURS.SiteInternet

pautClient>>Ct_Intitule=CLIENTS_FOURNISSEURS.Intitule
pautClient>>Ct_facture=1
pautClient>>Ct_siret=CLIENTS_FOURNISSEURS.NoSiret
pautClient>>Ct_ape=CLIENTS_FOURNISSEURS.CodeNAF
pautClient>>CT_Identifiant =CLIENTS_FOURNISSEURS.NoIdentifiant

//tiers payeur
pautClient>>TiersPayeur=pautClient

pautClient>>CompteGPrinc=BaseCompta>>FactoryCompteG>>ReadNumero("411000")

pautClient>>Representant=RechercheRepresentant(EMPLOYES.NomEmploye,EMPLOYES.PrenomEmploye)

SI PAS BaseCompta>>Factoryclient>>Existnumero(CLIENTS_FOURNISSEURS.NoDeCompteGescom) ALORS

pautClient>>Writedefault
FIN

//Mode de reglement
pautModeRegelement=pautClient>>FactoryTiersReglement>>Create
pautModeRegelement>>Reglement=BaseCompta>>FactoryReglement>>readintitule(ValeurModeReglement)
pautModeRegelement>>JourTB(1)=COMBO_JourDeTombe
pautModeRegelement>>NbJour=COMBO_NbJours
// pautModeRegelement>>JourTB(1)=SAI_Jour_de_tombée
// pautModeRegelement>>NbJour=SAI_Nombre_de_jours
pautModeRegelement>>TRepart=1 //ReglementRepartitionTypeEquilib

// Const ReglementConditionTypeJour = 0
// Const ReglementConditionTypeMois = 2
// Const ReglementConditionTypeMoisCivil = 1

pautModeRegelement>>condition = 0
pautModeRegelement>>write


//Contact

pautContact=pautClient>>factorytierscontact>>create

SELON CONTACTS.Civilite

CAS "Mr" : pautContact>>civilite=ContactCiviliteMonsieur
CAS "Mme" : pautContact>>civilite=ContactCiviliteMadame
CAS "Mlle" : pautContact>>civilite=ContactCiviliteMademoiselle

FIN

pautContact>>Nom=Gauche(CONTACTS.Nom,35)
pautContact>>Prenom=Gauche(CONTACTS.Prenom,35)
pautContact>>Telecom>>telephone=CONTACTS.Telephone
pautContact>>Telecom>>telecopie=CONTACTS.Fax
pautContact>>Telecom>>Portable =CONTACTS.Portable
pautContact>>Telecom>>Email=CONTACTS.eMail

pautContact>>write

SI CONTACTS.ContactPrincipal ALORS
pautClient>>CT_Contact=CONTACTS.Nom+" "+CONTACTS.Prenom
pautClient>>write
FIN


//SITE DE LIVRAISON

//Liste des sites de livraison
//Attention au site de livraison créer automatiquement par Sage

pautListeSiteLivraison=pautClient>>FactoryclientLivraison>>list
NbSite est un entier = pautListeSiteLivraison>>count()
POUR i=1 À NbSite
pautSiteLivraisonCreeAutoDansGestcom=pautListeSiteLivraison>>item(i)
FIN
//création d'un site de livraison
pautSiteLivraison=pautClient>>FactoryclientLivraison>>create

pautSiteLivraison>>LI_Intitule=Gauche(SITES_LIVRAISON.Intitule,35)
pautSiteLivraison>>LI_Contact=Gauche(SITES_LIVRAISON.Contact,35)

pautSiteLivraison>>Adresse>>Adresse=Gauche(SITES_LIVRAISON.Adresse,35)
pautSiteLivraison>>Adresse>>CodePostal=SITES_LIVRAISON.CodePostal
pautSiteLivraison>>Adresse>>Complement=Gauche(SITES_LIVRAISON.ComplementAdresse,35)
pautSiteLivraison>>Adresse>>Ville=Gauche(SITES_LIVRAISON.Ville,35)

pautSiteLivraison>>Telecom>>EMail=Gauche(SITES_LIVRAISON.AdresseEMail,69)
pautSiteLivraison>>Telecom>>Telecopie=SITES_LIVRAISON.Fax
pautSiteLivraison>>Telecom>>Telephone=SITES_LIVRAISON.Telephone



pautSiteLivraison>>write

BaseGestcom>>Close
BaseCompta>>Close
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 16 juillet 2020 - 08:25
Bonjour Steeven,

Attention, dans SAGE la base "maitre" est la comptabilité, il te faut mettre dans ton code:

Quand la comptabilité à le même user et mdp.
cBaseCPTAInt = cBaseCIALInt >>CptaApplication


Sinon, il faut rajouter comme @guillaumeh
BaseCompta>>name = "c:\testsql1.mae"
BaseCompta>>loggable>>username = "XXXX" // Utilisateur de connexion
BaseCompta>>loggable>>userpwd = "XXXXX" // Mot de passe de la connexion

BaseGestcom>>CptaApplication = BaseCompta


Bon dev.
Posté le 22 juillet 2020 - 20:52
Bonjour Ej,

Faut il absolument que j'installe la compta pour faire mon dev ?

Cdt,
Steeven
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 23 juillet 2020 - 09:10
Bonjour Steeven,

Tu n'as pas besoin d'avoir les applications SAGE sur ton poste de dev.
Il te faut uniquement le fichier GCM de la société en plus des objets métiers correspond à la version de SAGE (100cV6, 100cV7).

Exemple: BIJOU.gcm
cBaseCIALInt = allouer un objet OLE "Objets100c.Cial.Stream.1"
cBaseCPTAInt = allouer un objet OLE "Objets100c.Cpta.Stream.1"

cBaseCIALInt >>Name = "c:\AppliSage\bijou.gcm"
cBaseCIALInt >>Loggable>>UserName = "<Administrateur>
cBaseCIALInt >>Loggable>>UserPwd = ""


Bon Dev.
Membre enregistré
1 message
Posté le 23 juillet 2020 - 18:33
I have checked the link given and it is a parameter and I think that is not a api documentation.

Is there a more specific api documentation for sage 100 like sage intacct developer.intacct.com/.../
Posté le 24 août 2020 - 14:30
Bonjour,
Pourrions nous échanger en PV à propos de SAGE et l'objet métier ?

Cordialement,
Steeven
Posté le 21 octobre 2020 - 14:21
bonjour,
une question comment passez-vous les dates?
si je les passent ainsi
om_PieceComptable>>Date = DateVersChaîne(dateEcriture,"M/D/YYYY ")+HeureVersChaîne(TimeSys(),"HH:MM:SS")
cela fonctionne très bien pour les jours à partir du 13 maisinverse le jour et le mois pour les jours avant
exple
13/5/2020 passe en 13/05/20
5/9/2020 passe en 09/05/2020
merci de votre aide
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 22 octobre 2020 - 08:28
Bonjour,

Personnellement, je passe par une variable de type date, car des fois l'objet automation n'accepte pas directement l'affectation.
MaDate est une date = DateSys()

cUnIMPDoc:cDoc>>DO_Date = MaDate


Bon dev.
Membre enregistré
414 messages
Popularité : +6 (6 votes)
Posté le 22 octobre 2020 - 09:22
Bonjour,
Vous avez pu insérer avec une écriture comptable dans un journal de trésorerie Sage Centralisé ? J'ai essayé et chaque fois, ça ne donne rien. Je suis en Sage SQL
Merci
Posté le 27 novembre 2020 - 17:40
Bonjour,

"Bonjour Steeven,

Attention, dans SAGE la base "maitre" est la comptabilité, il te faut mettre dans ton code:

Quand la comptabilité à le même user et mdp.
cBaseCPTAInt = cBaseCIALInt >>CptaApplication


Sinon, il faut rajouter comme @guillaumeh
BaseCompta>>name = "c:\testsql1.mae"
BaseCompta>>loggable>>username = "XXXX" // Utilisateur de connexion
BaseCompta>>loggable>>userpwd = "XXXXX" // Mot de passe de la connexion

BaseGestcom>>CptaApplication = BaseCompta


Bon dev."

Oui et non concernant la base maître.
Cela dépend des objets utilisés et de la structure de la base Sage

En fait pour des articles on n'a pas besoin de lier la compta, mais là l'exemple portait sur les tiers
et les tiers sont dans la base comtpa et non gescom.

Quand vous utilisez une base gestion commerciale, il y a toujours une base comptable derrière, même si la comptabilité
n'est pas utilisée.
D"ailleurs quand vous crééz une nouvelle base Gestion Commerciale, la première chose qu'on vous demande, c"est à quelle base comptable est-elle liée.

Cordialement
Posté le 27 novembre 2020 - 17:45
Bonjour,

Attention dans un journal de trésorerie centralisée, il ne faut passer que l'écriture de tiers, le journal va s'équilibrer tout seul.
Vous ne pouvez insérer une écriture avec comme compte général le compte affecté au journal de Tréso (ex 512000) que pour des journaux de trésorerie gérés avec contrepartie à la ligne.

Cordialement
Membre enregistré
2 messages
Posté le 31 décembre 2023 - 17:35
bonjour à toutes et à tous

je dois créer des comptes analytiques sur le plan affaires d'une gestion commerciale sage 100c V9.02
j'utilise les objets métiers V9.02

je code d'abord en C# pour la syntaxe, cela fonctionne parfaitement

mais en windev 28, avec le code ci-dessous j'obtiens un enregistrement dans la base sql, mais la valeur de la clé CA_Num est totalement éronée --> Ø„¹UÿÿÿÿRE

//Connexion
om_BaseComptable>>CompanyServer = "(local)\SAGE100" // instance SQL
om_BaseComptable>>CompanyDatabaseName = "XXX"
om_BaseComptable>>Loggable>>UserName = "<Administrateur>"
om_BaseComptable>>Loggable>>UserPwd = "xxxxxxxx!"

om_BaseComptable>>Open()

SI PAS om_BaseComptable>>ISOpen ALORS
Erreur("Impossible de se connecter à la base de données Sage XXX" + RC + "Update Affaires impossible ...")

RETOUR
SINON
TraceOp..Visible = Vrai
TraceOp..Couleur = BleuClair
TraceOp = "Connexion OM établie ..."
FIN

// Création de l'objet métier
om_Affaire est un objet Automation dynamique
om_Affaire=om_BaseComptable>>FactoryCompteA>>Create

om_Affaire>>CA_Num = "20232611"
om_Affaire>>CA_Intitule = "OM 20232611"
om_Affaire>>Analytique=om_BaseComptable>>FactoryAnalytique>>ReadIntitule("AFFAIRES")

om_Affaire>>SetDefault
om_Affaire>>Write
om_BaseComptable>>Close()

si vous avez déjà codé ce type d'ajout, je suis volontiers preneur

>merci d'avance
Posté le 09 janvier 2024 - 16:24
Bonjour,

C'est la première fois que j'utilise l automation et sage. Je cherche à remplir simplement un champs table avec le contenu d'une table que je suis censé prendre sur le serveur via sage.

Très sincèrement je nage dans l'inconnu total et malgré la doc je n'arrive pas à m'en sortir. La connexion est bien faite, je vous épargne le code.

Pour l'instant j'essaie quelque chose de ce style :

pautGamStock est un objet automation dynamique

pautGamStock = autGC>>FactoryArticleDepot>>Create
pautGamStock>>Read()


J'ai une erreur rien qu'a la création. Je pense que j'ai tout faux mais j ne sais plus quoi tenter. Si une bonne âme passe par ici, je la remercie d'avance.
Posté le 10 janvier 2024 - 11:30
Salut,

je fais ceci :

pautGamStock = autGC>>FactoryArticleDepotGamme>>List

nNbrGamstock = pautGamStock>>Count()

Info(nNbrGamstock)


Une erreur "Nom inconnu" sur FactoryArticleDepotGamme.
J'ai beau tester avec des lignes de code donné en exemple ici qui sont censé fonctionner, j'ai toujours cette même erreur.

Pensez-vous qu'il me manque une installation ?
Si vous voyez quel est le problème pouvez vous m'aiguiller ?

Merci
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 10 janvier 2024 - 13:16
Bonjour,
Voici un exemple de récupération de la liste des articles:
cArt est un objet automation dynamique
cIBICollection est un objet automation dynamique
iNbLgn est un entier

// Récupération de la liste des articles
cIBICollection = cCxionCial>>FactoryArticle>>List

// Récupération du nombre de ligne
iNbLgn = cIBICollection>>Count

// Lecture des données
POUR iNumLigne=1 _À_ :iNbLgn
// Récupération de l'article
cArt = cIBICollection>>Item[iNumLigne]

// Affichage de la Référence et de la Désignation
Trace(cArt>>AR_Ref+" / "+cArt>>AR_Design)

FIN


Bon dev.
Posté le 10 janvier 2024 - 14:43
Bonjour,

Merci pour votre réponse.
Effectivement avec FactoryArticle ça me remonte bien la table F_Article. Il reconnait ce membre là.

Dans mon cas je souhaite avoir la table F_Gamstock, et donc utilise FactoryArticleDepotGamme. Seulement là j'ai une erreur:

Vous accéder au membre Automation FactoryArticleDepot
Erreur80020006, Nom Inconnu

Pourtant la doc sage 100c objet métier me renvoie cette info. Sauriez-vous pourquoi ?
Membre enregistré
18 messages
Popularité : +1 (1 vote)
Posté le 11 janvier 2024 - 13:52
Bonjour,

Si je comprends bien, tu veux le stock des articles gamme par dépôt ?
cArt est un objet automation dynamique
cArtDep est un objet automation dynamique
cArtDepGam est un objet automation dynamique

cIBICollArt est un objet automation dynamique
cIBICollArtDep est un objet automation dynamique
cIBICollArtDepGam est un objet automation dynamique

// Lecture des articles
cIBICollArt = cMonOM:cBaseCIAL>>FactoryArticle>>List
POUR iNumArt=1 _À_ cIBICollArt>>Count
cArt = cIBICollArt>>Item[iNumArt]

// Lecture des dépôts de l'article
cIBICollArtDep = cArt>>FactoryArticleDepot>>List
POUR iNumArtDep=1 _À_ cIBICollArtDep>>Count
cArtDep = cIBICollArtDep>>Item[iNumArtDep]

// Lecture des gammes de l'article sur le dépôt
cIBICollArtDepGam = cArtDep>>FactoryArticleDepotGamme>>List
POUR iNumArtDepGam=1 _À_ cIBICollArtDepGam>>Count
cArtDepGam = cIBICollArtDepGam>>Item[iNumArtDepGam]
Trace(cArtDepGam>>Article>>AR_Ref+" - "+cArtDepGam>>StockDispo())
FIN
FIN
FIN


Bon dev.
Membre enregistré
1 message
Posté le 11 janvier 2024 - 15:15
Bonjour

Merci c'est exactement ce que j'avais fini par faire(boucler sur mes collections), mais j bloquais sur la récup des infos, et je vois ici que je dois passer par "Article" après "cArtDepGam" pour accéder au "AR_Ref". Je dois trouver comment accéder à chaque membre de ma table mais j vais finir par y arriver.

Un grand merci.