Bonjour à Toutes et Tous,

J'ai un gros problème que je n'arrive pas à résoudre..

Le code suivant me permet de créer un fiche Article (dans la domaine du prêt à porter)

Je dois donc créer pour chaque article autant d'unité de vente que de coloris et de taille désignées lors de la création.
A cela s'ajoute la génération de code barre.

Tout fonctionne, sauf que je n'arrive à créer que la première UVC, je crois que mon problème se trouve dans la requête INSERT à l'endroit souligné en Rouge.

En fait, je n'arrive pas à récupérer les lignes des deux tables représentant respectivement la liste des coloris et des tailles.

Vu que je suis sur ce problème depuis une semaine, et que je vois pas ou est le début de la solution, une idée serait la bienvenue.

Pour le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Compare si la lignes du fichier externe existe déjà dans la base de données	
variable est une chaîne
Suffixe est une chaîne
NouveauCode est une chaîne
sRequete est une chaîne="SELECT ART_CODE FROM ARTICLES WHERE ART_CODE LIKE '"+SAI_ART_CODE+"%'  "
//SI EnModeTest() ALORS Trace(sRequete)
SI	SQLExec(sRequete,"REQ") ALORS
	SI	SQLAvance("REQ") = 0 ALORS
		variable=SQLLitCol("REQ", 1)
		Suffixe=ExtraitChaîne(variable,1,"\") 				// Récupération de ce qu'il y a après l'anti-slash
		Suffixe=Val(Suffixe)+1 								// Incrémente de 1 l'UVC
		NouveauCode=ExtraitChaîne(variable,1,"\")+"\"+Suffixe // Constitution de la nouvelle UVC
 
		SINON
			NouveauCode=SAI_ART_CODE+"\1"
			FIN 
 
 
sVariable_EAN est une chaîne
préfixe_AEN est une chaîne
nouveauCode_AEN est une chaîne
Cle est un entier
Total est un entier
Requete est une chaîne="SELECT MAX(ART_CODEBARRE) FROM ARTICLES " 
SI SQLExec(Requete, "REQ1") ALORS
	SI SQLAvance("REQ1")=0 ALORS
		sVariable_EAN=SQLLitCol("REQ1", 1)
		préfixe_AEN=Gauche(sVariable_EAN,12)
		préfixe_AEN=Val(préfixe_AEN)+1
	    FIN
	 	FIN
		 //calcul du caractère de contrôle 
 
POUR ii = 1 A Taille(préfixe_AEN)        //Code est les 12 premiers caractères du code barre
SI EstPair(ii) ALORS
	Total+=Val(préfixe_AEN[[ii]])*3
SINON
	Total+=Val(préfixe_AEN[[ii]])
FIN
FIN
Cle = ((PartieEntière(Total/10)+1)*10)-Total
SI Cle = 10 ALORS
	Cle = 0
FIN  
nouveauCode_AEN=préfixe_AEN + Cle 
 
	// Sélectionne le contenu des coloris à créer
POUR i=1 A TableOccurrence(TABLE_CODIM1)
		SI TABLE_CODIM1.SELECTION[i]=1 ALORS
			TableSelectPlus(TABLE_CODIM1,i)
		FIN
	FIN 
	// Sélectionne le contenu des tailles à créer
	POUR i=1 A TableOccurrence(CODIM2_SUS)
		SI CODIM2_SUS.SELECTION[i]=1 ALORS
			TableSelectPlus(CODIM2_SUS,i)
		FIN
	FIN
	// Si les données n'existe pas alors INSERT INTO ajoute les données 
	Requete1 est une chaîne="INSERT INTO ARTICLES (ART_CODE,ART_UVC,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,ART_LIBRE1,ART_NOM,ART_COLLECTION,ART_FOURNISSEUR,ART_MARQUE,ART_COMPOSITION,ART_CODEBARRE,ART_LIBRE3,ART_CODIM3,ART_PRIXACHAT,ART_PRIXVENTE) "+...
	"VALUES('"+NouveauCode+"','"+NouveauCode+"','"+SAI_ART_NOMAPPEL+"','"+TABLE_CODIM1+"','"+CODIM2_SUS+"','"+SAI_ART_LIBRE1+"','"+SAI_ART_NOM+"','"+COMBO_COLLEC+"','"+COMBO_ART_FOUR+"','"+COMBO_ART_MARQUE+"','"+COMBO_COMPOSITION+"','"+nouveauCode_AEN+"','"+COMBO_ORIGINE1+"','"+COMBO_TYPE1+"','"+SAI_EPA+"','"+SAI_EPVD4+"') "
	SI EnModeTest() ALORS Trace(Requete1)
	SI	SQLExec(Requete1,"REQ10") ALORS
 
	FIN
FIN
 
Info("La fiche article a été créée")
Et pour la table des coloris (idem pour les tailles):

Colonne1= COL_CODE Colonne2=SELECTION (interrupteur)

Dans "SELECTION D'UNE LIGNE DE TABLE_CODIM1" se trouve le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
	// Sélectionne le contenu des coloris à créer
POUR i=1 A TableOccurrence(TABLE_CODIM1)
		SI TABLE_CODIM1.SELECTION[i]=1 ALORS
			TableSelectPlus(TABLE_CODIM1,i)
		FIN
	FIN
Merci de votre aide

Raptor92