IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sujets Discussion :

manipulation des rapports


Sujet :

Sujets

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut manipulation des rapports
    salut a tous,
    je developpe une application winform en c# et j'ai un probleme avec le reportviewer, je veux savoir comment lier un sous-rapport a un rapport maitre.
    en fait , j'utilise deux BDD differentes dont:

    - les information de l'entité enseignants( id,nom,prenom ...) de la base access
    - les heure d'enseignement de l'entité HeureSupp(id, heure cr, heure TD ,...) de la base sql server

    je veut afficher les données des deux entités dans un meme table du rapport, j'ai deja fait une solution mais mon code n'est pas bien organisé, quelqu'un peut m'aider s'il vous plait ??

    , voila mon code :


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.OleDb;
    using Microsoft.Reporting.WinForms;

    namespace reportSubreport
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private DataTable infoenseignant = null;

    private DataTable LoadHS()
    {

    DataSet dataSet = new DataSet();

    string strconnSql = @"Data Source=WAYDE-PC\SQLEXPRESS; Initial Catalog=HeureSuppl; Integrated Security=SSPI;";


    SqlDataAdapter ensAdapter = new SqlDataAdapter("select * FROM HeureSupplementaire", strconnSql);

    ensAdapter.Fill(dataSet, "heuresupp4");

    return dataSet.Tables[0];
    }

    private DataTable Loadensinf()
    {

    DataSet dataSet = new DataSet();

    string strconnAccess = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source= C:\Users\wayde\Desktop\Developpemnt de l'application\Base de donnée\base vide.mdb";

    OleDbDataAdapter HSAdapter = new OleDbDataAdapter("SELECT * FROM enseignant", strconnAccess);

    HSAdapter.Fill(dataSet, "enseignant");

    return dataSet.Tables[0];
    }

    void SubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e)
    {
    if (infoenseignant == null)
    infoenseignant = Loadensinf();
    e.DataSources.Add(new ReportDataSource("enseignant", infoenseignant));
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    ReportViewer reportViewer = new ReportViewer();



    reportViewer.ProcessingMode = ProcessingMode.Local;



    reportViewer.LocalReport.ReportPath = @"C:\Users\wayde\Desktop\appl exemple\testcodevb\reportSubreport\reportSubreport\Report1.rdlc";



    reportViewer.LocalReport.SubreportProcessing +=
    new SubreportProcessingEventHandler(SubreportProcessingEventHandler);



    reportViewer.LocalReport.DataSources.Add(
    new ReportDataSource("heuresupp4", LoadHS()));



    reportViewer.Dock = DockStyle.Fill;
    this.Controls.Add(reportViewer);

    this.reportViewer1.RefreshReport();
    }
    }
    }

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut les control ReportViewer en C#
    bonjour, a tous, j'ai trouvé une solution tres efficace pour manipuler des données de plusieurs source de données dans un seul table d'un reportViewer, voila le principe :
    - charger les données des differente bases en memoire
    - manipuler ces données avec LINQ to dataset
    - les stocher dans une table(qui contient les memes attributs) creer manuellement dans un autre dataset du rapport.

    et voila un exemple de code:

    // Note des honoraires des heures supplémentaires d'enseignement
    public void noteHonoraire()
    {
    try
    {
    // charger les données des differentes bases en memoire dans les datatables
    gestion_des_heures_supplémentaire.HSaccess ds = new gestion_des_heures_supplémentaire.HSaccess();

    gestion_des_heures_supplémentaire.HSaccessTableAdapters.enseignantTableAdapter da = new HSaccessTableAdapters.enseignantTableAdapter();
    gestion_des_heures_supplémentaire.HSaccessTableAdapters.HeureSupplementaireTableAdapter dahs = new HSaccessTableAdapters.HeureSupplementaireTableAdapter();
    gestion_des_heures_supplémentaire.HSaccessTableAdapters.CoutTableAdapter dacout = new HSaccessTableAdapters.CoutTableAdapter();
    gestion_des_heures_supplémentaire.HSaccessTableAdapters.TypeGradeTableAdapter dag = new HSaccessTableAdapters.TypeGradeTableAdapter();
    gestion_des_heures_supplémentaire.HSaccessTableAdapters.CoutHSVTableAdapter dacths = new HSaccessTableAdapters.CoutHSVTableAdapter();

    da.Fill(ds.enseignant);
    dahs.Fill(ds.HeureSupplementaire);
    dacout.Fill(ds.Cout);
    dag.Fill(ds.TypeGrade);
    dacths.Fill(ds.CoutHSV);

    // effectuer la requette
    var query =

    (from couhs in ds.CoutHSV.AsEnumerable()
    join hs in ds.HeureSupplementaire.AsEnumerable()
    on couhs.Field<decimal>("idhs") equals
    hs.Field<decimal>("idhs")

    join ens in ds.enseignant.AsEnumerable()
    on hs.Field<int>("idensg") equals
    ens.Field<int>("idensg")

    join grad in ds.TypeGrade.AsEnumerable()
    on ens.Field<string>("TypeG") equals
    grad.Field<string>("TypeG")

    join ct in ds.Cout.AsEnumerable()
    on grad.Field<string>("TypeG") equals
    ct.Field<string>("TypeG")

    select new
    {
    // les nom de ces attributs doivent etres les memes dans le table adapter du dataset du report(creer un datset pour le rapport)
    ens.idensg,
    ens.nomf,
    ens.prenomf,
    grad.libelle,
    hs.HSCR,
    hs.HSTD,
    hs.HSTP,
    ct.cout_CR,
    ct.cout_TD,
    ct.cout_TP,
    couhs.MBCR,
    couhs.MBTD,
    couhs.MBTP,
    couhs.IRCR,
    couhs.IRTD,
    couhs.IRTP,
    couhs.MNCR,
    couhs.MNTD,
    couhs.MNTP,
    couhs.MP

    }).Distinct();

    // stocker les données selectionnées dans un table
    DataTable table = query.CopyToDataTable();

    this.reportViewer1.Reset();

    // charger les données stockées dans la table dans le dataset du rapport
    this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetNH", table));


    this.reportViewer1.LocalReport.ReportPath = @"Reports\NotHonor.rdlc";

    this.reportViewer1.RefreshReport();
    this.Text = "Note des honoraires des heures supplémentaires d'enseignement";
    this.ShowDialog();

    }
    catch (System.Exception ex)
    {
    MessageBox.Show(ex.Message);
    }

    }

Discussions similaires

  1. Manipulation des dates, rapport Webi
    Par ammah dans le forum Webi
    Réponses: 10
    Dernier message: 22/06/2011, 11h11
  2. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40
  3. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46
  4. Manipulation des handle contexte
    Par rockbiker dans le forum DirectX
    Réponses: 1
    Dernier message: 09/05/2003, 18h51
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo