Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sous-rapport

3 réponses
Avatar
Gloops
Bonjour tout le monde,

Je remets sur le tapis cette histoire de sous-rapport en erreur, comme=20
je l'ai fait le 1er mai dans le fil "Sous-rapport trop pudique".

J'obtiens le m=EAme r=E9sultat en m'y prenant comme suit :

1. Cr=E9ation d'une requ=EAte param=E9tr=E9e dans la base Northwind

USE [Northwind]
GO
/****** Objet : StoredProcedure [dbo].[ProductSel] Date de=20
g=E9n=E9ration 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 =3D @ProductID

2. Cr=E9ation d'un projet ListeProduits de type Windows

3. Cr=E9ation (Add / New Item) d'un Dataset, DataSet1

Depuis le Server Explorer, je fais glisser la requ=EAte ProductSel vers l=
a=20
surface du concepteur de DataSet1. Cela cr=E9e une DataTable ProductSel, =

avec les TableAdapters Fill et GetData(@ProductId)

4. De m=EAme, cr=E9ation d'un deuxi=E8me Dataset, DataSet2

Depuis le Server Explorer, je fais glisser la table OrderDetails. Cela=20
cr=E9e une DataTable OrderDetails, avec les TableAdapters Fill et GetData=
().

5. Cr=E9ation (Add / New Item) d'un Report, RepOrderDetails.rdlc

Menu Report, Data Sources : DataSet2_Order_Details, Add to Report, OK.

6. Cr=E9ation (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=20
double-clic dans la Toolbox.

8. Sur le menu du "tag" du ReportViewer, s=E9lection de RepOrderDetails.r=
dlc

9. Elargissement du ReportViewer.

Ex=E9cution : page toute blanche.

10. Dans RepOrderDetails.rdlc, ajout d'une Table par double-clic dans la =

Toolbox.

11. Dans le Server Explorer, d=E9veloppement (par clic sur +) de la table=
=20
Order_Details

Gliss=E9 des champs OrderID et ProductID vers les deux premi=E8res cellul=
es=20
de la deuxi=E8me ligne (ligne d=E9tail). Oops, =E7a ne donne rien.

12. Ajout de source de donn=E9es.
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=E9dure stock=E9e ProductSel.

Finish.

13. Ajout de champs =E0 RepOrderDetails.rdlc

Depuis Data Sources, d=E9veloppement de DataSet2 / Order_Details.
Gliss=E9 de OrderID vers la premi=E8re cellule de la ligne d=E9tail. La=20
premi=E8re ligne fait appara=EEtre l'intitul=E9 Order ID, la deuxi=E8me=20
=3DFields!OrderID.Value.
Gliss=E9 de ProductID vers la deuxi=E8me cellule de la ligne d=E9tail. La=
=20
premi=E8re ligne fait appara=EEtre l'intitul=E9 Product ID, la deuxi=E8me=
=20
=3DFields!ProductID.Value

14. Cr=E9ation du sous-=E9tat
- s=E9lection de la troisi=E8me cellule de la ligne d=E9tail
- double-clic sur SubReport dans la Toolbox
- dans les propri=E9t=E9s,
ReportName : RepProduct
Parameters : clic sur le bouton =E0 droite,
Parameter Name : ProductID,
Parameter Value : =3DFields!ProductID.Value
OK.


Ex=E9cution : les champs OrderID et ProductID apparaissent correctement. =

En troisi=E8me colonne, sur chaque ligne l'intitul=E9 "Error : the subrep=
ort=20
could not be shown".

Il n'y a m=EAme pas eu besoin d'ins=E9rer des champs dans le sous-=E9tat,=
au=20
demeurant au mois de mai il y en avait et =E7a n'emp=EAchait pas l'erreur=
=2E

Y a-t-il quelque chose que j'ai fait de travers ?

3 réponses

Avatar
Gloops
Bon, peut-être qu'il va y avoir besoin de s'organiser.
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/masterdetail/SubreportInList.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.
Avatar
Gloops
Voici ma config :
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
Avatar
Gloops
http://gotreportviewer.com/definedata/index.html

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 :
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 la
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 GetDa ta().

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 .rdlc

9. Elargissement du ReportViewer.

Exécution : page toute blanche.

10. Dans RepOrderDetails.rdlc, ajout d'une Table par double-clic dans l a
Toolbox.

11. Dans le Server Explorer, développement (par clic sur +) de la tab le
Order_Details

Glissé des champs OrderID et ProductID vers les deux premières cell ules
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 subr eport
could not be shown".

Il n'y a même pas eu besoin d'insérer des champs dans le sous-éta t, au
demeurant au mois de mai il y en avait et ça n'empêchait pas l'erre ur.

Y a-t-il quelque chose que j'ai fait de travers ?