Pbs impression QuickRepot

bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009 - 10 oct. 2008 à 11:15
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 20 oct. 2008 à 19:36
Bonjour à tous,

J'ai un problème concernant les quickreport. Au fait, j'ai 2 tables ( Etudiant et Versement) qui sont reliés par code_etudiant. J'ai fait un requête pour sélectionner tous les versements d'un étudiant donné. Cela marche très bien dans le Dbgrid. Lorsque je fait un état pour imprimer ces lignes de versements, l'état affiche toujours les informations du premier étudiant que j'ai cherché. Je ne vois vraiment pas la solution. L'état a pour Dataset, le query qui affiche les versement par étudiant
Merci

9 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 oct. 2008 à 14:40
Bonjour,

Tu veux un état de tous les étudiants avec leurs versements ou pouvoir en choisir un en particulier ?

cantador
0
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
13 oct. 2008 à 13:40
Bonjour,

 Merci Cantador pour le message. Au fait je veux avoir un état par étudiant. J'ai fait une requête paramétrée sur le code_etudiant. Le problème est que la requête marche bien en fonction des code_etudiannts mais sur l'état, je ne vois que les versements du premier étudiant que j'ai choisi. (Exple: si je prends code_etudiant=5, les versmements viennent sur l'état; après si je prends code_etudiant=3, je vois toujours les versements de l'etudiant 5)

Merci pour vos réponses.
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
13 oct. 2008 à 13:48
Tes compos DB du QuickReport sont bien réliés au même Dataset ?

cantador
0
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
13 oct. 2008 à 14:00
Bien sûr, les compos DB du QuickReport sont bien réliés au même Dataset. La preuve est que les infos du premier etudiant viennent alors que pour les autres, je ne vois toujours que les versements du permier.
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
13 oct. 2008 à 14:05
alors, il faut peut-être simplement introduire un refresh quelque part du QuickReport.

QuickRep1.Refresh;
juste avant l'ouverture de ton QuickReport par exemple

comme je n'ai pas ton code..

cantador
0
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
20 oct. 2008 à 11:04
Bonjour,

 J'ai essayé le Refresh mais ça ne marche pas. Je vous envoie la structure de mes tables afin que pour puissiez me comprendre vraiment.

CREATE TABLE `etudiant` (
  `code_etud` int(9) unsigned NOT NULL auto_increment,
  `matr_etud` varchar(15) collate latin1_general_ci default '0',
  `nom_etud` varchar(30) collate latin1_general_ci default '',
  `pren_etud` varchar(50) collate latin1_general_ci default '',
  `sexe_etud` enum('M','F') collate latin1_general_ci default 'M',
  PRIMARY KEY  (`code_etud`),
  KEY `index_etud` (`nom_etud`,`pren_etud`,`code_etud`,`matr_etud`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `etudiant_copy` VALUES ('1', '1-2008', 'ASSIAMATE', 'Ablavi Victorine', 'F');
INSERT INTO `etudiant_copy` VALUES ('2', '2-2008', 'KLUYIBO', 'Yao Félix', 'M');
INSERT INTO `etudiant_copy` VALUES ('3', '3-2008', 'DRAMEDO', 'Afivi Martine', 'F');
INSERT INTO `etudiant_copy` VALUES ('4', '4-2008', 'AKAKPO', 'Jean Prosper', 'M');
INSERT INTO `etudiant_copy` VALUES ('5', '5-2008', 'DJATTE', 'Essi', 'F');
INSERT INTO `etudiant_copy` VALUES ('6', '6-2008', 'JOHNSON', 'Assaba', 'F');
INSERT INTO `etudiant_copy` VALUES ('7', '7-2008', 'GBADOE', 'Kodjogan Dieudonné', 'M');
INSERT INTO `etudiant_copy` VALUES ('8', '8-2008', 'PLAKOU', 'Johnson Kouevi', 'M');

CREATE TABLE `versement` (
  `code_vers` int(30) NOT NULL default '0',
  `code_etud` int(3) NOT NULL default '0',
  `code_fili` varchar(30) NOT NULL default '',
  `annee_sco` int(4) NOT NULL default '0',
  `annee_etude` int(4) NOT NULL default '0',
  `date_vers` date NOT NULL default '0000-00-00',
  `type_inscript` varchar(30) NOT NULL default '',
  `montant_vers` float(10,0) NOT NULL default '0',
  `lib_vers` varchar(150) NOT NULL default '',
  `somme` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`code_vers`),
  KEY `code_etud` (`code_etud`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `versement` VALUES ('34', '1', 'SAD', '2008', '3', '2008-09-18', '2', '25000', 'Inscription', '');
INSERT INTO `versement` VALUES ('35', '2', 'SAD', '2008', '3', '2008-09-18', '2', '25000', 'Inscription', '');
INSERT INTO `versement` VALUES ('36', '3', 'MAADRI', '2008', '3', '2008-09-18', '2', '25000', 'Inscription', '');
INSERT INTO `versement` VALUES ('37', '4', 'FB', '2008', '1', '2008-09-18', '1', '15000', 'Inscription', '');
INSERT INTO `versement` VALUES ('38', '5', 'FB', '2008', '1', '2008-09-18', '1', '15000', 'Inscription', '');
INSERT INTO `versement` VALUES ('39', '3', 'MAADRI', '2008', '3', '2008-09-18', '2', '50000', 'Versement Novembre', '');
INSERT INTO `versement` VALUES ('40', '3', 'MAADRI', '2008', '3', '2008-09-18', '2', '5000', 'Versement Novembre', '');

Merci bcp
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
20 oct. 2008 à 14:52
Quelle est le type de ta base de données ?
juste un petit truc qui me chiffonne :

CREATE TABLE `etudiant` (
  `code_etud` int(9) unsigned NOT NULL

CREATE TABLE `versement` (
  `code_vers` int(30) NOT NULL default '0',
  `code_etud` int(3) NOT NULL default '0',

Cela dit, je ne pense pas que le problème vienne de la struture de tes tables
mais plutôt du code delphi de programmation et/ou de l'agencement des différents composants (propriétés par exemple)

cantador
0
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
20 oct. 2008 à 19:21
Salut,

J'utilise MySQL comme base de données. J'ai fait une requête parametrée que le champ Code_etud qui sert en même temps de clé de liaison entre les 2 tables.

Voici la requête que j'ai écris dans le composant Query1. (propiete STRINGS).

"Select * from etudiant E, versement V where E.code_etud=V.code_etud and E.code_etud=:para "

Et puis sur clic d'un bouton, j'écris ceci:

Query1.close;
Query1.paraùbyname('para').asInteger:= StrtoInt(Edit1.text);
Query1.open;

Edit1 prend le numéro de l'étudiant dont je veux afficher les détails versements.

Voilà. Merci

Si le détail ne marche pas est-ce qu'il y a une possibilité d'inprimer les détails pour tous les étudiants avec 1 étudiant par page du quickreport? c'est-à-dire que les détails de l'tudiant N°1 sur la 1ère page du quickreport, le N°2 sur la 2ème page et ainsi de suite jusqu'à la fin du nombre d'étudiant.

Merci bcp
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
20 oct. 2008 à 19:36
procedure TForm1.Button1Click(Sender: TObject);
begin
   Query1.close;
   Query1.parambyname('para').asInteger:= StrtoInt(Edit1.text);
   Query1.open;
   QReport1.print;
end;

Si ce code ne marche pas alors ça vient de ton quickreport qui est mal paramétré..
je ne vois que ça.

cantador
0
Rejoignez-nous