Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Paradox
Paradox Forum d'entraide sur Paradox, et sur Borland Database Engine
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2008, 10h58   #1
Membre régulier
 
Avatar de souminet
 
Inscription : novembre 2006
Messages : 351
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 351
Points : 77
Points : 77
Par défaut Filtre sur l'année d'une Date

Bonjour,

Voilà, je voudrais savoir comment filtrer ma table juste sur L'année du champs Date...
Je m'explique:
Table: TabAppel : Type Paradox
Champs: N_App, Objet_App, ..., Date_PArution, ...)

Je voudrais pouvoir donner la possibilté à 'utilisateur de Filtrer Ma table Par rapport au champs: Date de parution , mais Juste sur l'année
Exemple: Filtrer les Appels d'offres parus en : 2006
Les dates ont le format: jj/mm/aaaa

Merci
souminet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 12h07   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 633
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 633
Points : 4 536
Points : 4 536
Comment tu n'as pas trouvé

Code :
1
2
 
SELECT t.* FROM TabAppel T WHERE extract(Year FROM T.Date_Parution)=2006
devrait fonctionner , non testé
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 12h15   #3
Membre régulier
 
Avatar de souminet
 
Inscription : novembre 2006
Messages : 351
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 351
Points : 77
Points : 77
Oui mais c'est pas à travers une requête que je voudrais le faire, C'est plutôt avec un Filtre, car j'en utilise déja un, pour Un autre paramètre de filtre:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TFConsultationApp.FiltreBtnClick(Sender: TObject);
Var
FiltrClass:String;
FiltrAnn:String;
begin
 If FiltrClasRad.Checked=true then
  Begin
   Datamodule3.TabAppel.Filtered:=false;
   FiltrClass:= 'Classe = '''+ LookClass.Text + '*''';
   datamodule3.TabAppel.filter:=FiltrClass;
   datamodule3.TabAppel.Filtered:=true;
  end;
   If ParRad.Checked=true then
  Begin
   Datamodule3.TabAppel.Filtered:=false;
   FiltrAnn:=  ????????????????????;
   datamodule3.TabAppel.filter:=FiltrAnn;
   datamodule3.TabAppel.Filtered:=true;
  end;

end;
C'est juste pour la partie en rouge ci dessus, Je veux un Filtre pour continuer dans le même esprit

Merci
souminet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 12h26   #4
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 633
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 633
Points : 4 536
Points : 4 536
Effectivement dans ce cas là je t'ai mal dirigé en t'indiquant de forum puisque du coup c'est Delphi .
Voir ce que j'ai répondu dans ce dernier . le mieux c'est de travailler avec l'evenement onFilterRecord de la table
decouper la date puis Accept:=(Annee=2006);
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 12h53   #5
Membre régulier
 
Avatar de souminet
 
Inscription : novembre 2006
Messages : 351
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 351
Points : 77
Points : 77
Citation:
Envoyé par SergioMaster Voir le message
Effectivement dans ce cas là je t'ai mal dirigé en t'indiquant de forum puisque du coup c'est Delphi .
Voir ce que j'ai répondu dans ce dernier . le mieux c'est de travailler avec l'evenement onFilterRecord de la table
decouper la date puis Accept:=(Annee=2006);
Eh...... Comment???
souminet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 14h44   #6
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 633
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 633
Points : 4 536
Points : 4 536
quelque chose comme ça (non testé) . Le problème c'est que j'ai l'impression qu'il y a beaucoup de Forms dans ton projet donc au hasard

Code :
1
2
3
4
5
6
7
8
9
10
 
datamodule3.TabAppelOnFilterRecord(DataSet : TDataSet;Accept : BOOLEAN);
var aa,mm,jj : word;
begin
IF TFConsultationApp.ParRad.Checked then
begin
  DecodeDate(DataSet['Date_PArution'].value]);
  Accept:=(aa=2006);
end;
end;
il faut bien sur "oublier"
Code :
1
2
3
 
  // FiltrAnn:=  ????????????????????;
  // datamodule3.TabAppel.filter:=FiltrAnn;
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 16h34   #7
Membre chevronné
 
Inscription : mars 2006
Messages : 615
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 615
Points : 682
Points : 682
En Delphi tu crée un index secondaire sur la colonne Date_PArution nommé ici IS1
puis dans le programme :
Code :
1
2
  Table1.IndexName := 'IS1' ;
  Table1.SetRange([StrToDate('01/01/2000')],[StrToDate('01/01/2001')]);
ALWEBER est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h26.


 
 
 
 
Partenaires

Hébergement Web