Je chercher a creer des document interne dans sage 100 via windev.
J'arrive a creer les entete mais pas les lignes de pieces.
je ne comprend pas pk lors de ma methode write je me retrouve avec un message d'erreur:
Problème à la création de la ligne Une erreur s'est produite Vous avez demandé à manipuler le fichier n°2 qui n'a pas été ouvert par fOuvre ou fCrée.
voici mon code pour information il fonction parfaitement avec les commande et les devis.
Merci de votre aide car je suis completement bloqué la.
- Code: Tout sélectionner
//Recherche de l'article
SI ChercheArticle_OM(-1, Monarticle) <> "" ALORS
MonMessage = "Article "+ Monarticle+ " inconnu ! Impossible de créer une commande pour cet article"
RENVOYER MonMessage
FIN
QUAND EXCEPTION DANS
SI (Ras_salebil.biltyp_code="LC") ALORS
LaLigneCommande_OM = LaCommande_OM>>FactoryDocumentLigne>>Create //on cree la ligne de commande pour les document interne mais visiblement ca se passe mal
SINON
LaLigneCommande_OM = LaCommande_OM>>FactoryDocumentLigne>>Create //devis,bon de commande pas de pb
FIN
SI Nb_Gamme_Article = 0 ALORS
LaLigneCommande_OM>>SetDefaultArticle(LArticle_OM, quantite)
FIN
SI Nb_Gamme_Article = 1 ALORS
N1 = LArticle_OM>>FactoryArticleGammeEnum1>>List>>Count
I1 = 0
I1 = I1 + 1
SI I1 > N1 ALORS RENVOYER Faux
LenumereDeGamme1_OM = LArticle_OM>>FactoryArticleGammeEnum1>>List>>Item(I1)
LaLigneCommande_OM>>SetDefaultArticleMonoGamme(LenumereDeGamme1_OM, quantite)
FIN
SI Nb_Gamme_Article = 2 ALORS
N1 = LArticle_OM>>FactoryArticleGammeEnum1>>List>>Count
N2 = LArticle_OM>>FactoryArticleGammeEnum2>>List>>Count
I1 = 0
I2 = 0
I1 = I1 + 1
SI I1 > N1 ALORS RENVOYER Faux
LenumereDeGamme1_OM = LArticle_OM>>FactoryArticleGammeEnum1>>List>>Item(I1)
I2 = I2 + 1
SI I2 > N2 ALORS RENVOYER Faux
LenumereDeGamme2_OM = LArticle_OM>>FactoryArticleGammeEnum2>>List>>Item(I2)
LaLigneCommande_OM>>SetDefaultArticleDoubleGamme(LenumereDeGamme1_OM,LenumereDeGamme2_OM, quantite)
FIN
EcritFichierLog("AVANT ECRITRUTRER um commande00:"+ Ras_salebil.full_ref , " OK")
LaLigneCommande_OM>>DO_DateLivr = "1900/01/01"
LaLigneCommande_OM>>write
EcritFichierLog("APRES ECRITRUTRER um commande00:"+ Ras_salebil.full_ref , " OK")
//Si tarif sur la ligne
HLitRecherchePremier(RAS_TARIF,art_codcst_code,HConstruitValClé(RAS_TARIF,art_codcst_code, Ras_salebilln.art_cod , Ras_salebil.cst_code ))
SI HTrouve ALORS
MaReduc = RAS_TARIF.price
SI EnModeDebug ALORS
EcritFichierLog("Recherche de la remise par client : Art : " + Ras_salebilln.art_cod + " Clt : " + Ras_salebil.cst_code +" OK : Remise = " + MaReduc, " OK")
FIN
SINON
HLitRecherchePremier(Customer,cst_code, Ras_salebil.cst_code )
HLitRecherchePremier(RAS_TARIF,art_codcstcat_code,HConstruitValClé(RAS_TARIF,art_codcstcat_code, Ras_salebilln.art_cod , Customer.cstcat_code ))
SI HTrouve ALORS
MaReduc = Val(Ras_salebilln.discount)
SI EnModeDebug ALORS
EcritFichierLog("Recherche de la remise par categ client : Art : " + Ras_salebilln.art_cod + " Categ Clt : " + Customer.cstcat_code+ " OK : Remise = " + MaReduc , " OK")
FIN
SINON
FIN
FIN
// fin
//EcritFichierLog("Ras_salebilln.discount" +Ras_salebilln.discount,"ECHEC")
LaLigneCommande_OM>>DL_PrixUnitaire = Ras_salebilln.unit_price //prix unitaire
SI Ras_salebilln.rk_axe_codif1 =1 ALORS
LaLigneCommande_OM>>AG_NO1 = Ras_salebilln.syscodif_code_ext1 + ","
FIN
SI Ras_salebilln.rk_axe_codif2 =2 ALORS
LaLigneCommande_OM>>AG_NO2 = Ras_salebilln.syscodif_code_ext2 + ","
FIN
SI Ras_salebilln.discount <> "" ALORS
LaLigneCommande_OM>>Remise>>Remise(1)>>REM_Type = 1
LaLigneCommande_OM>>Remise>>Remise(1)>>REM_Valeur = Ras_salebilln.discount
LaLigneCommande_OM>>Remise>>Remise(1)>>REM_Type = 1
MaReduc=0
LaLigneCommande_OM>>Write
FIN
MonMessage = ""
RENVOYER MonMessage
FAIRE
MonMessage = "Problème à la création de la ligne "
MonMessage+="Une erreur s'est produite " + ErreurInfo(errMessage)
RENVOYER MonMessage
FIN


