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

Windows Forms Discussion :

Equivalent VarArrayOf de Delphi Sur Visual studio


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut Equivalent VarArrayOf de Delphi Sur Visual studio
    Bonjour ,
    Je voudrai savoir quel était l'equivalent de la methode VararrayOf de Delphi sur Visual studio ! Je trime dessus ; toute reponse est bienvenue .

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    ici ce n'est pas le forum vba
    de plus si tu ne décris pas ce que fait ton VararrayOf de Delphi y a moins de chance d'avoir une réponse
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Oui Merci !!
    Pour expliquer en detail :
    Je mets à jour listearticle grâce à Addwhere en comparant les ID et je developpe une application qui etait avant en delphi qui utilise une methode VarArrayof et je cherche l'equivalent sur VB .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     cursor = MasterContext.ClassManager.CreateCursor("TTable")
            ListeFamille = MasterContext.ClassManager.CreateObjectList("TTable")
            ListeFamille.addwhere("", "oid", False, Nothing)
     
            For i As Integer = 0 To ListeFamille.count - 1
                ListeArticle = MasterContext.ClassManager.CreateObjectList("TTable")
                ListeFamille.GetInstance(i, Table)
                'Dim ArrList As ArrayList()
     
     
                ListeArticle.addwhere("oidTTablel=%1", "oid", True, 'VarArrayof(Table.oid))

  4. #4
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Citation Envoyé par sperot51 Voir le message
    ici ce n'est pas le forum vba
    de plus si tu ne décris pas ce que fait ton VararrayOf de Delphi y a moins de chance d'avoir une réponse
    On ne sait toujours pas ce que fait VararrayOf de Delphi !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Bon j'etais déja dans le forum VB , un moderateur a deplacé Mon Post pour le mettre là .
    et pour repondre à ta question , VarArrayOF recupére "Il me semble " Toutes les données d'un tableau défini .

  6. #6
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Tu peux donner un exemple d'utilisation de VararrayOf ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Citation Envoyé par pc75 Voir le message
    Re,

    Tu peux donner un exemple d'utilisation de VararrayOf ?
    Voici le Code en Delphi que je suis en train de traduire en VB

    VarArrayOf Ajoute a listeArticle les articles lorsqu'on a le meme id dans ListeFamille et Table.oid
    Code delphi : 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
    69
    70
    71
    72
    73
    listeFamille:=MasterContext.ClassManager.CreateObjectList('TCategorieCommercialProduitVente');
        listeFamille.Addwhere('','oid',FALSE,unassigned);
     
        for i:=0 to listeFamille.count-1 do
        begin
        listearticle:=unassigned;
        listearticle:=MasterContext.ClassManager.CreateObjectList('TProduitVente');
        listeFamille.Getinstance(i,Table);
    'Ici VarArrayOf Utilisé pour implementer    ListeArticle listearticle.Addwhere('(oidCategorieCommercial=%1)','oid',TRUE,VARARRAYOF([Table.oid]));
        if listearticle.count<>0 then
        begin
        listeproduit:=MasterContext.ClassManager.CreateObjectList('TProduit');
        for j:=0 to listearticle.count-1 do
        begin
        listearticle.Getinstance(j,article);
        listeproduit.Addwhere('(oidProduitVente=%1) and (publiable=%2)','oid',TRUE,VARARRAYOF([article.oid,'1'])) ;
        article:=unassigned;
        end;
        if listeproduit.count<>0 then
          begin
              ADOQuery1.close;
              ADOQuery1.sql.Clear;
              ADOQuery1.SQL.Add('select FA_CodeFamille from F_FAMILLE where FA_CodeFamille='''+(table.code)+''' ');
              ADOQuery1.Open;
              if not ADOQuery1.eof then
              //Article existant
              begin
               Memo1.Lines.Add('Famille '''+(table.code)+'''  en cours de modification');
                ADOInsertCLi.close;
                ADOInsertCLi.sql.Clear;
                ADOInsertCLi.SQL.Add(
                'UPDATE  F_FAMILLE SET '+
                'FA_Intitule='''+subs(InsertQuot(Table.Caption),69)+''' '+
                '  where FA_CodeFamille='''+(table.code)+'''' );
                  ADOInsertCli.ExecSQL;
              end
            else
              //Famille inexistant
              begin
               Memo1.Lines.Add('Famille '''+(table.code)+'''  en cours de création');
               if subs(table.code,19)=table.code then
               begin
                ADOInsertCLi.close;
                ADOInsertCLi.sql.Clear;
                ADOInsertCLi.SQL.Add(
                'INSERT INTO F_FAMILLE('+
                ' FA_CodeFamille,FA_Type,FA_Intitule,FA_UniteVen,FA_CatProduit, '+
                ' FA_Coef,FA_SuiviStock,FA_Garantie,FA_Central,FA_Stat01,FA_Stat02,FA_Stat03,FA_Stat04,FA_Stat05,FA_CodeFiscal,FA_Pays,FA_UnitePoids,FA_Escompte,'+   //13
                ' FA_Delai,FA_HorsStat,FA_NotImp,FA_Frais01FR_Rem01REM_Valeur,FA_Frais01FR_Rem01REM_Type,FA_Frais01FR_Rem02REM_Valeur,FA_Frais01FR_Rem02REM_Type,FA_Frais01FR_Rem03REM_Valeur,'+   //8
                ' FA_Frais01FR_Rem03REM_Type,FA_Frais02FR_Rem01REM_Valeur,FA_Frais02FR_Rem01REM_Type,FA_Frais02FR_Rem02REM_Valeur,FA_Frais02FR_Rem02REM_Type,FA_Frais02FR_Rem03REM_Valeur,FA_Frais02FR_Rem03REM_Type,'+ //7
                ' FA_Frais03FR_Rem01REM_Valeur,'+
                ' FA_Frais03FR_Rem01REM_Type,FA_Frais03FR_Rem02REM_Valeur,FA_Frais03FR_Rem02REM_Type,FA_Frais03FR_Rem03REM_Valeur,FA_Frais03FR_Rem03REM_Type,FA_Contremarque,FA_FactPoids,FA_FactForfait,'+  //8
                ' FA_Publie,'+
                'cbProt,cbCreateur,cbReplication,cbFlag)'+
                'VALUES('''+Table.code+''',0,'''+subs(InsertQuot(Table.Caption),69)+''',1,1, '+
                ' 0,0,0,'''','''','''','''','''','''','''','''',0,0, '+
                ' 0,0,0,0,0,0,0,0, '+
                ' 0,0,0,0,0,0,0, '+
                ' 0, '+
                ' 0,0,0,0,0,0,0,0, '+
                ' 0,'+
                ' 0,''COLU'',0,0)'
                 );
                 ADOInsertCLi.ExecSQL;
                 end
                end;
              end;
            Table:=Unassigned;
            //Site:=Unassigned;
            end
     
     
          end;

    Pour etre plus clair , VarArrayof Crée un tableau et y implémente les données

  8. #8
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Le VararrayOf permet (si je ne me trompe) de construire un tableau de taille variable de données de type hétérogéne (Variant).

    J'aurai donc tendance dans ton cas à le remplacer par un tableau d'Object et à utiliser "ParamArray param() As Object" dans la procédure (cf. l'aide de ParamArray).

    Mais c'est pas terrible des tableaux de paramétres quand on a la possibilité de définire des signatures différentes ...
    Donc avant tout chose, vérifie que son utilisation est justifiée : on en fait quoi de ce tableau "poubelle" dans la proc ?

    Cdt.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Citation Envoyé par olsimare Voir le message
    Bonjour.

    Le VararrayOf permet (si je ne me trompe) de construire un tableau de taille variable de données de type hétérogéne (Variant).

    J'aurai donc tendance dans ton cas à le remplacer par un tableau d'Object et à utiliser "ParamArray param() As Object" dans la procédure (cf. l'aide de ParamArray).

    Mais c'est pas terrible des tableaux de paramétres quand on a la possibilité de définire des signatures différentes ...
    Donc avant tout chose, vérifie que son utilisation est justifiée : on en fait quoi de ce tableau "poubelle" dans la proc ?

    Cdt.
    Merci POur ta reponse . addwhere ajoute d'un coup tous les champs specifiés , j'ai essayé de récupérer les champs avec paramArray les champs Ou se trouvent les ID , mais il a pas l'air de les prendre en compte ! je dois peut etre modifier tout le code pour Obtenir le resultat voulu !

  10. #10
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    Bon alors, le code donné par rydjel est un code utiliser pour travailler sur le modèle métier de l'ERP SAGE Ligne 1000 à travers le serveur COM depuis une application extérieure à l'ERP.

    Le code traditionnel est écrit en Delphi parce que le Framework de SAGE Ligne 1000 est un langage propriétaire basé à plus de 90% sur du Delphi 7 et que le support SAGE (le CTD en l'occurence) communique habituellement en Delphi.

    Ceci dit, on peut utiliser d'autres langages pour ataquer le serveur COM et notamment VB.Net


    Le varArrayOf([..,..]) en Delphi se traduira en VB par New Object() {...,...}

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Bon alors, le code donné par rydjel est un code utiliser pour travailler sur le modèle métier de l'ERP SAGE Ligne 1000 à travers le serveur COM depuis une application extérieure à l'ERP.

    Le code traditionnel est écrit en Delphi parce que le Framework de SAGE Ligne 1000 est un langage propriétaire basé à plus de 90% sur du Delphi 7 et que le support SAGE (le CTD en l'occurence) communique habituellement en Delphi.

    Ceci dit, on peut utiliser d'autres langages pour ataquer le serveur COM et notamment VB.Net


    Le varArrayOf([..,..]) en Delphi se traduira en VB par New Object() {...,...}
    Oui Yves Merci d'ailleurs , Donc il me faut juste mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    New object () {MonObjet.id)
    ??

  12. #12
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    yes,

    VarArrayOf([MonObjet.Id]) devient New Object() {MonObjet.Id}



    Bouhhh que c'est pas beau de la requête SQL pour attaquer les tables.
    Bon heureusement que la partie SQL, c'est pour de la ligne 100.

    D'ailleurs c'est quoi ce code ? Conversion L1000 vers L100 ?????

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    yes,

    VarArrayOf([MonObjet.Id]) devient New Object() {MonObjet.Id}



    Bouhhh que c'est pas beau de la requête SQL pour attaquer les tables.
    Bon heureusement que la partie SQL, c'est pour de la ligne 100.

    D'ailleurs c'est quoi ce code ? Conversion L1000 vers L100 ?????
    Oui c'est ca !! Mais faut bien , Merci ! Je peux marquer résolu , ca roule tout seul Maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur d'installation sur visual studio 6.0
    Par nassimmm dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 06/07/2007, 14h26
  2. question sur visual studio 2005
    Par informatik dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 20/12/2006, 13h56
  3. ASP sur visual studio 2005
    Par smtjv dans le forum Visual Studio
    Réponses: 1
    Dernier message: 31/10/2006, 17h30
  4. problème sur visual studio
    Par oliver75 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 10/10/2006, 16h52
  5. Infos sur visual studio express
    Par molo2003 dans le forum MFC
    Réponses: 2
    Dernier message: 10/05/2006, 16h18

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