[Objet métier 2.0] Infos libre sur une ligne de document.
Modérateurs: Super-Apogea, Super Modérateur
12 messages
|Page 1 sur 1
[Objet métier 2.0] Infos libre sur une ligne de document.
Bonjour,
Est ce quelqu'un sait comment faire pour renseigner une infos libre d'une ligne de document.
j'ai bien tenté ça
Ligne.InfoLibre.Item("NumPost") = Article.NumeroDuPoste
mais manque de chance la propriété Ligne.InfoLibre est en lecture seul donc pas d'affectation possible.
Si ça peut aider voici le bout de code en question :
Est ce quelqu'un sait comment faire pour renseigner une infos libre d'une ligne de document.
j'ai bien tenté ça
Ligne.InfoLibre.Item("NumPost") = Article.NumeroDuPoste
mais manque de chance la propriété Ligne.InfoLibre est en lecture seul donc pas d'affectation possible.
Si ça peut aider voici le bout de code en question :
- Code: Tout sélectionner
Merci pour votre aide
Ligne = BonDeCommande.FactoryDocumentLigne.Create
Ligne.SetDefaultArticle(BaseCommercial.FactoryArticle.ReadReference(Article._AR_REF), Article._DL_QTE)
'Le problème est ici
Ligne.InfoLibre.Item("NumPost") = Article.NumeroDuPoste
Ligne.Write() 'Ecriture des lignes
- Super Contributeur
- Messages: 113
- Inscription: Lun 20 Nov 2006 14:16
C'est bon j'ai trouvé comme un grand
Si ça intéresse quelqu'un
Si j'ai bien compris pour accéder aux informations libres il faut que l'objet en question soit persistant et non en mémoire.
Si ça intéresse quelqu'un
- Code: Tout sélectionner
Ligne.Write() 'Ecriture des lignes
Ligne.InfoLibre("NumPost") = Article.NumeroDuPoste
Ligne.Write()
Si j'ai bien compris pour accéder aux informations libres il faut que l'objet en question soit persistant et non en mémoire.
- Super Contributeur
- Messages: 113
- Inscription: Lun 20 Nov 2006 14:16
Bonjour,
j'ai vu que tu a reussi à résoudre ton problème.
J'ai le même problème que toi, mais je n'arrive pas a le résoudre, en effet le code que tu a cité ne marche pas.
en quel language est tu?
moi je suis en access 97
l'initialisation:
j'ai essayé plusieurs methodes:
rien ne marche, si je place un espion sur infolibre, il contient toujours 2 valeurs, item1 (variant/int) et item2(variant/string)
je suis perdu ...
j'ai vu que tu a reussi à résoudre ton problème.
J'ai le même problème que toi, mais je n'arrive pas a le résoudre, en effet le code que tu a cité ne marche pas.
en quel language est tu?
moi je suis en access 97
l'initialisation:
- Code: Tout sélectionner
Dim four As IBOFournisseur2
Set four = BaseCpta.FactoryFournisseur.ReadNumero("TEST")
j'ai essayé plusieurs methodes:
- Code: Tout sélectionner
.InfoLibre("CFAM")
- Code: Tout sélectionner
.InfoLibre(1)
rien ne marche, si je place un espion sur infolibre, il contient toujours 2 valeurs, item1 (variant/int) et item2(variant/string)
je suis perdu ...
- Posteur néophyte
- Messages: 16
- Inscription: Mer 7 Nov 2007 15:19
ricil78 a écrit:Je suis en VB.NET 2005
Es-tu sure d'être sur le bon objet
Ton info libre est elle bien sur les fournisseurs dans la base ?
Si oui, quel est ton message d'erreur ?
effectivement ce n'est pas le cas pour CFAM, j'avais juste rajouté le champ en base.
Cependant j'ai essayé de le rajouter à partir de l'interface Sage, est je me retrouve avec une erreur "impossible d'executer sp_executesql"...
par contre, l'infolibre(1) et (2) existent déjà , si je leurs met une valeurs, il n'y a aucun problèmes, mais au moment de faire le write..ereur, pourtant j'ai essayer de faire comme toi...
- Posteur néophyte
- Messages: 16
- Inscription: Mer 7 Nov 2007 15:19
par contre, l'infolibre(1) et (2) existent déjà , si je leurs met une valeurs, il n'y a aucun problèmes, mais au moment de faire le write..ereur, pourtant j'ai essayer de faire comme toi...
A ce moment là c'est quoi ton message d'erreur ?
PS : tu as pas droit à la hotline sage spécialisé objet métier ?
- Super Contributeur
- Messages: 113
- Inscription: Lun 20 Nov 2006 14:16
ricil78 a écrit:par contre, l'infolibre(1) et (2) existent déjà , si je leurs met une valeurs, il n'y a aucun problèmes, mais au moment de faire le write..ereur, pourtant j'ai essayer de faire comme toi...
A ce moment là c'est quoi ton message d'erreur ?
PS : tu as pas droit à la hotline sage spécialisé objet métier ?
l'erreur exacte:
erreur d'execution -2621 (fffff5c3):
erreur de cohérence
sauf que bon, il n'y a rien sur le champ en question
ma boite n'a pas de partenariat avec Sage, nous travaillons avec un partenaire Sage, qui n'est pas tout le temps disponible.
En attendant, on se débrouille comme on peut
- Posteur néophyte
- Messages: 16
- Inscription: Mer 7 Nov 2007 15:19
ricil78 a écrit:Si tu peux mets un peu plus de code,
histoire que je voie ce que tu fais avec les valeurs et comment tu les traites.
pouvoir t'aider un peu plus car là j'ai pas beaucoup d'information sur ton code pour te donner des pistes
fconnexionsage:
- Code: Tout sélectionner
strFile = "c:\PAMSAGE"
strLoginSage = "<Administrateur>"
strPasswordSage = ""
BaseCpta.Name = strFile & ".mae"
BaseCpta.Loggable.UserName = strLoginSage
BaseCpta.Loggable.UserPwd = strPasswordSage
BaseCial.CptaApplication = BaseCpta
BaseCial.Name = strFile & ".gcm"
BaseCial.Loggable.UserName = strLoginSage
BaseCial.Loggable.UserPwd = strPasswordSage
If Not BaseCial.IsOpen Then
BaseCial.Open
End If
fonction:
- Code: Tout sélectionner
fConnexionSage
Dim four As IBOFournisseur2
Set four = BaseCpta.FactoryFournisseur.ReadNumero("TEST")
With four
.Write
.InfoLibre(2) = "test"
.Write
End With
j'ai vraiment faire le strict minimum pour mes tests ...
j'ai verifier dans sage entreprise et dans l'espionneur vba, infolibre(2) correspond à un champ string
- Posteur néophyte
- Messages: 16
- Inscription: Mer 7 Nov 2007 15:19
Essaye comme ça :
Ce qui change avec ton code :
ton 1er Write pour moi n'est pas utile dans ton cas.
Explication :
Etant donné que tu récupères un enregistrement dans la base la partie .InfoLibre(2) existe déjà dans l'objet que tu répères.
Alors que dans le cas d'une création d'objet les parties infoslibre n'existent pas dans l'objet et donc tu es obligé de faire un write pour créer l'infos libre dans l'objet afin de pouvoir l'utiliser.
- Code: Tout sélectionner
fConnexionSage
Dim four As IBOFournisseur2
Set four = BaseCpta.FactoryFournisseur.ReadNumero("TEST")
With four
.InfoLibre(2) = "test"
.Write
End With
Ce qui change avec ton code :
ton 1er Write pour moi n'est pas utile dans ton cas.
Explication :
Etant donné que tu récupères un enregistrement dans la base la partie .InfoLibre(2) existe déjà dans l'objet que tu répères.
Alors que dans le cas d'une création d'objet les parties infoslibre n'existent pas dans l'objet et donc tu es obligé de faire un write pour créer l'infos libre dans l'objet afin de pouvoir l'utiliser.
- Super Contributeur
- Messages: 113
- Inscription: Lun 20 Nov 2006 14:16
ricil78 a écrit:Essaye comme ça :
- Code: Tout sélectionner
fConnexionSage
Dim four As IBOFournisseur2
Set four = BaseCpta.FactoryFournisseur.ReadNumero("TEST")
With four
.InfoLibre(2) = "test"
.Write
End With
Ce qui change avec ton code :
ton 1er Write pour moi n'est pas utile dans ton cas.
Explication :
Etant donné que tu récupères un enregistrement dans la base la partie .InfoLibre(2) existe déjà dans l'objet que tu répères.
Alors que dans le cas d'une création d'objet les parties infoslibre n'existent pas dans l'objet et donc tu es obligé de faire un write pour créer l'infos libre dans l'objet afin de pouvoir l'utiliser.
c'était mon code de depart (le 1er write avait été mit car j'était desesperé), on est en cours de migration en 2003, je ferais l'essai en début d'aprem.
merci d'avance, je ferais un +1 apres tests
- Posteur néophyte
- Messages: 16
- Inscription: Mer 7 Nov 2007 15:19
Bonjour,
je rencontre un petit problème urgent sur l'enregistrement d'une information libre à la ligne de document de type Table (liste de valeurs d'info libre).
Comment gère-t-on ce cas de figure (aucun exemple dans la doc, c'est la première fois que j'ai ce cas de figure à gérer).
Si quelqu'un a un exemple de code en .NET, je suis preneur, à défaut, dans n'importe quel langage ça ira.
Merci d'avance
je rencontre un petit problème urgent sur l'enregistrement d'une information libre à la ligne de document de type Table (liste de valeurs d'info libre).
Comment gère-t-on ce cas de figure (aucun exemple dans la doc, c'est la première fois que j'ai ce cas de figure à gérer).
Si quelqu'un a un exemple de code en .NET, je suis preneur, à défaut, dans n'importe quel langage ça ira.
Merci d'avance
- Super Contributeur
- Messages: 129
- Inscription: Jeu 12 Juil 2007 10:39
12 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités