Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNDéveloppementDéveloppementRemplacer ModuleId => AnnéeRemplacer ModuleId => Année
Précédente
 
Suivante
Nouveau message
27/09/2007 21:35
 

Bonjour,

J'ai créer un module personnalisé, et jusqu'a présent, mes données (Des courses automobiles) sont "filtrées" par module. Champ ModuleId dans ma table.

J'aimerai à la place, que mes données soit filtrées par année. Pour afficher un calendrier des courses d'une année dans plusieurs modules.

Comment dès lors préciser l'année que je veux ? (Dans le titre du module par exemple)

Mais alors comment récupérer le titre.

Je sais pas si c'est clair..... :(

Merci

 
Nouveau message
28/09/2007 01:15
 

Bonjour,

C'est très simple!

  1. Ajouter dans ta table un champs de type datetime nommé disont DateCourse. D'ailleurs, logiquement tu devrais déjà avoir un tel champ, car sauf erreur une course à bien une date.
  2. Ajouter un contrôle textbox lié à ce champs pour saisir/afficher la date de la course.
  3. Ajouter une procédure stockée genre GetCoursesByYear(ModuleId, Annee). Où "Annee" est un paramètre passé à cette procédure pour filtrer les donées par année. Tu dois déjà avoir une procédure pour lire les courses d'un module ? Alors tu copie simplement cette procédure et tu lui ajoute ce paramètre. Voici un exemple partiel :
    • CREATE PROCEDURE GetCoursesByYear
      @ModuleID int,
      @Annee int

      SELECT ..... FROM .... WHERE ModuleId = @ModuleId AND Year(DateCourse) = @Annee

Voilà en gros vite fait. Le reste, tu devrais savoir le faire puisque tu as déjà un module qui affiche tes courses. Il suffit d'appeler cette nouvelle procédure en lui passant l'année en plus.

Gilles

 
Nouveau message
28/09/2007 11:12
 

ploum a dit :

Bonjour,

C'est très simple!

  1. Ajouter dans ta table un champs de type datetime nommé disont DateCourse. D'ailleurs, logiquement tu devrais déjà avoir un tel champ, car sauf erreur une course à bien une date.
  2. Ajouter un contrôle textbox lié à ce champs pour saisir/afficher la date de la course.
  3. Ajouter une procédure stockée genre GetCoursesByYear(ModuleId, Annee). Où "Annee" est un paramètre passé à cette procédure pour filtrer les donées par année. Tu dois déjà avoir une procédure pour lire les courses d'un module ? Alors tu copie simplement cette procédure et tu lui ajoute ce paramètre. Voici un exemple partiel :
    • CREATE PROCEDURE GetCoursesByYear
      @ModuleID int,
      @Annee int

      SELECT ..... FROM .... WHERE ModuleId = @ModuleId AND Year(DateCourse) = @Annee

Voilà en gros vite fait. Le reste, tu devrais savoir le faire puisque tu as déjà un module qui affiche tes courses. Il suffit d'appeler cette nouvelle procédure en lui passant l'année en plus.

Gilles

Merci,

Tout ca c'est déjà fait.

Supposons que j'ai les données suivantes :

ModuleID Titre DateCourse
400 Course 1 1/1/2007
400 Course 2 1/2/2007
400 Course 3 1/1/2008

En exécutant la SP GetCoursesByYear(400, 2007) je vais bien avoir les 2 premières courses.

Ma question est : comment dans ma page "course 2007" passer le paramètre 2007 à mon objet "CourseController" et dans la page "course 2008" passer le paramètre 2008. (C'est uniquement le titre de la page ou du module qui change)

Dans l'absolu, je veux aussi pouvoir dans 2 pages différentes (donc 2 modules différents), afficher les données d'une même année. Evidement, le titre du module affiché sera le même : "Courses 2007" par exemple. 

En gros, il je voudrais utiliser le titre du module, en extraire l'année et la passer en paramètre à ma store proc (via les objet CourseController)

Je sais que c'est un peu spécial ... :(

 
Nouveau message
28/09/2007 15:27
 

Bonjour,

Normalement on ne fait pas comme cela. L'idée est de faire un contrôle (genre Settings.ascx) pour modifier les paramètres du module. Dans ton cas l'interface se résume à un textbox pour saisir l'année. Ce paramètre est sauvegardé avec UpdateTabModuleSetting et lu avec TabModuleSetting. Ainsi tu peux définir l'année à afficher pour une instance de ton module. Ensuite dans l'évènement Load de ton contrôle d'affichage des courses, tu vas lire le paramètre, s'il est vide tu appelle la procédure pour retourner toutes les lignes, sinon tu appelle celle avec le paramètre Annee.

Tu peux regarder sur ce site un exemple complet (in English) de création d'un module avec les fonctions de base.

Gilles

 
Nouveau message
28/09/2007 22:52
 

ploum a dit :

Bonjour,

Normalement on ne fait pas comme cela. L'idée est de faire un contrôle (genre Settings.ascx) pour modifier les paramètres du module. Dans ton cas l'interface se résume à un textbox pour saisir l'année. Ce paramètre est sauvegardé avec UpdateTabModuleSetting et lu avec TabModuleSetting. Ainsi tu peux définir l'année à afficher pour une instance de ton module. Ensuite dans l'évènement Load de ton contrôle d'affichage des courses, tu vas lire le paramètre, s'il est vide tu appelle la procédure pour retourner toutes les lignes, sinon tu appelle celle avec le paramètre Annee.

Tu peux regarder sur ce site un exemple complet (in English) de création d'un module avec les fonctions de base.

Gilles

Merci beacoup c'est exatement ce qu'il me faut :

- Ajouter l'année dans mon control settings...... mais je n'y avais pas pensé (J'ai commencé dans DNN il y a moins de 10 jours .... donc pas évident de s'y retrouver)

 

 
Nouveau message
29/09/2007 04:42
 

Bonjour,

De rien !  C'est déjà bien que tu développe ton premier module après seulement dix jours ! Tu dois avoir un bon background en programmation asp.net je présume.

Gilles

 
Nouveau message
29/09/2007 11:43
 

... je développe surtout des applications mobiles (winform) avec le compact framework en C#.... l'asp.net n'est donc pas ma "spécialité", j'en ai fait surtout en 1.1 il y a quelques années .... :( (en C#)

DNN est donc pour moi l'occasion de rafraichir un peu ma mémoire, de me mettre à jour, et de faire un peu de VB.NET (Habituellement je développe en C#, surtout winform)

Bonne journée ... :)

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNDéveloppementDéveloppementRemplacer ModuleId => AnnéeRemplacer ModuleId => Année