IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Problème assemblages .net


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Problème assemblages .net
    Bonjour,
    S'il vous plait j'ai un petit souci avec l'utilisation d'assemblages .net
    j'utilise l'assemblage OM sage pour écrire dans la base Sage 100 (Interop.Objets100cLib.dll).
    Quand j'écris le code en Windev j'ai certaines fonctions fonctionnent sans problème comme :
    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
    pclBaseCial est un BSCIALApplication100cClass dynamique //OK
    pclAutCpta est un BSCPTAApplication100cClass dynamique//OK
    pclBaseCial = new BSCIALApplication100cClass//OK
    pclAutCpta= new BSCPTAApplication100cClass//OK
    ResRep est une chaîne = SysRep(srMesDocuments)//OK
    pclBaseCial.Name=ResRep+"\Sage\Bijou.gcm"//OK
    pclBaseCial.UserName="<Administrateur>"//OK
    pclBaseCial.UserPwd=""//OK
    pclBaseCial.Open()//OK
    pclAutCpta.Name=ResRep+"\Sage\BIJOU.MAE"//OK
    pclAutCpta.UserName="<Administrateur>"//OK
    pclAutCpta.UserPwd=""//OK
    pclAutCpta.Open()//OK
    pclCollTiers est un objet IBICollection dynamique=Null//OK
    pclOObjetTier est un objet IBOClient3 dynamique=Null//OK
    pclFac est un objet IBOClientFactory3 dynamique//OK
    pclFac=pclAutCpta:FactoryClient//OK
    Mais d'autre fonction me retourne une erreur comme celle-ci :
    pclOObjetTier = pclFac.Create()// ERREUR
    La dernière ligne m'envoie un message d'erreur:
    L'invocation de la méthode <Create()> du type <__ComObject> a échoué
    sachant que le code .net fonctionne correctement:
    ObjetClient = BaseCpta.FactoryClient.Create()
    Merci d'avance.
    Fatima

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 342
    Points : 9 481
    Points
    9 481
    Par défaut
    Bonjour,

    Je ne connais pas du tout cet assemblage, mais, j'ai une question : As-tu essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pclOObjetTier = pclAutCpta:FactoryClient.Create()

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Oui j'ai essayé ça et même le code de la méthode générique mais même souci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pclOObjetTier=pclAutCpta:FactoryClient."Create<Type>"()
    Merci bien

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 342
    Points : 9 481
    Points
    9 481
    Par défaut
    Et en remplaçant le ":" par "." :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pclAutCpta.FactoryClient.Create()
    Il y a une discussion (Delphi) sur le même souci ici

    Autre idée : ne pas mettre dynamique (ni = NULL) lors de la déclaration de la variable pclOObjetTier.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Je te remercie beaucoup frenchsting pour ton aide précieuse,

    le problème c'est que j'ai tout essayé, ça fait une semaine que je galère sur ce sujet... pour la discussion Delphi je vais t'expliquer ce qui j'ai fait mais ça n'a pas marché
    J'ai remarqué qu'il a affecté un type BaseCpta.FactoryClient.Create as IBOClient3;,
    j'ai fait pareil en Windev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pclOObjetTier=pclAutCpta.FactoryClient."Create<IBOClient3>"()
    mais malheureusement même erreur

    Je cherche encore...

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 342
    Points : 9 481
    Points
    9 481
    Par défaut
    Comme tu es partie sur les "dynamique", j'ai repensé aux histoires d'allocation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pclOObjetTier est un objet IBOClient3 dynamique
    pclOObjetTier = allouer un IBOClient3
    pclOObjetTier = pclAutCpta:FactoryClient.Create()

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Nom : Capt.png
Affichages : 1025
Taille : 8,1 Ko

    Ça c'est parmi les problèmes que j'ai , impossible d'instancier une classe abstraite... j'ai un grand problème d’allocation

    Par contre le Code .net est très simple et ne demande pas tout ça

  8. #8
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 507
    Points : 10 230
    Points
    10 230
    Par défaut
    As-tu essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pclOObjetTier = allouer un pclAutCpta:FactoryClient.Create()

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Nom : cap3.png
Affichages : 995
Taille : 2,4 Ko

    Oui j'ai essayé ça aussi mais y'avait une erreur de syntaxe

    Par contre y'a des fonctions qui passent qui proviennent de la même classe par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pclCollTiers est un objet IBICollection dynamique
    pclCollTiers=pclAutCpta.FactoryClient.list
    c'est juste certaines méthodes qui me renvoient ce message d'erreur

    Merci bien
    Images attachées Images attachées  

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 342
    Points : 9 481
    Points
    9 481
    Par défaut
    Bonjour

    et ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pclOObjetTier = allouer un pclFac.Create()

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour frenchsting

    Une erreur de syntaxe

    Nom : cap4.png
Affichages : 1028
Taille : 2,3 Ko


    Merci bien

  12. #12
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 342
    Points : 9 481
    Points
    9 481
    Par défaut
    Et en mettant ":" ?

    Une question : as-tu un moyen de voir les méthodes existantes dans ton assemblage ?

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Ok je vais t'envoyer tous les éléments:

    dans une image jointe je t'ai envoyé la définition de la méthode Create()
    ************************************************************************************************************
    Le code initial .net
    *************************************************************************************************************
    Code VB.NET : 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
     
    Option Strict Off
    Imports Objets100cLib
    Imports System
    Module CreationObjetClient
     
     
    Sub Main()
    Dim BaseCpta As New BSCPTAApplication100c
    ' (1)
    Dim ObjetClient As IBOClient3 = Nothing
    If OuvreBaseCpta(BaseCpta, "C:\temp\Bijou.mae") Then
    If CreeObjetClient(BaseCpta, ObjetClient) Then
    Console.WriteLine("Objet Client créé !")
    End If
    FermeBaseCpta(BaseCpta)
    End If
    End Sub
     
     
    Function CreeObjetClient(ByRef BaseCpta As BSCPTAApplication100c, ByRef ObjetClient As IBOClient3) As Boolean
    Try
    ' (2)
    ObjetClient = BaseCpta.FactoryClient.Create()
    Return True
    Catch ex As Exception
    Console.WriteLine("Erreur en création d'un nouvel objet Client : {0}", ex.Message)
    Return False
    End Try
    End Function
     
     
    Function OuvreBaseCpta(ByRef BaseCpta As BSCPTAApplication100c, _
    ByVal NomBaseCpta As String, Optional ByVal Utilisateur As String = "<Administrateur>", _
    Optional ByVal MotDePasse As String = "") As Boolean
    Try
    BaseCpta.Name = NomBaseCpta
    BaseCpta.Loggable.UserName = Utilisateur
    BaseCpta.Loggable.UserPwd = MotDePasse
    BaseCpta.Open()
    Return True
    Catch ex As Exception
    Console.WriteLine("Erreur en ouverture de base comptable : {0}", ex.Message)
    Return False
    End Try
    End Function

    Nom : ClasseCompta.png
Affichages : 1034
Taille : 9,9 Ko
    Nom : Ibofactory.png
Affichages : 1080
Taille : 18,4 Ko
    Nom : Defini.png
Affichages : 1068
Taille : 79,7 Ko

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 249
    Points : 12 895
    Points
    12 895
    Par défaut
    Bonjour,
    Peut-être que la classe IBOClientFactory3 a besoin que certains membres soient affectés avant de pouvoir appeler la méthode Create().
    Est-ce que tu obtiens des infos supplémentaires si tu mets la ligne de code dans un bloc "quand exception dans.. faire.." avec un ExceptionInfo() ?

    Dernière "test", même si je me doute du résultat: si tu déclares pclOObjetTier comme étant un objet dynamique (sans préciser son type exact) ?

    Tatayo.

  15. #15
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 507
    Points : 10 230
    Points
    10 230
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Dernière "test", même si je me doute du résultat: si tu déclares pclOObjetTier comme étant un objet dynamique (sans préciser son type exact) ?
    Ou en variant ?

  16. #16
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    J'ai testé les deux cas et même souci:

    Nom : captvar.png
Affichages : 984
Taille : 2,6 Ko

    pour la classe IBOClientFactory3 je ne crois pas que je dois affecter autres membres avant car selon la documentation
    c'est très simple

    Code .net
    Code VB.NET : 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
     
    Option Strict Off
    Imports Objets100cLib
    Imports System
    Module CreationObjetClient
     
     
    Sub Main()
    Dim BaseCpta As New BSCPTAApplication100c
    ' (1)
    Dim ObjetClient As IBOClient3 = Nothing
    If OuvreBaseCpta(BaseCpta, "C:\temp\Bijou.mae") Then
    If CreeObjetClient(BaseCpta, ObjetClient) Then
    Console.WriteLine("Objet Client créé !")
    End If
    FermeBaseCpta(BaseCpta)
    End If
    End Sub
     
     
    Function CreeObjetClient(ByRef BaseCpta As BSCPTAApplication100c, ByRef ObjetClient As IBOClient3) As Boolean
    Try
    ' (2)
    ObjetClient = BaseCpta.FactoryClient.Create()
    Return True
    Catch ex As Exception
    Console.WriteLine("Erreur en création d'un nouvel objet Client : {0}", ex.Message)
    Return False
    End Try
    End Function
     
     
    Function OuvreBaseCpta(ByRef BaseCpta As BSCPTAApplication100c, _
    ByVal NomBaseCpta As String, Optional ByVal Utilisateur As String = "<Administrateur>", _
    Optional ByVal MotDePasse As String = "") As Boolean
    Try
    BaseCpta.Name = NomBaseCpta
    BaseCpta.Loggable.UserName = Utilisateur
    BaseCpta.Loggable.UserPwd = MotDePasse
    BaseCpta.Open()
    Return True
    Catch ex As Exception
    Console.WriteLine("Erreur en ouverture de base comptable : {0}", ex.Message)
    Return False
    End Try
    End Function


    Pour le cas exception je n'ai que ce message :
    L'invocation de la méthode <Create()> du type <__ComObject> a échoué

    je suis vraiment désolée et merci bien pour vos efforts

  17. #17
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 854
    Points : 5 389
    Points
    5 389
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Quand une documentation marque "c'est très simple", ou que sur un emballage il y a marqué "ouverture facile", il faut commencer à se méfier.

  18. #18
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Quand une documentation marque "c'est très simple", ou que sur un emballage il y a marqué "ouverture facile", il faut commencer à se méfier.
    je commence à pleurer, c'est la première fois que je bloque de cette manière sur un sujet....

  19. #19
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 507
    Points : 10 230
    Points
    10 230
    Par défaut
    Citation Envoyé par MobilityDev Voir le message
    je commence à pleurer, c'est la première fois que je bloque de cette manière sur un sujet....
    Il ne faut pas abandonner. Est-ce que tu as pu trouver des codes sources dans d'autres langages qui le font ?
    Normalement, y a toujours moyen de le faire avec Windev, il faut juste trouver la bonne formule.
    Courage.

  20. #20
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 342
    Points : 9 481
    Points
    9 481
    Par défaut
    Une question : ça ne serait pas une histoire de compatibilité windows/framework .net ?

    Tu as bien la "bonne" version du framework .net ?

Discussions similaires

  1. [WD17] Problème avec assemblage .NET
    Par nuFox dans le forum WinDev
    Réponses: 14
    Dernier message: 17/10/2017, 09h15
  2. [WD17] Problème avec un assemblage .Net
    Par laurent30s dans le forum WinDev
    Réponses: 3
    Dernier message: 10/07/2012, 15h44
  3. Réponses: 10
    Dernier message: 26/08/2008, 10h00
  4. problème avec net::http
    Par piotr dans le forum Modules
    Réponses: 3
    Dernier message: 20/03/2006, 10h44
  5. [D2005] Utiliser un assemblage .Net
    Par giloutho dans le forum Delphi .NET
    Réponses: 7
    Dernier message: 27/07/2005, 00h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo