A laide crystal report et webform et oracle

Signaler
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005
-
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
-
bonjour a tous quelqu'un pourrait il m'aider a faire un etat crystal report sur une webform je m'explique. J'ai une requete executée par un dataAdaptater qui rempli un Dataset avec la methode Fill j'ai testé le dataset et il contient bien le resultat de la requete.puis j'affecte mon dataset au report. a l'execution je n'ai pas d'erreur mais mon report est vide que faire...aidez moi svp merci

18 réponses

Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
tu fais un MonRpt.SetDatasource(Mondataset);

et malgre cela ton rpt est vide ???

tu n'aurait pas rempli ton dataset avec un truc style
mondataadapteur.Fill(mondataset, "MATABLE");

sinon je pense qu'il fo mettre

MonRpt.SetDatasource(Mondataset.Tables["MATABLE"]);


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

merci d'avoir repondu,voici mon code si sa peut aider j'espere que tu sauras m'aiguiller...

ReportDocument monReport=
new ReportDocument();


DataSet MonDataSet=
new DataSet();


OleDbConnection connection =
new OleDbConnection();


connection.ConnectionString = ConfigurationSettings.AppSettings["K_CHAINECONNEXION"];


connection.Open();



string nomprojet=CboProjet.SelectedValue;


string requete" SELECT PROJET.ID_POLE POLE_REPONSABLE_PROJET,PROJET.ID_RESSOURCE ID_RESPONSABLE_PROJET,ACTIVITE.ID_RESSOURCE,ACTIVITE.ID_POLE,ACTIVITE.ID_STATUT,ACTIVITE.ID_ACTIVITEMERE,ACTIVITE.ID_ACTIVITE,ACTIVITE.LB_NOM NOM_ACTIVITE,ACTIVITE.NB_CHARGEPREVUEJOUR,ACTIVITE.NB_CHARGEPREVUEHEURE,ACTIVITE.NB_CHARGERESTANTEJOUR, ACTIVITE.NB_CHARGERESTANTEHEURE,PROJET.DT_DEBUTPREV,PROJET.DT_FINPREV,PROJET.DT_DEBUTREELLE,PROJET.DT_FINREELLE,SUM(CHARGE_REEL.NB_CHARGE)"+" FROM ACTIVITE, PLANNING, PROJET,CHARGE_REEL "+" WHERE PLANNING.ID_PLANNING ACTIVITE.ID_PLANNING "+ " AND PROJET.ID_PROJET = PLANNING.ID_PROJET "+" AND ACTIVITE.ID_ACTIVITE=CHARGE_REEL.ID_ACTIVITE(+) "+" AND PROJET.ID_PROJET= "+Format.SQLChaine(nomprojet) +" GROUP BY PROJET.ID_POLE,PROJET.ID_RESSOURCE,ACTIVITE.ID_RESSOURCE,ACTIVITE.ID_POLE, ACTIVITE.ID_STATUT,ACTIVITE.ID_ACTIVITEMERE,ACTIVITE.ID_ACTIVITE,ACTIVITE.LB_NOM,ACTIVITE.NB_CHARGEPREVUEJOUR,ACTIVITE.NB_CHARGEPREVUEHEURE,ACTIVITE.NB_CHARGERESTANTEJOUR, ACTIVITE.NB_CHARGERESTANTEHEURE,PROJET.DT_DEBUTPREV,PROJET.DT_FINPREV,PROJET.DT_DEBUTREELLE,PROJET.DT_FINREELLE";


OleDbDataAdapter myAdapter=
new OleDbDataAdapter(requete,connection)


myAdapter.Fill(MonDataSet);


cr_projet test=
new cr_projet();


test.SetDataSource(MonDataSet.Tables);


Cr_RapportProjet.DataBind();


Cr_RapportProjet.ReportSource=test;

dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
a la place de test.SetDataSource(MonDataSet.Tables);
tu as essayer

test.SetDataSource(MonDataSet);


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

oui j'ai deja essayé car c ce qu'il y'avait a la base mais en voyant ce que tu ma repondu j'ai decidé d'essayer mais rien y fait je sais vraiment pas quoi faire...As tu une autre solution??

dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
nop je vois pas l'erreur desole...
comment tu a generer ton report ???
a partir d'un dataset modelise ???


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
jette un oeuil la dessus :
http://www.csharpfr.com/forum.v2.aspx?ID=329926


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

en fait mon dataset est crée par le code et lorsque je lui applique la methode writexml ya bien des données dedans donc je me dis que mon probleme n'est pas du au dataset mais plutot au report et je ne sais vraiment pas quoi faire.


Je vais t'explquer:


j'ai un cr_viewer sur la webform, j'ai un etat que je n'ai pas rempli lors de sa creation j'avais le choix alors j'ai choisi etat vide car je me disais que par le code je le remplirai...


As tu une solution???et comprend tu mon probleme

dedec
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

et je me suis egalement servi du tuto dans developpez.com sa ma aidé mais mon etat est toujours vide..

dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
oui en fait je pense que c'est a la creation du report qui pose pb....
pour faire simple il faut que tu genere un dataset (qui aura la meme structure que celui generer par code actuellement, meme nom, meme colonne tou pareil) pour ca tu fait dans ton projet ajouter un dataset et tu saisis tes colonnes etc...cf le post dont j'ai mis le lien ci dessus
apres ca tu creer a partir de ce dataset ton report en placant les colonnes (vides pour l'instant) sur ton etat...

dans le prog en execution tu fais ton fill dataset et ton setdatasource(datasetrempli)
le dataset rempli ayant la meme structure que celui vide que tu a creer il va affecter les valeurs aux colonnes et afficher tout ca comme il faut....

c une peu sioux a mettre en place mais ca marche tres bien...

suis bien toutes les infos du post (cf lien ci dessus) j'avais deja tout explique a kkun....


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
oups tromper de lien avant en voila d'autre a lire qui complete celui du dessus :


http://www.csharpfr.com/forum.v2.aspx?ID=345767

pour la creation du dataset refere toi a ca :

http://www.csharpfr.com/code.aspx?id=26857

http://www.csharpfr.com/forum.v2.aspx?ID=337192

http://www.csharpfr.com/forum.v2.aspx?ID=329029

en faisant un mix de tout ca tu devrais t'en sortir...avec le principe ci dessus


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

j'ai un peu de mal a comprendre ce que tu veux que je fasse je t'explique ce que j'ai compris:
imaginons que ma requete est la suivante "select * from projet",
tu veux que j'ajoute un dataset au projet auquel je fais glisser de l'explorateur de server la table projet.
puis apres j'ajoute un etat crystal report au projet et j'y ajoute tous les champs de la table projet.
je te donne le code

cr_projet monReport=
new cr_projet();


ds_test MonDataSet=
new ds_test();


OleDbConnection connection =
new OleDbConnection();


connection.ConnectionString = ConfigurationSettings.AppSettings["K_CHAINECONNEXION"];


connection.Open();



string nomprojet=CboProjet.SelectedValue;



string requete= " SELECT * from projet";


OleDbDataAdapter myAdapter=
new OleDbDataAdapter(requete,connection);


myAdapter.Fill(MonDataSet);



//MonDataSet.WriteXml(@"c:\inetpub\wwwroot\tes.xml");


monReport.SetDataSource(MonDataSet.Tables["projet"]);


Cr_RapportProjet.DataBind();


Cr_RapportProjet.ReportSource=monReport;

sa me met une erreur CrystalDecisions.CrystalReports.Engine.LogOnException: Échec de la connexion.

en tout cas merci de ton aide c super sympa de ta part

dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
perso je ne ferais pas de cliquer deplacer pour generer le dataset mais je ferais plutot des click droit sur le fichier xsd pour ajouter les element contenu dans la table projet...
et apres ca tu fais un nouveau report tu prend comme source de donnees le dataset que tu viens de creer a la main...

et apres tu utilse ton code pour remplir un dataset avec les donnees et tu setdatasource celui ci sur le report fraichement creer....


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

j'y arrive decidement pas...j'ai fais le dataset comme tu me la conseillé puis j'ai creer un etat crystal report ayant pour source de donné le dataset creeé auparavant. puis j'y met le code suivant :

Dataset1 ds=
new Dataset1();


CrystalReport1 monReport=
new CrystalReport1();


OleDbConnection cn =
new OleDbConnection();


cn.ConnectionString="Provider=msdaora;Data Source=BASEDEV_DEV;User Id=SADSI;Password=SADSI";



string requete= " SELECT * from projet";


OleDbDataAdapter myAdapter=
new OleDbDataAdapter(requete,cn);


myAdapter.Fill(ds);


monReport.SetDataSource(ds);


crystalReportViewer1.ReportSource=monReport;

mais rien n'y fais l'etat est toujours vide, je comprend vraiment pas.

dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
fais peut etre


myAdapter.Fill(ds, "Table_PROJET");


monReport.SetDataSource(ds.Tables["Table_PROJET"]);

???
sinon ben sorry je sais po....
tu dois pas etre bien loin....
mais la comme ca peut pas t'aider plus desole...


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

en tout cas merci tu ma bien aidé deja je te tiens au courant si j'y arrive

dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
yop sorry

dois y a voir un petit truc qui fout la mierda....


Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
12
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2005

Dis moi Arthenius?
regarde cette ligne
mondataadapteur.Fill(mondataset.MATABLE);
quand j'ai plusieurs table dans un dataset comment je fais parce que avec cette methode je ne peux afficher qu'une seule table et non plusieurs.

tu me comprend??
dedec
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
en fait il faut faire autant de fill(et donc de dataadapteur) que tu as de table

mondataadapteur.Fill(mondataset.MATABLE);
mondataadapteur_2.Fill(mondataset.MATABLE_2);
mondataadapteur_3.Fill(mondataset.MATABLE_3);
mondataadapteur_4.Fill(mondataset.MATABLE_4);


Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."