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

MFC Discussion :

L'élément DataSets n'existe pas


Sujet :

MFC

  1. #21
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    Merci Gabrielly,
    jusqu'à maintenant c'est bon.
    J'ai aucun problème.
    j'attends la suite .
    Cordialement

  2. #22
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Citation Envoyé par 3aychoucha
    Bonjour,
    Concernant les winforms (en vc++) je crois que c'est beaucoup plus facile que les MFCs, Mais jusqu'à maintenant je ne trouve pas le bon chemin
    Si vous avez une idée, je serai très reconnaissante
    Merci d'avance
    3aychoucha, on dirait que tu ne m'as pas bien compris.

    Les Datasets ne sont pas crées dans un projet MFC mais plutôt dans un projet CLR C++/CLI ou un projet C# ou VB.NET. (Voir la première étape)

    Le monde MFC n'a que faire avec les datasets.
    L'intérêt ici des MFC est de pouvoir afficher les report rdlc (qui contiennent des datasets générées à partir d'un projet pur .NET comme un projet CLR ou C# ou VB.NET).

    Suis les étapes que j'ai donnée si au final tu veux que ton application MFC affiche des report rdlc.

    Cela ne veut pas dire que tu abondonnes ton projet winforms (en vc++) car la question que je te pose est que si ton exe est une MFC alors ces explications sont pour toi et donc je comprends que tes winforms sont au fait des winforms control library (je veux dire une dll que ton exe MFC peut appeler).

    Je ne sais pas si tu me comprends

  3. #23
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    Bonjour Gabrielly,
    J'ai oublié de vous dire que j'ai commenté cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reportViewer1->SetDisplayMode(DisplayMode::PrintLayout);
    Mon problème est que j'ai pas pu ajouter mes données à partir du boite de dialogue du projet MFC d'une part.
    De plus dans le View j'ai que le reportViewer. le report.rdlc ne s'affiche pas.
    J'ai pas compris si c'est un problème dans mon code ou on n a pas arriver jusqu'a la stade d'afficher le report.rdlc

  4. #24
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Par défaut
    Merci Gabrielly pour l'explication
    En fait, mon projet, je doit le faire avec les winforms et non pas avec les MFC
    Donc j'avais pas le chois
    le problème que j'ai est que je n'arrive pas à associer mon .rdlc au reportViewer et j'ai ce message affiché dans le reportviewer après l'execution
    une erreur s'est produite lors du traitement du rapport local.
    La définition du rapport .rdlc n'est pas spécifiée
    j'ai essayé de suivre les étapes précédentes mais avec les MFC je me sens un peu perdue
    merci pour votre aide

  5. #25
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Voici le code qui permet d'alimenter notre report en données.
    Il faudra l'adapté à vos données à vous et à vos classes "DataSet"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    void CMfcReportView::OnInitialUpdate()
    {
    	CWaitCursor wait;
    	try
    	{
    		MyReportDesign::MyReportDesignControl^ pUserControl = safe_cast<MyReportDesign::MyReportDesignControl^>(this->GetControl());
    		CMfcReportDoc* pDoc = GetDocument();
     
    		if( pDoc->GetPathName().IsEmpty() )
    			return;
    		pUserControl->ReportPath = gcnew System::String(pDoc->GetPathName());
     
    		// Je construit mon DataSet manuellement car mes données ne viennent pas d'une BD.
    		// Mon DataSet est construit sur base de ma classe CClientDataSet de mon projet CLR
     
    		// Je construit un System::Data::DataSet
    		System::Data::DataSet^ dsReportData = gcnew System::Data::DataSet();
     
    		// Je construit une table DataTable
    		System::Data::DataTable^ newTable = gcnew System::Data::DataTable("table");
     
    		newTable->Columns->Add("ID", int::typeid);
        	newTable->Columns->Add("ClientName", System::String::typeid);
        	newTable->Columns->Add("Responsible", System::String::typeid);
        	newTable->Columns->Add("Address", System::String::typeid);
        	newTable->Columns->Add("Street", System::String::typeid);
        	newTable->Columns->Add("StreetNumber", System::String::typeid);
        	newTable->Columns->Add("Phone", System::String::typeid);
        	newTable->Columns->Add("Email", System::String::typeid);
        	newTable->Columns->Add("WebPage", System::String::typeid);
        	newTable->Columns->Add("PostalBox", System::String::typeid);
        	newTable->Columns->Add("PostalCode", System::String::typeid);
        	newTable->Columns->Add("Town", System::String::typeid);
        	newTable->Columns->Add("Country", System::String::typeid);
        	newTable->Columns->Add("Description", System::String::typeid);
     
    		// Je m'apprête à fournir les données à ma DataTable*
    		// en ajoutant une nouvelle ligne dans la table
    		System::Data::DataRow^ newRow = newTable->NewRow();
     
    		// Je fournis mes données ici
    		newRow["ID"] = 1;
    		newRow["ClientName"] = "Aksanti Systems";
        	newRow["Responsible"] = "Gabriel Litsani";
        	newRow["Address"] = "157, Avenue Kindinga, Selembao";
        	newRow["Street"] = "Avenue Kindinga";
        	newRow["StreetNumber"] = "157";
        	newRow["Phone"] = "(+243) 99 94 15 395";
        	newRow["Email"] = "gabriellitsani@hotmail.com";
        	newRow["WebPage"] = "www.developpez.com";
        	newRow["PostalBox"] = "243";
        	newRow["PostalCode"] = "243";
        	newRow["Town"] = "Kinshasa";
        	newRow["Country"] = "République Démocratique du Congo";
        	newRow["Description"] = "Application Developper";
     
    		// J'ajoute ma nouvelle ligne à ma table
    		newTable->Rows->Add(newRow);
    		// et j'ajoute la table à mon datset
        	dsReportData->Tables->Add(newTable);
     
    		// ClientDS est le nom du dataset du report qui mappe avec ma classe CClientDataSet
    		// donc je fournis le System::Data::DataSet à mon User Control
    		pUserControl->AddReportDataSource("ClientDS", dsReportData);
     
    		CWinFormsView::OnInitialUpdate(); // 
    	}
     
    	catch(Microsoft::Reporting::WinForms::LocalProcessingException^ ex)
    	{
    		CString strMessage(ex->Message);
    		::AfxMessageBox(strMessage, MB_OK);
    	}
    }
    Ensuite on référence les assemblies dans le projet MFC et on prépare une petite méthode de lancement de l'affichage du report.rdlc et c'est la fin.

  6. #26
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    Bonjour Gabrielly,
    SVP j'ai trouvé un autre problème et j'ai pas compris la source de ce pb.
    Lorsque j'exécute mon projet MFC l'erreur suivante m'apparait:
    Une erreur s'est produite lors du traitement du rapport local.
    La définition du rapport "Report1.rdlc" n'est pas spécifié
    Qu'est ce qu'il me faut faire pour dépasser ce pb.
    Merci

  7. #27
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    C'est bon j'ai trouvé la solution:
    Il suffit de modifier la ligne suivante
    this->reportViewer1->LocalReport->ReportEmbeddedResource = L"Report1.rdlc";
    par cette ligne
    this->reportViewer1->LocalReport->ReportPath = L".\\Report3.rdlc";

  8. #28
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Est-ce que tu as suivis la dernière étape du OnInitialUpdate()?

    Pour lancer l'affichage du report,
    j'ai crée un petit menu Report tel que lorsque je clique dessus il m'ouvre une boite de dialogue d'ouverture de fichier et où je sélectionne mon fichier report1.rdlc.

    Le gestionnaire de commande de menu est pris en charge par la main frame
    (je suppose que l'application est une MFC MDI)
    Je récupère le doc template de mon application et je lui passe le Report Path
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    void CMainFrame::OnReportRdlc()
    {
    	POSITION pos = theApp.GetFirstDocTemplatePosition();
    	ATLASSERT(pos);
    	CDocTemplate* pDocT = theApp.GetNextDocTemplate(pos);
     
    	TCHAR szFilters[]= _T("My Report Files (*.rdlc)|*.rdlc|All Files (*.*)|*.*||");
     
    	CFileDialog fileDlg(TRUE, _T("rdlc"), _T("*.rdlc"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
     
    	if(fileDlg.DoModal() == IDOK)
      	{
    		CString pathName = fileDlg.GetPathName();
    		CString fileName = fileDlg.GetFileTitle();
    		CString strReportPath = pathName;
     
    		pDocT->OpenDocumentFile(strReportPath);
       }
    }
    Pour les assemblies à référencer au projet MFC nous avons
    1. Microsoft.ReportViewer.WinForms
    2. System
    3. System.Data
    4. System.Windows.Forms

  9. #29
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    J'ai pas tout a fait terminer l'ajout des datasets .
    EN faite lorsque j'ai pris tout le code de la discussion 25 (oninitialUpdate)
    Le rapport ne sera pas affiché. Seulement le reportviewer est affiché.
    Lorsque j'ai commenté les deux lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if( pDoc->GetPathName().IsEmpty() )
    			return;
    alors le message suivant s'affiche:
    le traitement du rapport a été annulé
    Lorsque j'ai commenté la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pUserControl->ReportPath = gcnew System::String(pDoc->GetPathName());
    alors l'erreur suivante s'affiche
    Une erreur s'est produite lors du traitement du rapport local.
    Une source d'instance des données manque pour la source de données MyReportDesignSetDataSet
    .
    Lorsque j'ai fait Actualiser dans le rapport l'erreur suivante apparait
    Une source d'instance de données manque pour la source de données
    .
    Est ce qu'il y a quelqu'un qui peut m'aider pour résoudre ce pb

  10. #30
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Et Voici le résultat

  11. #31
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Par défaut problème avec les datasets
    Bonjour,
    Avec mon projet winforms (en vc++)j'ai pu récupérer mon report et l'afficher dans le reportviewer mais je trouve du mal à ajouter la source de données
    je trouve pas le bon code pour le faire
    Merci d'avoir m'aider

  12. #32
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    Est ce que cette erreur est due à mon doc car lorsque j'ai fait le débogage,
    Il sort de cette return.(Il ne termine pas le reste du code)
    if( pDoc->GetPathName().IsEmpty() )
    return;

  13. #33
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Bonjour à toutes les deux.

    Si vous suivez exactement ce que je vous dis vous aurez le même résultat avec vos données et vos datasets. A moins que vous ayez des problèmes de langage de programmation ou de technologie MFC ou CLR.

    moooona ne met rien en commentaire suis les étapes car la solution est complète.
    Montre moi plutôt ta classe à toi CClientDataSet et la liste de tes données
    Au fait tu dois faire un truc comme celui là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    // Je construit un System::Data::DataSet
    		System::Data::DataSet^ dsReportData = gcnew System::Data::DataSet();
     
    		// Je construit une table DataTable
    		System::Data::DataTable^ newTable = gcnew System::Data::DataTable("table");
     
    		newTable->Columns->Add("ID", int::typeid);
        	             newTable->Columns->Add("ClientName", System::String::typeid);
        	             newTable->Columns->Add("Responsible", System::String::typeid);
        	             newTable->Columns->Add("Address", System::String::typeid);
        	             newTable->Columns->Add("Street", System::String::typeid);
        	             newTable->Columns->Add("StreetNumber", System::String::typeid);
        	             newTable->Columns->Add("Phone", System::String::typeid);
        	             newTable->Columns->Add("Email", System::String::typeid);
        	             newTable->Columns->Add("WebPage", System::String::typeid);
        	            newTable->Columns->Add("PostalBox", System::String::typeid);
        	            newTable->Columns->Add("PostalCode", System::String::typeid);
        	            newTable->Columns->Add("Town", System::String::typeid);
        	            newTable->Columns->Add("Country", System::String::typeid);
        	            newTable->Columns->Add("Description", System::String::typeid);
     
    		// Je m'apprête à fournir les données à ma DataTable*
    		// en ajoutant une nouvelle ligne dans la table
    		System::Data::DataRow^ newRow = newTable->NewRow();
     
    		// Je fournis mes données ici
    		newRow["ID"] = 1;
    		newRow["ClientName"] = "Aksanti Systems";
        	             newRow["Responsible"] = "Gabriel Litsani";
        	             newRow["Address"] = "157, Avenue Kindinga, Selembao";
        	             newRow["Street"] = "Avenue Kindinga";
        	             newRow["StreetNumber"] = "157";
        	             newRow["Phone"] = "(+243) 99 94 15 395";
        	             newRow["Email"] = "gabriellitsani@hotmail.com";
        	             newRow["WebPage"] = "www.developpez.com";
        	             newRow["PostalBox"] = "243";
        	             newRow["PostalCode"] = "243";
        	             newRow["Town"] = "Kinshasa";
        	             newRow["Country"] = "République Démocratique du Congo";
        	             newRow["Description"] = "Application Developper";
     
    		// J'ajoute ma nouvelle ligne à ma table
    		newTable->Rows->Add(newRow);
    		// et j'ajoute la table à mon datset
        	dsReportData->Tables->Add(newTable);
    Citation Envoyé par moooona
    Une source d'instance des données manque pour la source de données MyReportDesignSetDataSet
    Si cette source de données manquent et que tu ne l'utilises pas alors tu le supprime du panneau de ton Report Data. (Je crois que tu avais dans ce cas deux datasources dont l'un n'est pas utilisé).

    Et puis exploite la dernière fonction void CMainFrame::OnReportRdlc() pour lancer ton report. Connecte cette fonction à un évènement de ton choix.

    Citation Envoyé par 3aychoucha
    Bonjour,
    Avec mon projet winforms (en vc++)j'ai pu récupérer mon report et l'afficher dans le reportviewer mais je trouve du mal à ajouter la source de données
    je trouve pas le bon code pour le faire
    Si ton exe est une application MFC alors montre moi ton usercontrol de ton reportviewer.

  14. #34
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Par défaut
    Bonjour,
    c'est ce que je suis entrain de dire depuis longtemps, mon application n'a rien avoir avec les MFC
    Poue cette raison je trouve que le code n'est pas convenable
    par exemple j'ai pas CDocument, pas de user control,etc
    j'affiche directement le rapport dans le reportviewer affiché dans un form
    Mon projet est un projet CLR pure
    Merci d'avance

  15. #35
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Une image vaut parfois milles mots.

  16. #36
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Par défaut
    Est ce que je dois refaire les mêmes étapes avec les winforms?? créer un dll et l'utiliser???
    C'est un projet MFC celui là ou Winforms???
    Merci d'avance

  17. #37
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Bon 3aychoucha,
    Il faut qu'on discute sur un autre forum, je crois de C++/CLI car ton problème n'a rien avoir avec les MFC.
    Ouvre une discution et montre moi ton code de ton winforms (dans le forum C++/CLI)

    3aychoucha, c'est un projet CLR en tant Windows Forms Control Library c'est à dire une dll mais qui est consommée par une application MFC (exe)

  18. #38
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    J'ai essayé de faire la meme chose mais avec un seul champs:
    voila mon fichier datasource.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #pragma once
     
    // Fichier DataSources.h
    // J'insère toutes mes classes <<DataSet>> ici
     
    using namespace System;
     
     
    namespace MyReportDesign 
    {
    	public ref class CClientDataSet
    	{
    	public:
    		property System::String^ ClientName;
     
    	};
    }
    Pour ma fonction OnInitialUpdate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    void CMfcReportView::OnInitialUpdate()
    {
    	CWaitCursor wait;
    	try
    	{
    		ReportViewer::ReportViewerControl^ pUserControl = safe_cast<ReportViewer::ReportViewerControl^>(this->GetControl());
    		CMfcReportDoc* pDoc = GetDocument();
     CString str=pDoc->GetPathName();
    		if( pDoc->GetPathName().IsEmpty() )
    			return;
    		pUserControl->ReportPath =L".\\Report3.rdlc" ;//gcnew System::String(pDoc->GetPathName());
    		//	
    		// Je construit mon DataSet manuellement car mes données ne viennent pas d'une BD.
    		// Mon DataSet est construit sur base de ma classe CClientDataSet de mon projet CLR
     
    		// Je construit un System::Data::DataSet
    		System::Data::DataSet^ dsReportData = gcnew System::Data::DataSet();
     
    		// Je construit une table DataTable
    		System::Data::DataTable^ newTable = gcnew System::Data::DataTable("table");
     
        	newTable->Columns->Add("ClientName", System::String::typeid);
     
     
    		// Je m'apprête à fournir les données à ma DataTable*
    		// en ajoutant une nouvelle ligne dans la table
    		System::Data::DataRow^ newRow = newTable->NewRow();
     
    		// Je fournis mes données ici
    			newRow["ClientName"] = "Aksanti Systems";
     
     
    		// J'ajoute ma nouvelle ligne à ma table
    		newTable->Rows->Add(newRow);
    		// et j'ajoute la table à mon datset
        	dsReportData->Tables->Add(newTable);
     
    		// ClientDS est le nom du dataset du report qui mappe avec ma classe CClientDataSet
    		// donc je fournis le System::Data::DataSet à mon User Control
    		pUserControl->AddReportDataSource("CClientDataSet", dsReportData);
     pUserControl->Refresh();
    		CWinFormsView::OnInitialUpdate(); // 
    	}
     
    	catch(Microsoft::Reporting::WinForms::LocalProcessingException^ ex)
    	{
    		CString strMessage(ex->Message);
    		::AfxMessageBox(strMessage, MB_OK);
    	}
    }
    j'ai mis ces deux lignes de la méthode oninitialUpdate en commentaire car si je les laisse alors il sort à partir de cet return.
    Pour cette raison je l'ai mis en commentaire

  19. #39
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Bon, s'il sort au niveau du return tu n'as pas utiliser la fonction OnReportRdlc().
    Faisons autrement enlève la condition et ,
    met le chemin complet (non relatif de ton report path)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pUserControl->ReportPath =L"C:\\Le chemin complet du repertoire\\Report3.rdlc" ;
    Regarde un peu ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pUserControl->AddReportDataSource("CClientDataSet", dsReportData);
     pUserControl->Refresh();
    ton "CClientDataSet" doit être le nom du DataSet qui s'affiche dans le Report Data regarde la dernière image. Ce n'est pas forcément le nom de la classe CClientDataSet.

    Et puis tu n'as pas besoin d'appeler pUserControl->Refresh(); car le OnUpdate() de la vue le fais déjà.

  20. #40
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Par défaut
    Merci Gabrielly,
    je l'ai déja fait la discution sous le forum visual studio mais aucune réponse
    Merci comme même

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Vérifier qu'un élément n'existe pas dans la BDD
    Par choumerv dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/03/2014, 15h04
  2. Réponses: 7
    Dernier message: 25/01/2012, 12h29
  3. [svg+xhtml+javascript+dom+php] L'élément dom créé n'existe pas
    Par Lcf.vs dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/01/2010, 16h08
  4. Réponses: 0
    Dernier message: 24/08/2009, 21h30
  5. [XSLT] test si un élément n'existe pas
    Par nadsky dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/06/2009, 14h10

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