Chocker
Messages postés11Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 juin 2007
-
16 avril 2007 à 12:10
Chocker
Messages postés11Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 juin 2007
-
16 avril 2007 à 14:31
Bonjour les Gens,
Voila je me tourne vers vous, car j'ai quelques soucis avec le datareport de VB6
1 - Le descriptif
Je travaille sur une base Access.
Il y a une table RA, RAD et une table Collabo
TABLE RA IdRa // l'id
DateRa // la date du rapport
IdCollabo // l'id référence du collaborateur
Depart // tps de départ
Arrivee // tps d'arrivee
TABLE RAD IdRad // l'id
IdRa // l'id reference de RA
Activite // l'activité faite
Duree // la durée
TABLE Collabo IdCollabo
Nom
Prenom
2 - Le souhait
Je souhaite faire un rapport dans lequel :
- en entete de page : j'aurais un logo
- en entente de groupe : les infos du collaborateur, date du rapport
- en détail : le detail des activités de la journée du collabo
- en pied de groupe : (la somme de la durée des activités de même type) - ( la somme des temps depart, arrivee)
3 - L'existant
Pour tout ce qui est entete et détail pas de souci !
Dans mon DataEnvironment , j'ai une commande dont la requete est :
SELECT Collabo.Nom, Collabo.Prenom, RA.IdCollabo, RA.DateRA, Lieu.Lieu, RA.ValLieuDepart, Lieu_1.Lieu, RA.ValLieuArrivee, Activite.IdActivite, Activite.Reduit, RAd.NRapport, RAd.Client, RAd.HDebut, RAd.HFin, RAd.Duree FROM (Lieu AS Lieu_1 INNER JOIN (Collabo INNER JOIN (Lieu INNER JOIN RA ON Lieu.IdLieu RA.IdLieuDepart) ON Collabo.IdCollabo RA.IdCollabo) ON Lieu_1.IdLieu = RA.IdLieuArrivee) INNER JOIN (Activite INNER JOIN RAd ON Activite.IdActivite = RAd.IdActivite) ON RA.IdRA = RAd.IdRA WHERE Ra.IdCollabo=? and Ra.DateRA=?
-> Ca me liste toutes les informations concernant mon collabo et les activités qu'il a pu faire pendant sa journée
Le cumul que je souhaite afficher, me donne la requete suivante :
SELECT RA.IdCollabo, RA.DateRA, (Sum([RAd]![Duree])-([RA]![ValLieuDepart]+[RA]![ValLieuArrivee])) AS Expr1 FROM RA INNER JOIN RAd ON RA.IdRA = RAd.IdRA WHERE (RAd.IdActivite =1 ) GROUP BY RA.ValLieuDepart, RA.ValLieuArrivee, RAd.Duree,RA.IdCollabo, RA.DateRA
-> C'est la formule de calcul de mon cumul
4 - Le problème
Je ne vois pas comment faire pour que dans mon datareport je puisse mettre le résultat de ce cumul.
J'ai essayé de faire des relations, entre les commandes, d'extraire la structure, mais rien n'y fait !
En gros mon rapport devrait m'aficher
[Entete de page]
LOGO
[Fin Entete de page]
[Entete de groupe]
Mr X le 16/04/07
Départ : 30min
Arrivée : 30min
Activité | NbRapport | Détail | Durée
------------------------------------------------
[Fin Entete de groupe]
[Détail]
Bureau | 1 | néant | 04:00
Client | 1 | X | 01:00
[Fin Détail]
[Pied de groupe]
Cumul
[Fin de pied de groupe]
[Pied de page]
Page 1 sur 1
[Fin Pied de page]
Et le seul résultat que je suis arrivé à produire me donne:
Chocker
Messages postés11Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 juin 2007 16 avril 2007 à 14:31
Bon je reviens vous remercier, je n'ai pas trouver la réponse que je cherchais et je repasserais voir si de temps a autre si une réponse a été posté :)
En attendant voici la solution que j'ai trouvé pour remédier a mon probleme, a vrai dire c'est une solution bète et méchante :) LOL
J'ai simplement incorporé dans mon pied de page un control LABEL, que je mets a jour par code, juste avant de généré mon datareport
Merci encore à tous ceux qui ont essayé et essayeront de trouvé peut etre une meilleure méthode :)
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 16 avril 2007 à 12:26
Salut et bravo pour l'explication car un datareport, c'est pas facile a comprendre pour les autres.
Au debut, je croyais avoir a faire a une personnes qui veux qu'on lui fasse tout mais je vois que tu a bien entamer le truc.
C'est rare, donc merci bien.
Sinon, pour ton pb, tu veux mettre dans un controle nommé cumul, le resultat de ta requete, c'est ca ?
Chocker
Messages postés11Date d'inscriptiondimanche 9 mars 2003StatutMembreDernière intervention29 juin 2007 16 avril 2007 à 12:37
Nan promis j'ai déja essayé avant de venir ici, je demande tres rarement de l'aide car je trouve qu'en cherchant on comprend mieux ... mais bon passons
En fait le cumul est le résultat de la requete comme je l'ai inscrit plus haut
le probleme que je rencontre , c'est qu'apparement dans un Datareport tu peux pas mettre ce que tu veux ou tu veux !
Si je ne faisais qu'un rapport concernant l'activité , et afficher le détail ca irait tres bien !
Mais ce foutu cumul me fout en l'air !!
Les seuls champs qui lient mon cumul a mon Rapport, sont la date du rapport (RA.DateRA)
et l'id du collaborateur(RA.IdCollabo)
Apres c'est tout bidon, c'est juste une somme avec un regroupement
Mais le placement , en bas de page, la se situe tout le problème !!!!
Je voulais au départ rajouter un champs somme fournit par le datareport et calculer le cumul, mais je m'interesse plus à la solution d'integrer le résultat fournit par ma requete :)
Si je dois le calculer, faudra je fasse plein de condition car certain cumul d'activité (que je ferais par la suite) comprennent des cumul d'activité par exemple pour l'activité 3 et 4 , il n'y a qu'un seul cumul.
Je sais que ce n'est pas evident de comprendre mes expliquations, mais je fais au mieux :)