Enuméré de gammex inexistant
Modérateurs: Super-Apogea, Super Modérateur
3 messages
|Page 1 sur 1
Enuméré de gammex inexistant
Bonjour !
Lorsque je crée un BL d'après un PL, j'ai les objets métiers qui me renvoient "L'énuméré de gamme n'existe pas pour l'article ..."
Faut-il que j'attribue quelque-chose avant ?
Voici la portion de code :
Ca plante sur le .Write();
Merci !
Lorsque je crée un BL d'après un PL, j'ai les objets métiers qui me renvoient "L'énuméré de gamme n'existe pas pour l'article ..."
Faut-il que j'attribue quelque-chose avant ?
Voici la portion de code :
- Code: Tout sélectionner
// Création de la ligne F_DOCLIGNE
ligne_temp = (IBODocumentVenteLigne3)docBL.FactoryDocumentLigne.Create();
qte = docTemp.DL_Qte;
qte_livree = docTemp.DL_QteBL;
// Assignation de l'article
ligne_temp.SetDefaultArticle(baseGescom.FactoryArticle.ReadReference(docTemp.Article.AR_Ref), qte);
// Prix
ligne_temp.DL_PrixRU = docTemp.DL_PrixRU;
ligne_temp.DL_PrixUnitaire = docTemp.DL_PrixUnitaire;
// Remise
ligne_temp.Remise = docTemp.Remise;
if (qte_livree < qte)
{
reliquat = true;
rel_temp = new Dictionary<string, string>();
rel_temp.Add("numPiece", pieceBL);
rel_temp.Add("client", docTemp.Client.CT_Num.ToString());
rel_temp.Add("article", docTemp.Article.AR_Ref.ToString());
rel_temp.Add("qte", qte.ToString());
reliquats.Add(rel_temp);
/*docTemp.DL_Qte = 0.000;
docTemp.DL_QteBC = qte;
docTemp.DL_QteBL = 0.000;
docTemp.Write();*/
}
ligne_temp.Write();
// Commentaire (info libre 1)
ligne_temp.InfoLibre[1] = docTemp.InfoLibre[1];
// enuméré
ligne_temp.EU_Enumere = docTemp.EU_Enumere;
ligne_temp.Write();
//tablignes.Add(ligne_temp);
}
Ca plante sur le .Write();
Merci !
- Posteur habitué
- Messages: 20
- Inscription: Mer 18 Sep 2013 14:52
Re: Enuméré de gammex inexistant
Bonjour,
Si ton article possède une gamme, tu dois utiliser l’instruction :
Ligne.SetDefaultArticleMonoGamme(ArticleGamme1,Quantite)
Si ton article possède deux gammes, tu dois utiliser l’instruction :
Ligne.SetDefaultArticleDoubleGamme(ArticleGamme1,ArticleGamme2,Quantite)
au lieu de Ligne.SetDefaultArticle(ArtSage, Quantite);
Ou ArticleSage : IBOArticle3,
ArticleGamme1 et ArticleGamme2 sont des : IBOArticleGammeEnum3;
Ces deux dernières variables peuvent etre initialisées de la manière suivante :
Article monogamme : ArtGamme1 := ArtSage.FactoryArticleGammeEnum1.ReadEnumere(Gamme1);
Article double gamme : ArtGamme2 := ArtSage.FactoryArticleGammeEnum2.ReadEnumere(Gamme2);
J'espère que ça va t'aider et te mettre sur la piste
Si ton article possède une gamme, tu dois utiliser l’instruction :
Ligne.SetDefaultArticleMonoGamme(ArticleGamme1,Quantite)
Si ton article possède deux gammes, tu dois utiliser l’instruction :
Ligne.SetDefaultArticleDoubleGamme(ArticleGamme1,ArticleGamme2,Quantite)
au lieu de Ligne.SetDefaultArticle(ArtSage, Quantite);
Ou ArticleSage : IBOArticle3,
ArticleGamme1 et ArticleGamme2 sont des : IBOArticleGammeEnum3;
Ces deux dernières variables peuvent etre initialisées de la manière suivante :
Article monogamme : ArtGamme1 := ArtSage.FactoryArticleGammeEnum1.ReadEnumere(Gamme1);
Article double gamme : ArtGamme2 := ArtSage.FactoryArticleGammeEnum2.ReadEnumere(Gamme2);
J'espère que ça va t'aider et te mettre sur la piste
Re: Enuméré de gammex inexistant
Bonjour !
Merci de ta réponse, tu me sauves la !
Çà fonctionne impec, je met le code pour les intéressés :
Avec docTemp = IBODocumentVenteLigne3, issu de docBC.FactoryDocumentLigne.List avec docBC => docBC = baseGescom.FactoryDocumentVente.ReadPiece(DocumentType.DocumentTypeVenteCommande, numPiece);
Merci de ta réponse, tu me sauves la !
Çà fonctionne impec, je met le code pour les intéressés :
- Code: Tout sélectionner
ligne_temp = (IBODocumentVenteLigne3)docPL.FactoryDocumentLigne.Create();
qte = (docTemp.DL_Qte != 0) ? docTemp.DL_Qte : 1;
// Assignation de l'article
if (docTemp.ArticleGammeEnum1 != null)
{
gamme1= docTemp.ArticleGammeEnum1.EG_Enumere.ToString();
}
if (docTemp.ArticleGammeEnum2 != null)
{
gamme2 = docTemp.ArticleGammeEnum2.EG_Enumere.ToString();
}
articleTemp = baseGescom.FactoryArticle.ReadReference(docTemp.Article.AR_Ref);
if (gamme1 != "" && gamme2 != "")
{
artGamme1 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme1);
artGamme2 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme2);
ligne_temp.SetDefaultArticleDoubleGamme(artGamme1, artGamme2, qte);
}
else if (gamme1 != "" || gamme2 != "")
{
if(gamme1!= "" )
{
artGamme1 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme1);
ligne_temp.SetDefaultArticleMonoGamme(artGamme1, qte);
}
else
{
artGamme2 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme2);
ligne_temp.SetDefaultArticleMonoGamme(artGamme2, qte);
}
}
else
{
ligne_temp.SetDefaultArticle(articleTemp, qte);
}
Avec docTemp = IBODocumentVenteLigne3, issu de docBC.FactoryDocumentLigne.List avec docBC => docBC = baseGescom.FactoryDocumentVente.ReadPiece(DocumentType.DocumentTypeVenteCommande, numPiece);
- Posteur habitué
- Messages: 20
- Inscription: Mer 18 Sep 2013 14:52
3 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités