begin process at 2012 02 13 04:47:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > ADDYSHEDULE : VISUALISEUR DE PROGRAMMES

ADDYSHEDULE : VISUALISEUR DE PROGRAMMES


 Information sur la source

Note :
9,83 / 10 - par 6 personnes
9,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :plannification, shedule, windows, forms, gdi Niveau :Initié Date de création :17/12/2005 Date de mise à jour :05/01/2006 20:02:57 Vu / téléchargé :12 884 / 2 189

Auteur : addy

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Dans certains de vos programmes, il vous est certainement arrivé de génèrer un programme (planning, emploi du temps, ...). Le problème, c'est qu'aucun des contrôles Windows Forms standards ne semble avoir été conçu pour afficher ce genre de structure de données. Même l'outil Crystal Reports pourtant intégré à VS.NET ne semble pas être désigné pour ce genre de choses. Il existe certes des solutions sophistiquées mais elles coûtent leur prix. Dans cette source, vous découvrirez un contrôle qui vous permet de visualiser (et même d'éditer) vos programmes, planning et emplois du temps. La démo illustre de son utilisation.


 Conclusion

La demo est écrite en C# pour mettre en évidence l'indépendance des Composants .NET vis à vis du langage dans lequel ils ont étés créés.
AddyShedule et AddyPictureBox font partie d'une bibliothèque de composants personnels. voilà pourquoi vous trouverez de nombreux éléments communs à ces deux sources.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 janvier 2006 20:02:57 :
Des modifications ont été apportées pour permettre une meilleure prise en charge de la collection Items au moment du design

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) IMPORTER/EXPORTER FACILEMENT VOS DONNÉES SOUS DIFFÉRENTS FOR...
Source avec Zip Source .NET (Dotnet) UTILITAIRE CRYSTAL REPORTS
Source avec Zip Source .NET (Dotnet) UTILITAIRE DE CRYPTOGRAPHIE
Source avec Zip Source avec une capture Source .NET (Dotnet) DATALIB : SIMPLIFIEZ-VOUS LA VIE AVEC ADO.NET
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORTER UNE BASE DE DONNEES MS ACCESS VERS MYSQL OU POSTGR...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ par Le Pivert
Source avec une capture GRAPH PHP COURBE DE CHARGE par s.defaye
Source avec Zip Source avec une capture BOULE DE CRISTAL par BLUEBIBUBBLE
VB6 - DÉPLACEMENT D'UN CONTRÔLE SUR UN SEGMENT DE DROITE DÉL... par ucfoutu
Source avec Zip Source .NET (Dotnet) APPLICATION DE DESSIN par fsafsafsaf

 Sources en rapport avec celle ci

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) MODIFICATEUR D'INDICE DE PERFORMANCE WINDOWS 7 par ircland
Source avec Zip Source avec une capture UTILISER LES COMMANDES WINDOWS EN VB par Sechaud
Source avec Zip Source avec une capture Source .NET (Dotnet) WINDOWS XP EMULATOR V1.0 par zippedfire
Source avec Zip Source avec une capture Source .NET (Dotnet) AFFICHER ET MODIFIER DES IMAGES DANS UN DATAGRID par addy

Commentaires et avis

Commentaire de Patrice99 le 30/12/2005 10:04:03

Bravo pour ta source. Pour que ta démo fonctionne du premier coup, je te conseille de changer le chemin de sortie en .\ au lieu de bin\Debug

Commentaire de ienien51 le 10/02/2006 15:06:02

Bonjour,

Je ne suis pas trés experimenté, mais j'aimerais fortement pouvoir utiliser AddyShedule. Est-il possible d'avoir un exemple d'utilisation?

Merci d'avance

Commentaire de crocejf2000 le 11/04/2007 09:01:34

Salut,

Merci beaucoup pour cette source dont je m'inspire grandement pour faire mon propre contôle planning.
Je la trouve très bien écrite, malgré le manque de commentaires sur certaines fonctions.
10/10 !!

Commentaire de casy le 15/09/2008 19:13:30

Merci pour cette source.

Il manque un peu de commentaire dans le code, mais j'ai réussi à comprendre le principal.

Je suis en train de l'adapter pour un dev pour un client. Elle va me permettre d'afficher un planning de chaine de production

J'étais parti, au départ sur des composants "pro" tels que ceux de ComponentOne ou DevXperience. Mais plutot que de payer cher des composants qui ne correspondent pas tout à fait à ce que je veux et je ne maitrise pas au niveau adaptation, cette source a le mérite d'être simple et au moins je maitrise toute l'adaptabilité possible.

Modifs prévues :
- Ajout d'un entête pour les divisions de lignes
- Report des propriétés couleur, style, ... sur les items plutôt que sur le contrôle parent
- Ajout (si j'y arrive) de la gestion Drag&Drop des items
- et plein d'autres choses si j'ai le temps.

Je n'aurais jamais eu l'idée de partir sur cette piste pour développer une source de ce genre alors que finalement c'est relativement simple.

Merci pour ton aide ;)

9/10 pour l'absence de commentaires dans le code

Commentaire de casy le 15/09/2008 19:15:36 9/10

Zut, je suis pas sur que ma note ait été prise en compte, donc je la remet

Commentaire de addy le 16/09/2008 09:51:57

Salut Casy,
ta note a été prise en compte et des commentaires seront ajoutés dans la prochaine mise à jour de la source (dans le démo surtout).

Commentaire de jsiAngers le 17/05/2009 16:00:03

Bonjour,

Merci pour cette source.

Elle m'est très utile.

Je suis en train de faire quelques améliorations :
Exemple : pour permettre la mise en place d'un libellé automatique pour la ligne
Protected Overridable Sub OnQueryRowHeader(ByVal e As HeaderEventArgs)
        '*** Modification JSI du 17/05/09
        'Recherche l'item correspondant à la ligne appelée
        Dim i As Integer
        Dim item As New SheduleItem
        item.Text = "Ligne" & e.Index

        For i = 0 To Items.Count - 1
            If i = e.Index Then
                item = Items(i)
            End If
        Next
        e.Text = item.Text '"Ligne" & e.Index
        RaiseEvent QueryRowHeader(Me, e)
    End Sub

Commentaire de addy le 18/05/2009 10:53:06

Dans cette approche, tu supposes que l'élément du planning qui se trouve à la position e.Index appartient également à la ligne dont on veut connaître le libellé. Dans cet ordre d'idée, on pourrait tout simplement formuler l'algorithme comme ceci:

    If e.Index < Items.Count Then
        e.Text = Items(e.Index).Text
    Else
        e.Text = "Ligne " & e.Index
    End If

Par contre, dans la grande majorité des cas, cette assertion ne sera pas vraie. Donc le mieux c'est de rechercher le premier élément de la ligne dont on veut définir le libellé:

    e.Text = "Ligne " & e.Index
    For Each item As SheduleItem In Items
        If item.Row = e.Index then
            e.Text = item.Text
            Exit For
        End If
    Next

J'espère que ceci apporte de l'eau à ton moulin :)

Commentaire de zaimfaycal le 13/12/2009 14:08:31 10/10

Salut
Merci Addy beaucoup pour cette source

Mais pour mois je travaille sur un projet de gestion des emplois du temps pour un établissement scolaire et je  ne maîtrise que le langage visuel basic .net alors je me demande si il y  un support qui explique comment travaillé avec ce magnifique contrôle pour que je puisse traduire ce code en vb.net et merci d'avance

pour la note c' est 10/10 et même plus :)

Commentaire de addy le 14/12/2009 10:13:42

Le contrôle lui-même est écrit en VB.Net. Seule la démo est en C#. Du reste, tu peux utiliser SharpDevelop pour traduire automatiquement un code C# en VB.Net. N'oublie pas de jeter un coup d'½il sur www.developpez.com; tu y trouveras certainement un bon manuel pour débuter en VB.Net. Bonne programmation.

Commentaire de zaimfaycal le 14/12/2009 17:37:55

merciii, mais j'ai constaté que les donnée se stock sur un fichier xml ,est ce que c'est possible de les stocké dans une base de donné SQL SERVER :D et comment si c'est possible :p
Et désolé pour le dérangement

Commentaire de addy le 16/12/2009 14:50:23

Bien sûr qu'il est possible de stocker les données sur n'importe quel support. Si tu as une BDD avec une table pour le planning, il suffit de charger le contenu de cette dans un DataSet (un bon tuto sur VB.Net t'expliquera comment). Pour le reste, c'est presque sans changement.

Commentaire de zaimfaycal le 30/12/2009 13:12:08

Salut
Merci addy pour l'aide, mais j'ai tjrs un problème, c que pour mon projet le 'SheduleItem' dois contenir les champs suivant :
  
    Jour as single
    Heuredebut as single
    HeureFin As Single
    Tag As Object
    Formateur As String
    Annéeformation As String
    Secteur As String
    Filiere As String
    Niveau As String
    Groupe As String
    Modul As String
    Salle As String
    Minutedebut As Double
    MinuteFin As Double
J'ai refait le code du SheduleItem (j'ai pu réalisé ce code):


    'Début du code

Imports System.ComponentModel


< _
ToolboxItem(False), _
DesignTimeVisible(False) _
> _
Public Class SheduleItem
    Inherits Component
#Region " Champs "
    Private _CODE As String
    ' Private m_Category As Integer
    Private _Jour As Integer
    Private m_SubRow As Integer
    Private _Heuredebut As Single
    Private _HeureFin As Single
    Private _Tag As Object
    Private _Formateur As String
    Private _Annéeformation As String
    Private _Secteur As String
    Private _Filiere As String
    Private _Niveau As String
    Private _Groupe As String
    Private _Modul As String
    Private _Salle As String
    Private _Minutedebut As Double
    Private _MinuteFin As Double
#End Region

#Region " Constructeurs "
    Public Sub New()
        MyBase.New()
    End Sub

    Public Sub New(ByVal text As String)
        MyBase.New()
        _CODE = text
    End Sub

    Public Sub New(ByVal text As String, ByVal row As Integer, ByVal subRow As Integer, _
            ByVal firstCol As Single, ByVal lastCol As Single)
        MyBase.New()
        _CODE = text
        _Jour = row
        _Heuredebut = firstCol
        _HeureFin = lastCol
    End Sub
#End Region

