Crystal Reports Bericht mit Unterbericht



  • Hallo liebes Forum,

    ich habe verschiedene Berichte mit Crystal Reports erstellt und möchte diese in meinem Programm nutzen. Bei Berichten ohne Unterbericht funktioniert dies. Rufe ich einen Bericht mit einem Unterbericht auf, erscheint beim Laden des Berichts die Fehlermeldung: Feldname "xyz" unbekannt.

    Nach einiger Suche im Netz bin ich darauf gestoßen, dass den Unterberichten ebenfalls die LogonInfos übergeben werden müssen. Nachdem ich einige Beispiele in VB gefunden habe, habe ich versucht, diese entsprechend zu ändern. Dies klappt aber nicht. Fehlermeldung bleibt die gleiche. Sonstige Meldungen treten nicht auf.

    System::Void bericht::bericht_Load(System::Object^  sender, System::EventArgs^  e)
    	{
    		// Erstellen des Reports
    		ReportDocument ^rp = gcnew ReportDocument();
    		rp->Load(Application::StartupPath + "\\bericht\\" + name_bericht + ".rpt");
    
    		TableLogOnInfo ^logonInfo = gcnew TableLogOnInfo();
    
    		for each(Table^ table in rp->Database->Tables)
    		{
    			logonInfo = table->LogOnInfo;
    
    			logonInfo->ConnectionInfo->ServerName = Application::StartupPath + "\\datenbank\\" + "datenbank.mdb";
    			logonInfo->ConnectionInfo->DatabaseName = Application::StartupPath + "\\datenbank\\" + "datenbank.mdb";
    			logonInfo->ConnectionInfo->UserID = "";
    			logonInfo->ConnectionInfo->Password = "";
    
    			table->ApplyLogOnInfo(logonInfo);
    		}
    
    //--------- Mögliche Unterberichte ändern ------------------------------------
    		Sections^ crSections = rp->ReportDefinition->Sections;
            for each(Section^ crSection in crSections)
    		{
    			ReportObjects^ crReportObjects = crSection->ReportObjects;
    
                for each(ReportObject^ crReportObject in crReportObjects)
    			{
    				if(crReportObject->Kind == ReportObjectKind::SubreportObject)
    				{
                        SubreportObject^ subReport = (SubreportObject^) crReportObject;
    					ReportDocument^ subDocument = subReport->OpenSubreport(subReport->SubreportName);
    
    					for each(Table^ table in subDocument->Database->Tables)
    					{
    						logonInfo = table->LogOnInfo;
    
    						logonInfo->ConnectionInfo->ServerName = Application::StartupPath + "\\datenbank\\" + "datenbank.mdb";
    						logonInfo->ConnectionInfo->DatabaseName = Application::StartupPath + "\\datenbank\\" + "datenbank.mdb";
    						logonInfo->ConnectionInfo->UserID = "";
    						logonInfo->ConnectionInfo->Password = "";
    
    						table->ApplyLogOnInfo(logonInfo);
    					}
    				}
    			}
    		}
    
    // ----------------------------------------------
    
    		crystalReportViewer1->ReportSource = rp;
    	}
    

    Über jede Hilfe freue ich mich.

    Gruß


Log in to reply