|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() |
Bonjour,
j'aimerai comprendre comment d'après vous fonctionnent les sous rapports. Je m'explique : j'ai une état avec mettons des clients et leurs commandes. Je calcule un rang en SQL. cela me permet d'avoir le rang cohérent gérant même les ex-aequos alors que le mainreport est classé par ordre alphabétique. Seul petit hic, les requêtes calculant les rangs sont un chouille longue, et sont d'autant plus long qu'il y a de clients à traiter. or, si j'intégre ce calcul avec la commande principale qui renvoit le détail des commandes...ben ça ne s'arrange. j'imagine que tout le monde voit pourquoi (mais je peux expliquer ).donc je me suis dit qu'a cela ne tienne, je vais faire un sous rapport. Donc dans mon sous rapport, je fais mon calcul de rang et j'obtiens ce qu'il me faut. Mais les perfs ne sont pas au rendez-vous. Ce qui m'étonne, c'est que j'ai l'impression qu'à chaque page d'un client, il me lance l'intégralité de la commande du sous-rapport puis filtre avec les champs de liaison. n'est-il pas possible de lancer la commande du sous-report une bonne fois..puis de faire le lien à chaque page dans rafraichir? dans la même veine, n'est il pas possible de disposer d 'un recordset dynamique généré dans Crytal? j'espère que j'ai été clair. merci d'avance Simon
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain) _ _ _ _ _ _ _ _ _ La planète ne nous appartient pas, elle nous a été prêtée par nos enfants _ _ _ _ _ _ _ _ _ Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
y'a que moi qui m'interroge? ou tout le monde s'en f...?
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain) _ _ _ _ _ _ _ _ _ La planète ne nous appartient pas, elle nous a été prêtée par nos enfants _ _ _ _ _ _ _ _ _ Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Consultant informatique Inscription : mai 2007 Messages : 893 ![]() |
Bonjour,
Tu travaille sur quelle base? Peux tu donner tes requêtes sql svp ? Tu utilises des commandes sous CRXi ? Cordialement Lazarel |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
euh..je vois pas le rapport...
c'est de la base postgresql. mes requêtes tournent très bien en stand-alone. simplement, j'ai l'impression que la requête d'un sous report est lancé à chaque fois que celui ci est affiché. donc dans mon cas, à chaque page oui, des commandes ds CR XI
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain) _ _ _ _ _ _ _ _ _ La planète ne nous appartient pas, elle nous a été prêtée par nos enfants _ _ _ _ _ _ _ _ _ Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres |
|
|
00
|
|
|
#5 | |
|
Membre expérimenté
![]() Inscription : décembre 2004 Messages : 841 ![]() |
Citation:
__________________
Les paysages sont plus beaux quand on transpire. Olaf Candau |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() |
bonjour, bonjour,
petit retour d'expérience... étant très pénalisé par le problème, j'ai continué à creuser. j'ai trouvé très récemment une première solution. Je rappelles : je travailles dans un contexte de lien entre le rapport et le sous-rapport (je précises car cela peut ne pas être le cas). Or dans un rapport, il semble que les données du sous-rapport sont exécutés à chaque nouvel affichage. ex: vous avez une page par client avec les commandes du client en sous-rapport. le sous rapport charge tous les commandes des clients puis est filtré en fonction du lien avec le rapport principal. C'est là que ce situe le problème : à chaque page, l'intégralité des commandes sans distinction est chargé. ce que je peux comprendre, il filtre après...bon...admettons. [encore une fois, ce ne sont que des conclusions après des tests empiriques....cela n'engage que moi] par ailleurs, je précise que je travailles uniquement avec des commandes CR, pas directement avec les tables de ma base avec des requêtes que je construit au préalable. Donc, en fait, lorsque l'on fait un lien entre main et subreport, un nouveau paramètre est disponible dans les champs paramètres du sous report : kkchose dans le genre : Pm.commande.id (où commande.id est le champ du rapport principal sur lequel le lien est effectué) [vous suivez toujours? En fait, il est possible d'utiliser ce paramètre dans la commande en respectant le nom exact. Ainsi, au moment où le sous rapport est exécuté...la requete source tient compte d'un paramètre passé par le sous-état. donc sur nos clients, chaque page ne lance l'interrogation des commandes du client courant uniquement. Bon je sais pas si c'est très clair... si vous avez des questions, vous savez où me trouver. A+ Simon
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain) _ _ _ _ _ _ _ _ _ La planète ne nous appartient pas, elle nous a été prêtée par nos enfants _ _ _ _ _ _ _ _ _ Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com