#Region " Propriétés "
    < _
    Category("Appearance"), _
    Description("Texte qui s'affiche sur la cellule"), _
    DefaultValue("") _
    > _
    Public Property Text() As String
        Get
            Return _CODE
        End Get
        Set(ByVal Value As String)
            _CODE = Value
            OnTextChanged(EventArgs.Empty)
        End Set
    End Property

    '< _
    'Category("Appearance"), _
    'Description("Renvoie/Défini la catégorie à laquelle la cellule appartient"), _
    'DefaultValue(0) _
    '> _
    'Public Property Category() As Integer
    '    Get
    '        Return m_Category
    '    End Get
    '    Set(ByVal Value As Integer)
    '        m_Category = Value
    '        OnCategoryChanged(EventArgs.Empty)
    '    End Set
    'End Property

    < _
    Category("Coordonnées"), _
    Description("Renvoie/Défini le numéro de ligne de la cellule"), _
    DefaultValue(0) _
    > _
    Public Property Row() As Integer
        Get
            Return _Jour
        End Get
        Set(ByVal Value As Integer)
            _Jour = Value
            OnRowChanged(EventArgs.Empty)
        End Set
    End Property

    < _
    Category("Coordonnées"), _
    Description("Renvoie/Défini la division de ligne dans laquelle la cellule apparaît"), _
    DefaultValue(0) _
    > _
    Public Property SubRow() As Integer
        Get
            Return m_SubRow
        End Get
        Set(ByVal Value As Integer)
            m_SubRow = Value
            OnSubRowChanged(EventArgs.Empty)
        End Set
    End Property

    < _
    Category("Coordonnées"), _
    Description("Renvoie/Défini la colonne qui délimite la cellule à gauche"), _
    DefaultValue(8.0F) _
    > _
    Public Property FirstColumn() As Single
        Get
            Return _Heuredebut
        End Get
        Set(ByVal Value As Single)
            _Heuredebut = Value
            OnFirstColumnChanged(EventArgs.Empty)
        End Set
    End Property

    < _
    Category("Coordonnées"), _
    Description("Renvoie/Défini la colonne qui délimite la cellule à droite"), _
    DefaultValue(8.0F) _
    > _
    Public Property LastColumn() As Single
        Get
            Return _HeureFin
        End Get
        Set(ByVal Value As Single)
            _HeureFin = Value
            OnLastColumnChanged(EventArgs.Empty)
        End Set
    End Property

    < _
    Category("Data"), _
    Description("Donnée quelconque associée à la cellule"), _
    TypeConverter("System.ComponentModel.StringConverter, System") _
    > _
    Public Property Tag() As Object
        Get
            Return _Tag
        End Get
        Set(ByVal Value As Object)
            _Tag = Value
        End Set
    End Property
    < _
  Category("Data"), _
  Description("Donnée quelconque associée à la cellule"), _
  TypeConverter("System.ComponentModel.StringConverter, System") _
  > _
  Public Property Formateur() As String
        Get
            Return _Formateur
        End Get
        Set(ByVal value As String)
            _Formateur = value
        End Set
    End Property
    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Annéeformation() As String
        Get
            Return _Annéeformation
        End Get
        Set(ByVal value As String)
            _Annéeformation = value
        End Set
    End Property

    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Secteur() As String
        Get
            Return _Secteur
        End Get
        Set(ByVal value As String)
            _Secteur = value
        End Set
    End Property

    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Niveau() As String
        Get
            Return _Niveau
        End Get
        Set(ByVal value As String)
            _Niveau = value
        End Set
    End Property
    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Filiere() As String
        Get
            Return _Filiere
        End Get
        Set(ByVal value As String)
            _Filiere = value
        End Set
    End Property


    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Groupe() As String
        Get
            Return _Groupe
        End Get
        Set(ByVal value As String)
            _Groupe = value
        End Set
    End Property
    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Minutedebut() As Double
        Get
            Return _Minutedebut
        End Get
        Set(ByVal value As Double)
            _Minutedebut = value
        End Set
    End Property
    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property MinuteFin() As Double
        Get
            Return _MinuteFin
        End Get
        Set(ByVal value As Double)
            _MinuteFin = value
        End Set
    End Property
    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Modul() As String
        Get
            Return _Modul
        End Get
        Set(ByVal value As String)
            _Modul = value
        End Set
    End Property
    < _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Salle() As String
        Get
            Return _Salle
        End Get
        Set(ByVal value As String)
            _Salle = value
        End Set
    End Property
    <Browsable(False)> _
      Public ReadOnly Property Width() As Single
        Get
            Return _HeureFin - _Heuredebut
        End Get
    End Property
#End Region

#Region " Evènements "
    Public Event TextChanged(ByVal sender As Object, ByVal e As EventArgs)
    Protected Overridable Sub OnTextChanged(ByVal e As EventArgs)
        RaiseEvent TextChanged(Me, e)
    End Sub

    Public Event CategoryChanged(ByVal sender As Object, ByVal e As EventArgs)
    Protected Overridable Sub OnCategoryChanged(ByVal e As EventArgs)
        RaiseEvent CategoryChanged(Me, e)
    End Sub

    Public Event RowChanged(ByVal sender As Object, ByVal e As EventArgs)
    Protected Overridable Sub OnRowChanged(ByVal e As EventArgs)
        RaiseEvent RowChanged(Me, e)
    End Sub

    Public Event SubRowChanged(ByVal sender As Object, ByVal e As EventArgs)
    Protected Overridable Sub OnSubRowChanged(ByVal e As EventArgs)
        RaiseEvent SubRowChanged(Me, e)
    End Sub

    Public Event FirstColumnChanged(ByVal sender As Object, ByVal e As EventArgs)
    Protected Overridable Sub OnFirstColumnChanged(ByVal e As EventArgs)
        RaiseEvent FirstColumnChanged(Me, e)
    End Sub

    Public Event LastColumnChanged(ByVal sender As Object, ByVal e As EventArgs)
    Protected Overridable Sub OnLastColumnChanged(ByVal e As EventArgs)
        RaiseEvent LastColumnChanged(Me, e)
    End Sub
