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 :

Portée de variable


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 141
    Par défaut Portée de variable
    salut à tous !
    je sais pertinemment que j'ai un problème de portée (visibilité) de variable.
    d'abord je mets le code ensuite j'explique
    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
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.Windows.Forms;
    using System.Data.SqlClient;
     
    namespace LeProjet_GBDR
    {
        class ExportComparaison
        {
     
            int Cpt = 1;
     
                Microsoft.Office.Interop.Excel._Application Excel_App;
                Microsoft.Office.Interop.Excel._Workbook Excel_Clsseur;
     
     
            public void Ouvre_Excel(String NomBSC,DateTime DateDebut, DateTime DateFin,ArrayList NbreSite,ArrayList NbreCell)
            {
                Excel_App = new Microsoft.Office.Interop.Excel.ApplicationClass();
                Excel_App.ReferenceStyle = Microsoft.Office.Interop.Excel.XlReferenceStyle.xlR1C1;
                Excel_App.Visible = false;
     
                object Missing = System.Reflection.Missing.Value;
     
                Excel_Clsseur = Excel_App.Workbooks.Add(Missing);
                Microsoft.Office.Interop.Excel.Sheets Excel_Flles = Excel_Clsseur.Sheets;
     
     
     
     
                        Microsoft.Office.Interop.Excel._Worksheet Feuil = (Microsoft.Office.Interop.Excel._Worksheet)Excel_Flles[1];
                        Rempli_Feuille( query, NomFeuille, NbreSite,NbreCell);
                        Excel_App.Visible = true;       
     
            }
     
     
     
     
            private void Rempli_Feuille( string Request, string Name,ArrayList NbreSite,ArrayList NbreCell)
            {
     
     
                Feuil.Name = Name;
     
                int Len = NbreSite.Count;
                    if (Len > 255)
                    {
                        Len = 255;
                    }            
     
     
                    Microsoft.Office.Interop.Excel.Range Rge = Feuil.get_Range(Feuil.Cells[Cpt, 2], Feuil.Cells[Cpt, Len]);
     
                    Rge.Cells.Borders.Color = 5;
                    for (int i = 1; i <= Len; i++)
                    {
     
     
                        Rge.Cells[1, i] = NbreSite[i-1].ToString();
     
                    }
     
                    Rge.Cells.AutoFormat(Microsoft.Office.Interop.Excel.XlRangeAutoFormat.xlRangeAutoFormatSimple, 9, 0, 0, 0, 0, 0);
     
                    Cpt += 1;
     
                        Cursor.Current = Cursors.WaitCursor;
     
                        Rge = Feuil.get_Range(Feuil.Cells[1, 1], Feuil.Cells[2, 1]);
                        Rge.Cells.Borders.Color = 5;
                        Rge.Cells.Interior.ColorIndex = 16;
                        Rge.Cells[1, 1] = "LES SITES";
                        Rge.Cells[2, 1] = "LES CELLULES";
     
                        Rge = Feuil.get_Range(Feuil.Cells[Cpt, 2], Feuil.Cells[Cpt, Len]);
     
                        Rge.Cells.Borders.Color = 5;
     
                        Rge.Cells.AutoFormat(Microsoft.Office.Interop.Excel.XlRangeAutoFormat.xlRangeAutoFormatSimple, 9, 0, 0, 0, 0, 0);
                        for (int i = 1; i <= Len; i++)
                        {
     
                            Rge.Cells[1, i] = NbreCell[i-1].ToString();                       
     
                        }
                        Cpt += 1;
     
                Cursor.Current = Cursors.Default;
     
            }
     
     
     
        }
    }
    ça c'est le code de ma classe qui en fait doit exporter des données provenant de diverses requêtes sur une meme feuille excel avec une seule application excel.
    Mon problème c'est de pouvoir acceder à ma variable nommée Feuil dans la methode Rempli_Feuille.
    quelqu'un aurait il une idée ? merci d'avance

  2. #2
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Soit tu passe ta variable feuil à ta méthode rempli_feuille ou bien que tu la dans un accessor

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 141
    Par défaut
    Au fait je ne peux pas passer la variable feuille en parametre parce que je dois acceder à la methode depuis une autre classe . je l'ai dejà declarée en tant que methode publique et je veux juste pouvoir remplir la meme feuille avec des requetes differentes. comment faire ?

  4. #4
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private Microsoft.Office.Interop.Excel._Worksheet _feuil;
    protected Microsoft.Office.Interop.Excel._Worksheet Feuil
    {
    private set { _feuil = value; }
    get { return _feuil;}
    }
    J'ai mit private au set au cas ou tu veux que ca soit seulement la classe qui puisse setter la variable et le get est protected car tu veux surement dans une autre classe (qui hérite) avoir access à la feuil

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 141
    Par défaut
    merci beaucoup !
    j'ai essayé d'adapter mais à vrai dire je ne comprends pas ce code.
    si vous regardez un peu plus haut dans le code de ma classe, je souhaiterais pouvoir << Voir >> ma variable Feuil dans ma methode public Rempli_Feuille.Mais la variable Feuil sera elle déclarée dans la methode Public Ouvre_Excel ( ou ailleurs ). l'objectif etant de pouvoir appeler directement la methode Rempli_Feuille depuis une autre classe (un fromulaire) qui va fournir les paramètres pour Rempli_Feuille de sorte à avoir à la sortie un seul classeur excel et une feuille ou il y'a mes differentes données provenant de diverses requetes.
    Ma methode Rempli_Feuille utilise ma variable Feuil pour la remplir.
    presentement quand j'execute le programme ouvre deux classeurs excel differents

  6. #6
    Membre éclairé Avatar de psycho_38
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 55
    Par défaut
    Salut LeNeutrino,

    shwin ta donnée ta réponse mais si tu n'est pas à l'aise avec les propriétés, utilise une variable à porté de classe comme ca elle sera visible dans toutes ta classe et donc chaque methode pourra y acceder selo tes besoins...

  7. #7
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Citation Envoyé par LeNeutrino
    merci beaucoup !
    j'ai essayé d'adapter mais à vrai dire je ne comprends pas ce code.
    si vous regardez un peu plus haut dans le code de ma classe, je souhaiterais pouvoir << Voir >> ma variable Feuil dans ma methode public Rempli_Feuille.Mais la variable Feuil sera elle déclarée dans la methode Public Ouvre_Excel ( ou ailleurs ). l'objectif etant de pouvoir appeler directement la methode Rempli_Feuille depuis une autre classe (un fromulaire) qui va fournir les paramètres pour Rempli_Feuille de sorte à avoir à la sortie un seul classeur excel et une feuille ou il y'a mes differentes données provenant de diverses requetes.
    Ma methode Rempli_Feuille utilise ma variable Feuil pour la remplir.
    presentement quand j'execute le programme ouvre deux classeurs excel differents
    Si tu veux l'utiliser dans tes 2 méthodes, il ne faut pas la déclarer dans une des 2, mais bien à l'extérieur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class blabla
    {
      string s = string.empty;
      public void method1()
      {
        s = "salut"; //Initialisation de ta variable
      }
      public string method2()
      {
        return s; //retour de la variable qui est initialiser dans method1
      }
    }

Discussions similaires

  1. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  2. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  3. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  4. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05
  5. [FLASH MX 2004][XML]portée de variable
    Par marco_ dans le forum Flash
    Réponses: 8
    Dernier message: 29/04/2004, 15h47

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