|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
Salut à tous,
J'utilise Crystal report pour Visual studio et je veux un état pour imprimer des nomenclatures. Ma table nomenclature possède les champs AR_REF (référence de l'article composé), REF_DETAIL (référence des articles composants), QTE, etc .... sachant que les composants peuvent ou pas, être à leur tour des articles nomenclatures (composés). Dans ce cas, REF_DETAIL de l'article composant est l'AR_REF de lignes de ses propres articles composants. Je peux avoir en théorie jusqu'à 10 niveaux, mais pour le moment j'en ai identifier un maximum de 4 sur les données actuelle (1er niveau + 3 sous-niveaux). Le nombre de niveau est variable en fonction des référence, chaque niveau pouvant contenir des articles simples (et/ou des articles composé en nombre et proportion variable. Je voudrais, pour une AR_REF donnée, afficher un entête avec quelques informations de cet AR_REf, puis une liste des composants (1er niveau) avec quantité, etc ... avec pour chaque composant, si nécessaire, une liste récursive des sous-niveaux (ou au moins des 3 identifiés). J'ai crée un groupe sur le premier AR_REF (la nomenclature que je veux afficher), puis un second sur le REF_DETAIL. J'ai mis mon entête dans le 1er GroupHeader, mon 1er niveau dans le second GroupHeader, et, dans la bande Détail, j'ai créé un sous-rapport pour le 1er sous niveau. Mais je m’arrête donc au 1er sous niveau, j'ai pas de récursivité. On m'a conseillé, de modifier ma source, pour mettre autant de jointure que de niveaux à avoir. J'ai donc tenté, en mettant chaque niveau dans son GroupHeader, sauf le dernier que je met dans le Détail. Mais l'affichage est considérablement plus long, et en plus le détail ne m'affiche qu'un seul élément. Et je n'ai que les niveaux que je prévois dès le départ. Comment je pourrais faire pour obtenir ce que je veux. N'y a-t-il pas un moyen d'avoir automatiquement les sous-niveaux qui s'affichent de manière récursive ? Sinon, quel est, selon vous, la meilleure (ou la moins mauvaise) manière de procéder pour obtenir quelque chose de correct. Nota : - Le 1er niveau doit avoir un format d'écriture différent des sous-niveaux. - J'aimerais, si c'est possible, qu'à chaque descente d'un niveau décaler un peu vers la droite ma première colonne, en réduisant la largeur de la seconde colonne.
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#2 | |
|
Membre habitué
![]() Inscription : juin 2008 Messages : 96 ![]() |
Citation:
|
|
|
|
00
|
|
|
#3 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 880 ![]() |
oupss, j'ai oublié de répondre
Oui, c'est des jointures gauches qu'il faut puisque je peux avoir des jointures vides. Pour le moment, je suis partie sur le système d'autant de jointure que de niveaux en me limitant à 2 sous-niveaux. En refaisant correctement et proprement ma connexion à la source de données ce n'est finalement pas si lent que ça. MAis si d'autres solutions existent ...
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : juin 2008 Messages : 96 ![]() |
J'ai toujours fais ce genre d'état pas des jointures , les solutions par récursivité nécessitent forcément autant de sous états que de niveaux dans l'état principal et en remontant par des variables globales les données nécessaires au sous état du niveau du dessous et finalement on se complique la vie pour une solution au bout de compte beaucoup moins performante que celle des jointures...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com