Crystal Report 2016 einbinden ?



  • Hallo Leute,

    kann mir jemand beim einbinden des Crystal Report 2016 im C++Builder 11 über ActiveX helfen ?
    Crystal Report 11 konnte man ja mit den Includes:

    #include "CrystalActiveXReportViewerLib11_5_OCX.h"
    #include "CRAXDDRT_OCX.h"
    #include "CRAXDDRT_TLB.h"
    IApplicationPtr m_Application;
    
    	if (!m_Application)
    		m_Application.CreateInstance(AnsiTowchar_t("CrystalRuntime.Application.11"));
    

    einbinden. Das funktioniert hier beim Crystal-Report 2016 aber nicht mehr.
    Kann mir hier einer von euch vielleicht einen Ansatz vermitteln ? Bin zur Zeit ratlos.
    Es gibt wohl eine .NET Runtime die man ansprechen kann, habe aber auch im SAP Forum keinen Ansatz zum einbinden im C++Builder gefunden.



  • Kann hier wirklich keiner helfen ? 😔 🤔



  • @andivdeu sagte in Crystal Report 2016 einbinden ?:

    Das funktioniert hier beim Crystal-Report 2016 aber nicht mehr.

    Das ist keine ausreichende Fehlerbeschreibung.



  • @hustbaer Das sollte auch keine Fehlerbeschreibung sein. Ich wollte nur wissen ob jemand helfen kann den Crystal-Report 2016 in C++Builder 11 Sourcecode einzubinden bzw. wie das Vorgehen ist, die Crystal Report Type Librarys und welche in die IDE einzubinden. 🤔



  • Exception? HRESULT Ergebnis?
    Any more information...?



  • Ich nehme mal an, daß sich einfach die Versionsnummer geändert hat, also

    #include "CrystalActiveXReportViewerLib14_2_OCX.h" // oder eine andere Versionsnummer
    // ...
        m_Application.CreateInstance(AnsiTowchar_t("CrystalRuntime.Application.14"));
    

    Edit: Laut englischer Wiki Crystal Reports ist die interne Versionsnummer für CR 2016 14.2.



  • @Martin-Richter Hallo Martin, es gibt keine Exception und auch noch kein Ergebnis, weil ich überhaupt noch nicht weiß wie ich den neuen Crystal Report 2016 einbinden soll.



  • @Th69 Das einbinden auf diese weise funktioniert eben nicht mehr bei der Version 2016. Das habe ich probiert.



  • Was für Fehler erhältst du denn?

    Du kannst auch mal mit RegDllView schauen, welche COM-Module bei dir registriert sind.



  • @andivdeu sagte in Crystal Report 2016 einbinden ?:

    Das einbinden auf diese weise funktioniert eben nicht mehr bei der Version 2016.

    Dann gib uns doch mal den Rückgabewert von m_Application.CreateInstance() an!

    Wir können hier nicht ins Blaue raten, was bei dir fehlschlägt. Dazu gibt es zuviele mögliche Ursachen.



  • @andivdeu scheint schon Compiler-Fehler zu haben, aber welche, das will er ja nicht verraten.

    Meine Kristallkugel (crystal ball ; -) funktioniert leider auch nicht mehr...



  • @Quiche-Lorraine ok, hier der Code für 2016:

    #include "CrystalActiveXReportViewerLib14_OCX.h"
    #include "CrystalActiveXReportViewerLib14_TLB.h"
    #include "CrystalPrintControlLib_OCX.h"
    #include "CrystalPrintControlLib_TLB.h"
    
    IApplicationPtr m_Application;   //..Diesen Pointer findet er schon nicht, weil es das in den includeten Units des neuen CR2016 anscheinend nicht mehr gibt?!
    
    an diesen Punkt kommt er dann schon gar nicht.
    	m_Application.CreateInstance(AnsiTowchar_t("CrystalRuntime.Application.14"));
    

    Beim CR11 gibt es noch eine craxddrt.dll in der das Application Object "CrystalRuntime.Application.11" vorhanden ist. Bei dem neuen CR 2016 gibt es diese dll schon gar nicht mehr. Habe mit dem RegDllView wie Th69 vorgeschlagen hat in jeder dll vom CR2016 (SAP Verzeichnis) nachgeschaut.
    Beim CR11 werden beim Typlibrary Import folgende Dateien erzeugt:

    #include "CrystalActiveXReportViewerLib11_5_OCX.h"
    #include "CRAXDDRT_OCX.h"
    #include "CRAXDDRT_TLB.h"
    

    und in der CRAXDDRT_*.h steht wohl auch das "CrystalRuntime.Application.11" drin.
    Wie soll man diese "CrystalRuntime.Application.XX" erzeugen, wenn es diese craxddrt.dll schon gar nicht mehr gibt? Hab im SAP Forum auch nichts gefunden. Es gibt ja nicht mal ein C# Example oder ähnliches von dem SAP Saftladen. 😉



  • @Th69

    #include "CrystalActiveXReportViewerLib14_OCX.h"
    #include "CrystalActiveXReportViewerLib14_TLB.h"
    #include "CrystalPrintControlLib_OCX.h"
    #include "CrystalPrintControlLib_TLB.h"
    
    IApplicationPtr m_Application; 
    

    Die Compiler Fehlermeldung lautet:

    [bcc32c Fehler] F_main.cpp(14): unknown type name 'IApplicationPtr'
    


  • Hast du noch das Projekt für Crystal Reports 11?
    Kannst du dann mal in der IDE schauen, wo genau IApplicationPtr definiert ist (und als was) : "Gehe zu Definition" oder so ähnlich?
    Dies sollte m.E. in einem allgemeinen COM/ActiveX-Header definiert sein.
    Ansonsten suche mal (z.B. über den Windows Explorer) in allen C++Builder-Headern direkt nach IApplicationPtr.



  • @andivdeu sagte in Crystal Report 2016 einbinden ?:

    Wie soll man diese "CrystalRuntime.Application.XX" erzeugen, wenn es diese craxddrt.dll schon gar nicht mehr gibt?

    Oh oh, so wie es aussieht ist das Ganze veraltet: c++/MFC, Upgrading from Crystal Reports 11 to 13



  • Danke für eure Unterstützung, 👍🏼
    Ich werde ein anderes Produkt verwenden.