2010-02-25 4 views
2

Je suis mal à gérer les rapports RDLC. Je n'ai pas trouvé de tutoriels complets sur Internet et MSDN n'est pas aussi utile que je l'aurais souhaité.Matrices de rapport RDLC .NET

En particulier, j'ai eu un problème en essayant de faire apparaître une table/matrice particulière en fonction des besoins d'un client. Ça va comme ça.

Dans la DB, j'ai deux tables: (substitués de faux noms pour l'amour du secret)

  • Spaceship Infos (contient les prix pour les réparations, le carburant et d'autres informations de vaisseau spatial)
  • Pièces de rechange (contient des informations pour une variété de pièces de rechange)

le tableau dans le rapport devrait sortir quelque chose comme ceci:

https://i53.photobucket.com/albums/g59/Sazabi02/Capture.png Table.

  • Bleu en-têtes contiennent Spaceship Infos
  • Violet en-têtes contiennent des pièces de rechange d'info
  • Red sont totaux

choses à prendre note comprennent:

  • Les colonnes Pièces de rechange doivent être dynamique. Il existe de nombreux types de pièces de rechange et tout le codage en dur serait impraticable.
  • La disposition a été explicitement spécifiée pour être ainsi. Les colonnes dynamiques sont placées dans
  • Il est tout à fait possible qu'un vaisseau spatial n'ait aucune pièce de rechange. I LEFT OUTER l'a joint dans la base de données, mais le regroupement de colonnes dans RDLC a généré une colonne vierge pour les vaisseaux spatiaux qui n'avaient pas de pièces de rechange.

entre des colonnes non dynamiques. (J'ai des problèmes avec ça.) Les colonnes AFAIK sont automatiquement placées sur le côté droit et il n'y a pas d'option pour les placer entre les deux

J'ai essayé quelques trucs: marteler ma tête sur le clavier n'a pas fonctionné après frustration en essayant de faire fonctionner la matrice comme je le pensais et en la séparant en trois tableaux séparés: un pour les totaux, un pour la dynamique et un pour les colonnes fixes (deux en fait parce qu'une colonne fixe devrait être avant et la d'autres après les dynamiques.)

quelqu'un peut-il donner quelques idées sur la façon de le faire dans Visual studio RDLC rapports?

Répondre

1

ce que vous essayez de faire est pas très facile, mais Cela peut être fait, je vais vous donner quelques points pour commencer. Si vous avez besoin de plus d'informations, il suffit de demander. Dans la mesure où les colonnes dynamiques pour les pièces de lance font comme ça. Recueillir la liste de toutes les parties possibles pour tous les navires qui seront montrés.Rdlc fichier est en fait un fichier XML. Vous pouvez l'ouvrir avec XmlDocument et générer autant de colonnes que vous le souhaitez. Le vous pouvez passer le contenu modifié de la XmlDocument directement à la visionneuse de rapports. Ajout de colonne dans XML est un peu délicat.Créez d'abord le rapport rdlc à l'aide du concepteur, enregistrez et créez le fichier rdlc avec un nom différent. Ensuite, ouvrez-le à nouveau avec le concepteur et supprimez une colonne. Enregistrez et comparez les deux xml ceci vous montrera ce que vous devez ajouter dans le xml dans la nouvelle colonne. De cette façon, vous allez créer les colonnes dynamiques. La table que vous transmettez en tant que datasource doit être créée de telle sorte qu'elle contienne toutes les colonnes et toutes les colonnes d'expédition pour chaque partie. Chaque ligne de cette table sera envoyée et uniquement dans les colonnes pièces le navire a il y aura des valeurs.Ceci est pour l'instant si vous avez besoin de plus d'informations il suffit de demander
Meilleur Regarsd,
Iordan

+0

Merci. J'étais sur le point de perdre espoir et j'ai eu recours à quelques requêtes codées dont je ne suis pas fier. Je cherchais vraiment une approche non-designer pour éditer le RDLC. Merci. Je vais essayer votre suggestion. – Jonn

+1

Vous pouvez créer ou modifier des fichiers RDLC sans concepteur RDLC est généralement un fichier xml. Mais pour pouvoir créer le fichier RDLC à la main, vous devez avoir une bonne connaissance du format RDLC xml. C'est pourquoi j'ai suggéré de créer le rdlc par le concepteur et l'ouvrir avec le bloc-notes pour voir ce que xml est généré. – IordanTanev