Sous-rapport
Le
Gloops
Bonjour tout le monde,
Je remets sur le tapis cette histoire de sous-rapport en erreur, comme
je l'ai fait le 1er mai dans le fil "Sous-rapport trop pudique".
J'obtiens le même résultat en m'y prenant comme suit :
1. Création d'une requête paramétrée dans la base Northwind
USE [Northwind]
GO
/****** Objet : StoredProcedure [dbo].[ProductSel] Date de
génération du script : 06/08/2009 23:50:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ProductSel] @ProductID int
AS
SELECT *
FROM Products
WHERE Products.ProductID = @ProductID
2. Création d'un projet ListeProduits de type Windows
3. Création (Add / New Item) d'un Dataset, DataSet1
Depuis le Server Explorer, je fais glisser la requête ProductSel vers l=
a
surface du concepteur de DataSet1. Cela crée une DataTable ProductSel, =
avec les TableAdapters Fill et GetData(@ProductId)
4. De même, création d'un deuxième Dataset, DataSet2
Depuis le Server Explorer, je fais glisser la table OrderDetails. Cela
crée une DataTable OrderDetails, avec les TableAdapters Fill et GetData=
().
5. Création (Add / New Item) d'un Report, RepOrderDetails.rdlc
Menu Report, Data Sources : DataSet2_Order_Details, Add to Report, OK.
6. Création (Add / New Item) d'un autre Report, RepProduct.rdlc
Menu Report, Data Sources : DataSet1_ProductSel, Add to Report, OK.
Menu Report, Report Parameters : name ProductID, Data type Integer, OK.
7. Form1, augmentation de la largeur, ajout d'un ReportViewer par
double-clic dans la Toolbox.
8. Sur le menu du "tag" du ReportViewer, sélection de RepOrderDetails.r=
dlc
9. Elargissement du ReportViewer.
Exécution : page toute blanche.
10. Dans RepOrderDetails.rdlc, ajout d'une Table par double-clic dans la =
Toolbox.
11. Dans le Server Explorer, développement (par clic sur +) de la table=
Order_Details
Glissé des champs OrderID et ProductID vers les deux premières cellul=
es
de la deuxième ligne (ligne détail). Oops, ça ne donne rien.
12. Ajout de source de données.
Dans Data Sources, clic sur "Add New Data Source ".
Set the application get data from : Database
Next
NorthwindConnectionString (Settings)
Next
Cocher la table Order_Details et la procédure stockée ProductSel.
Finish.
13. Ajout de champs à RepOrderDetails.rdlc
Depuis Data Sources, développement de DataSet2 / Order_Details.
Glissé de OrderID vers la première cellule de la ligne détail. La
première ligne fait apparaître l'intitulé Order ID, la deuxième
=Fields!OrderID.Value.
Glissé de ProductID vers la deuxième cellule de la ligne détail. La=
première ligne fait apparaître l'intitulé Product ID, la deuxième=
=Fields!ProductID.Value
14. Création du sous-état
- sélection de la troisième cellule de la ligne détail
- double-clic sur SubReport dans la Toolbox
- dans les propriétés,
ReportName : RepProduct
Parameters : clic sur le bouton à droite,
Parameter Name : ProductID,
Parameter Value : =Fields!ProductID.Value
OK.
Exécution : les champs OrderID et ProductID apparaissent correctement. =
En troisième colonne, sur chaque ligne l'intitulé "Error : the subrep=
ort
could not be shown".
Il n'y a même pas eu besoin d'insérer des champs dans le sous-état,=
au
demeurant au mois de mai il y en avait et ça n'empêchait pas l'erreur=
.
Y a-t-il quelque chose que j'ai fait de travers ?
Je remets sur le tapis cette histoire de sous-rapport en erreur, comme
je l'ai fait le 1er mai dans le fil "Sous-rapport trop pudique".
J'obtiens le même résultat en m'y prenant comme suit :
1. Création d'une requête paramétrée dans la base Northwind
USE [Northwind]
GO
/****** Objet : StoredProcedure [dbo].[ProductSel] Date de
génération du script : 06/08/2009 23:50:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ProductSel] @ProductID int
AS
SELECT *
FROM Products
WHERE Products.ProductID = @ProductID
2. Création d'un projet ListeProduits de type Windows
3. Création (Add / New Item) d'un Dataset, DataSet1
Depuis le Server Explorer, je fais glisser la requête ProductSel vers l=
a
surface du concepteur de DataSet1. Cela crée une DataTable ProductSel, =
avec les TableAdapters Fill et GetData(@ProductId)
4. De même, création d'un deuxième Dataset, DataSet2
Depuis le Server Explorer, je fais glisser la table OrderDetails. Cela
crée une DataTable OrderDetails, avec les TableAdapters Fill et GetData=
().
5. Création (Add / New Item) d'un Report, RepOrderDetails.rdlc
Menu Report, Data Sources : DataSet2_Order_Details, Add to Report, OK.
6. Création (Add / New Item) d'un autre Report, RepProduct.rdlc
Menu Report, Data Sources : DataSet1_ProductSel, Add to Report, OK.
Menu Report, Report Parameters : name ProductID, Data type Integer, OK.
7. Form1, augmentation de la largeur, ajout d'un ReportViewer par
double-clic dans la Toolbox.
8. Sur le menu du "tag" du ReportViewer, sélection de RepOrderDetails.r=
dlc
9. Elargissement du ReportViewer.
Exécution : page toute blanche.
10. Dans RepOrderDetails.rdlc, ajout d'une Table par double-clic dans la =
Toolbox.
11. Dans le Server Explorer, développement (par clic sur +) de la table=
Order_Details
Glissé des champs OrderID et ProductID vers les deux premières cellul=
es
de la deuxième ligne (ligne détail). Oops, ça ne donne rien.
12. Ajout de source de données.
Dans Data Sources, clic sur "Add New Data Source ".
Set the application get data from : Database
Next
NorthwindConnectionString (Settings)
Next
Cocher la table Order_Details et la procédure stockée ProductSel.
Finish.
13. Ajout de champs à RepOrderDetails.rdlc
Depuis Data Sources, développement de DataSet2 / Order_Details.
Glissé de OrderID vers la première cellule de la ligne détail. La
première ligne fait apparaître l'intitulé Order ID, la deuxième
=Fields!OrderID.Value.
Glissé de ProductID vers la deuxième cellule de la ligne détail. La=
première ligne fait apparaître l'intitulé Product ID, la deuxième=
=Fields!ProductID.Value
14. Création du sous-état
- sélection de la troisième cellule de la ligne détail
- double-clic sur SubReport dans la Toolbox
- dans les propriétés,
ReportName : RepProduct
Parameters : clic sur le bouton à droite,
Parameter Name : ProductID,
Parameter Value : =Fields!ProductID.Value
OK.
Exécution : les champs OrderID et ProductID apparaissent correctement. =
En troisième colonne, sur chaque ligne l'intitulé "Error : the subrep=
ort
could not be shown".
Il n'y a même pas eu besoin d'insérer des champs dans le sous-état,=
au
demeurant au mois de mai il y en avait et ça n'empêchait pas l'erreur=
.
Y a-t-il quelque chose que j'ai fait de travers ?

Poser une question


Alors j'ouvre un sous-fil pour donner les adresses de projets
échantillons ("samples") et les observations faites avec.
Je mets ma config dans un autre message autrement ce sera illisible.
http://gotreportviewer.com/masterde...InList.zip
Le projet échantillon fonctionne. Les données sont stockées dans un
fichier xml.
Si je crée des DataSets sur mes données dans SQL Server ou Access et que
je les lie aux états, ça ne fonctionne plus, "SubReport could not be shown".
ça donne peut-être une piste de travail : convertir les données
systématiquement en xml pour faire l'état à partir de la sérialis ation
xml. Je m'attends à l'inconvénient que ça allonge le temps de trait ement
car il faut le temps de sérialiser d'abord.
Microsoft Visual Studio 2005
Version 8.0.50727.762 (SP.050727-7600)
Microsoft .NET Framework
Version 2.0.50727 SP1
Installed Edition: Professional
Microsoft Visual Basic 2005 77626-009-0005252-41150
Microsoft Visual Basic 2005
Microsoft Visual C# 2005 77626-009-0005252-41150
Microsoft Visual C# 2005
Microsoft Visual C++ 2005 77626-009-0005252-41150
Microsoft Visual C++ 2005
Microsoft Visual J# 2005 77626-009-0005252-41150
Microsoft Visual J# 2005
Microsoft Visual Web Developer 2005 77626-009-0005252-41150
Microsoft Visual Web Developer 2005
Microsoft Web Application Projects 2005 77626-009-0005252-41150
Microsoft Web Application Projects 2005
Version 8.0.50727.762
Crystal Reports AAC60-G0CSA4B-V7000AY
Crystal Reports for Visual Studio 2005
Microsoft Visual Studio 2005 Professional Edition - ENU Service Pack 1
(KB926601)
This service pack is for Microsoft Visual Studio 2005 Professional
Edition - ENU.
If you later install a more recent service pack, this service pack will
be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/926601
Security Update for Microsoft Visual Studio 2005 Professional Edition -
ENU (KB937061)
This Security Update is for Microsoft Visual Studio 2005 Professional
Edition - ENU.
If you later install a more recent service pack, this Security Update
will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/937061
Defining Report Data Sources
Dans l'avant-dernier alinéa je lis ceci :
You will also open this dialog to find out the names of report data
sources. To supply data for subreports or drillthrough reports (in the
corresponding event handlers) you'll need to know the names of the
report datasources. (For the main report, you got away because Visual
Studio automatically generated code to supply data.)
J'ai déjà lu quelque part dans un newsgroup qu'il fallait écrire du code
pour affecter les données dans un sous-état, et les échantillons es sayés
n'y ayant pas recours à ce qu'il m'a semblé j'ai laissé courir.
Quelque chose me dit que le jour où quelqu'un aura pu essayer les manip s
que je décris en tête de fil, ça permettra déjà d'y voir plus c lair.
Surtout que par la même occasion ça peut lui inspirer des commentaire s.
_____________________________________
Gloops a écrit, le 09/06/2009 00:53 :