#End Region

End Class


    'Fin du code


mais ça marche pas
je me demande est ce que vous pouvez m'aider
et mercii

Commentaire de addy le 31/12/2009 11:35:54

En fait tu n'as pas vraiment besoin de modifier la structure de SheduleItem. Il suffit de créer une classe utilitaire pour stocker toute information additionnelle (Filière, Niveau, Groupe, ...) et d'en garder une instance dans la propriété Tag de chaque SheduleItem. Tu pourras ensuite exploiter ces informations dans ton gestionnaire de FormatItem. Dans tous les cas, même en gardant ton approche, c'est dans le gestionnaire de l'évènement FormatItem que tu personnalise l'apparence de tes items. J'espère que cette indication t'aidera. Allez, bonne programmation.

Commentaire de zaimfaycal le 06/01/2010 11:14:31

merci Addy
mais  jé  pas bien compris ce que tu veux dire de "d'en garder une instance dans la propriété Tag de chaque SheduleItem" et aussi  pour l'évènement FormatItem  :S
est ce que vous m'expliquer
et mercii :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Je n'arrive pas à utiliser le CD VB-France [ par Cpapy ] J'ai envoyé plusieurs mails a vbFrance sans réponse.Pouvez vous me dépanner. MerciJ'ai un ordinateur portable Compaqavec Windows 98------------------- Problème System.windows.forms.dll [ par marcelo9 ] Bonjour, J'ai un problème de lancement d'application. Lorsque je compile et juste avant le démarrage du logiciel, une fenêtre apparait m'indiquant : C VB.NET : Les objets disparaissent dans mon formulaire [ par alexmel ] Bonjour,J'ai quelques soucis lors de la création de mes formulaires dans VB.NETJe créé mes formulaires, j'ajoute des objets (listbox, labels,...), je Mettre un interface a mon prog [ par gimli123 ] Bonjour tout le monde !!!!!!!!!!Je programme depuis peu en C, je pense avoir bientot finit d'assimilier toutes les bases. et j'aimerai que vous me dis aide pour interface sur mon prog [ par gimli123 ] Bonjour tout le monde !!!!!!!!!!Je programme depuis peu en C, je pense avoir bientot finit d'assimilier toutes les bases. et j'aimerai que vous me dis aide pour interface sur mon prog [ par gimli123 ] Bonjour tout le monde !!!!!!!!!!Je programme depuis peu en C, je pense avoir bientot finit d'assimilier toutes les bases. et j'aimerai que vous me dis NotifyIcon ContextMenu pas de form [ par Frich ] Bonjour à tous, je suis un débutant VBCe que je désir faire:aficher un systemIcon, mais sans afficher une fenêtre.avoir un menu contextuel qui permet Erreur d'affichage de Form !!!!!!!! [ par MoiDebutantVBA ] quand je tape (en VB.net) :Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.ClickDim Formulaire2 convetir un bout de code en composant dll [ par Emcy ] bonjours,j'ai cr&#233;er un label redimensionnable dans un userform : pour le cr&#233;er, j'ai eu besoin d'utiliser plusieurs Label pour faire des poi windows forms controls [ par ElPich ] 1.1. Comment contrôler et formater les saisies dans un textbox : je ne veux que du numérique aussi bien relatif que non relatif et aussi bien entier q


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,621 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales