Remoting ReportDocument object

Is ReportDocument object model serializable? I'm returning a ReportDocument object from a server app using .NET remoting. Getting an exception that FormatEngine class is not serializable. Using VS 2008 with CR 2008, C# in a Windows Forms application.
Can someone point to some sample explaining how a ReportDocument object can be used in .NET remoting scenarios.

The help file has good information. See:
http://msdn.microsoft.com/en-us/library/ms225448.aspx
Ludek

Similar Messages

  • Slow creating ReportDocument object and loading report

    Hi all,
    I realise this question has come up several times before, I've been searching the internet and have found similar problems but non that match my own. Sorry this is a little long winded but I would like to give as much detail as possible.
    I use CR 2008 and VS2010 on my development machine. And I have installed CR 2008 Redist SP3 on the production server.
    My application is a simple console application accepting parameters such as report name, print or export, and of course the report parameters.
    CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    rptDoc.Load(sParamDOC); //sParamDOC being the report name passed in via command line
    It has to be like this because it integrates into an old system in the background. Of course it being like this means I can not pre-load dll's on application startup (as I've seen suggested several times).
    All of this is in house, I'm an OU administrator and an administrator on the server. The server is only accessed via remote desktop and the OS is windows server 2003. I installed all of the neccesary software to make this work.
    What is really puzzling me though is that when I use this program via command prompt, logged in as me, it creates the object and loads the report in a matter of seconds. Yet if anybody else runs it (even other administrators of the server) the program can take 30-60 seconds to create the ReportDocument object and the same again to load the report.
    I initially only noticed this for the standard users, which was why I created another admin to test. I don't think it's a problem with the report design because it works quick for me. I read an article about this happening with reports created in Crystal version 9. So I tested with a report made from scratch in 2008 and still get the same result. I also read another article about default printers, 'dissociate printer' option is selected and locally the default printers are set to the same printer also.
    Does anybody have any suggestions as to where I could look next?
    I saw in another article some registry keys you can use to turn on logging for crystal reports, I want to do this but where does it put the log files?
    Oh, one more thing the server orginally had redist 2.3 on when I noticed this issue, updating to SP3 (redist 3.3) if anything made it slower, and a little more inconsistant of load times.
    Thanks
    Gavin

    I figured out what this was. I thought I would come back and post incase anyone else has the same issue... the reason it was slow for the other users is because they could not access the internet. My program doesn't use the internet but the operating system is automatically trying to verify the dll's publishers. you can disable this see the following blog:
    [http://blogs.msdn.com/b/amolravande/archive/2008/07/20/startup-performance-disable-the-generatepublisherevidence-property.aspx|http://blogs.msdn.com/b/amolravande/archive/2008/07/20/startup-performance-disable-the-generatepublisherevidence-property.aspx]
    Regards
    Gav

  • Error when creating a ReportDocument object in ver 11.5.3300.0

    When I try to create a new ReportDocument from .NET the application exists with no other information. There is an event log entry similar to this one:
    Faulting application CrystalTest1.vshost.exe, version 9.0.21022.8, time stamp 0x47316898, faulting module unknown, version 0.0.0.0, time stamp 0x00000000, exception code 0xc0000005, fault offset 0x04525da0, process id 0x10fc, application start time 0x01c9c2d6d624913d.
    Investigating more I tracked down that the error happens when I try to create various COM objects from Crystal Reports (for example by running the following vbscript: Set o = CreateObject("CrystalClientDoc.ReportClientDocument")). The error is always an Access Violation in cachemanager.dll on address 3f8691b5:
    3F869172 push ebx
    3F869173 push esi
    3F869174 push edi
    3F869175 push 3F873464h
    3F86917A call dword ptr ds:3F86C04Ch
    3F869180 mov ebx,dword ptr esp+10h
    3F869184 mov esi,eax
    3F869186 mov eax,dword ptr esi
    3F869188 mov ecx,esi
    3F86918A mov dword ptr esi+4,ebx
    3F86918D call dword ptr eax+8
    3F869190 push esi
    3F869191 lea edi,esi+14h
    3F869194 push eax
    3F869195 mov ecx,edi
    3F869197 call 3F8690EE
    3F86919C mov edi,dword ptr edi
    3F86919E push edi
    3F86919F push 0FFFFFFFCh
    3F8691A1 push ebx
    3F8691A2 call dword ptr ds:3F86C254h
    3F8691A8 push dword ptr esp+1Ch
    3F8691AC push dword ptr esp+1Ch
    3F8691B0 push dword ptr esp+1Ch
    3F8691B4 push ebx
    3F8691B5 call edi
    3F8691B7 pop edi
    3F8691B8 pop esi
    3F8691B9 pop ebx
    3F8691BA ret 10h
    The full stack trace is:
    00455B60()
    cachemanager.dll!3f8691b7()
    http://Frames below may be incorrect and/or missing, no symbols loaded for cachemanager.dll
    user32.dll!7735f8d2()
    user32.dll!7735f794()
    user32.dll!7735f73d()
    user32.dll!77360817()
    user32.dll!773539f7()
    ntdll.dll!771f99ce()
    user32.dll!77353cf7()
    user32.dll!77353b94()
    user32.dll!77353cc3()
    atl71.dll!7c12c51d()
    atl71.dll!7c12c633()
    atl71.dll!7c121653()
    user32.dll!77353d9a()
    cachemanager.dll!3f86922f()
    cachemanager.dll!3f86949e()
    cachemanager.dll!3f869600()
    cachemanager.dll!3f868aec()
    msvcr71.dll!7c349565()
    kernel32.dll!760e4911()
    ntdll.dll!771de4b6()
    ntdll.dll!771de489()
    The address called at 3f8691b5 seem to always contain the following data in my case:
    00455B51 00 00 add byte ptr eax,al
    00455B53 00 00 add byte ptr eax,al
    00455B55 00 00 add byte ptr eax,al
    00455B57 00 DA add dl,bl
    00455B59 44 inc esp
    00455B5A 44 inc esp
    00455B5B 3A 00 cmp al,byte ptr eax
    00455B5D 00 00 add byte ptr eax,al
    00455B5F 8B db 8bh
    00455B60 C7 44 24 04 70 1F F4 01 mov dword ptr esp+4,1F41F70h
    00455B68 E9 4E 39 41 3F jmp 3F8694BB
    00455B6D 00 00 add byte ptr eax,al
    00455B6F 00 DF add bh,bl
    00455B71 44 inc esp
    00455B72 44 inc esp
    00455B73 3A 00 cmp al,byte ptr eax
    00455B75 00 00 add byte ptr eax,al
    00455B77 88 E0 mov al,ah
    00455B79 66 45 inc bp
    00455B7B 00 90 5B 45 00 B8 add byte ptr eax-47FFBAA5h,dl
    The data and the address seem to be always the same in my case.
    I am running 32-bit Vista Ultimate on a dual core Intel Centrino CPU. I have a Crystal Reports Deployment suite installed. The cachemanager.dll is 106,496 bytes and the file version is 11.5.8.998
    Pelase help!

    Hi Ludek,
    Thanks for looking into this.
    > What version of .NET are you using?
    I have all version of .NET installed but please note that .NET is not required to reproduce the problem. Please read again my initial post. The error can be reproduced with this single line of VB Script and there is no .NET involved:
    Set o = CreateObject("CrystalClientDoc.ReportClientDocument")
    The same can be reproduced by creating a new ReportDocument object from .NET in any type of .NET application.
    > What CR Service Pack are you on?
    I haven't installed any additional service packs. Please see the versions of the files I have on my system to figure out the service pack:
    Crystaldecisions.Crystalreports.Engine.dll file version = 11.5.9708.998
    cachemanager.dll file version = 11.5.8.998
    clientdoc.dll file version = 11.5.8.998
    The other computers where all works good have the same versions installed.
    > What .NET Service Pack are you on?
    All latest service packs and updates from Microsoft are installed
    > What is the version of the CR assembly crystaldecisions.Crystalreports.engine.dll referenced in your application?
    The assembly version is 11.5.3700.0, file version: 11.5.9708.998, file size: 393,216 bytes
    > Is this a web or a win app?
    The error happens in btoh web and windows forms applications as well as by simply trying to create the Crystal COM object directly from VB Script without involving any .NET. So the same error will occur if CR are used from VB6 for example.
    > What OS are you on?
    Again as per my original post I am using a 32-bit Vista Ultimate on a dual core Intel Centrino CPU
    > What happens if you try to run an existing application?
    I get a crash in unmanaged code in cachemanager.dll at 0x3f8691b7. All the details are in my original post (scroll up). When this happens in a .NET application, the process is terminated and Vista shows a message that the program has stoped working. There is an error in the event log (see my original post)
    > There are different ways of instantiating a report. The sample app vbnet_win_simplepreview has all of these. Running the app with the different options may give us a clue... Was Crystal Reports installed before .NET or after?
    Crystal Reports Basic for Visual Studio 2008 was installed with VS 2008. After that I installed Crystal Reports Server Deployment
    > Have you tried to reinstall Crystal Reports?
    Yes I did reinstall both Crystal Reports Basic for Visual Studio 2008 and Crystal Reports Server Deployment in reverse order (i.e. the server deployment first and then the basics)

  • MICR printing problem using the Crystal ReportDocument object in C# app

    We developed a small C# windows program 6 months ago that reads a bank draft record and uses a Crystal Report form to print the draft (using ReportDocument() object and the PrintToPrinter() method).  This has been working fine for 6 months. (using .Net 2.0 Framework and Crystal Reports .Net plugin included with VS 2005 on client machine - CRRedist2005_X64.msi)
    Now the requirements have changed to put a MICR line at the bottom ot the draft check and print.  We have updated a similar Crystal draft report form and printed from Crystal Viewer - this works fine.  But when we update the Crystal report form used in the C# application, with the same MICR commands, using the same MICR printer, and the same user trying the print, it does not work.  The MICR commands are printed on the draft just like regular text, instead of being interpreted by the printer as MICR commands.  Must be something within the Crystal Reports .Net redistributable that is causing it to work incorrectly because it works correctly from the same users PC using Report Viewer.
    Note:  The MICR field on the Crystal Report contains the following chars:
           &%STHPASSWORD$&%SMD' MICR '$&%STQ$
    When we print, the above chars just print out like text
    Can anybody help with any suggestions ?
    Are they any hotfixes that address this issue of PCL commands not recognized on printer?

    The app that is working is a C++ vendor app, however the Crystal piece is seperate piece that uses the Crystal Report Viewer to pull up the draft report. The print button is then hit within Crystal Report Viewer and the draft prints correctly.
    - so the above app is using the Report Designer Component (craxdrt.dll) and as such it is not using the .NET assemblies...
    For the app that is not working, we are not using Crystal Report Viewer, but are using the ReportDocument object, from the Crystal .Net Redistributable (referenced above), embeded into our C# app. The app executes a PrintToPrint command against the identical Crystal report, however, running it this way, the MICR command that is embeded into the report is not recognized by the MICR printer. The output seems to jumble the MICR command that I posted earlier in the thread and does not keep the command in a readable format for the MICR printer.
    - the above is not using the Report Designer Component (craxdrt.dll). It is using the .NET assemblies and thus the .NET framework.
    Have you been able to get .NET to recognize / see the fonts in that label I mentioned on  6/27/08?
    Ludek

  • ERROR - clsid-not-found(Object::Remote::CLIENT|(Object::Remote::PROTOCOL_LOCAL|PSQL::TrayAppSvr:: 00000001)CID_SafeArchive::FileArchiveCache))

    Hi,
    I have Windows 7 Professional (PT) installed with Adobe Master Colection CS 6. The error "clsid-not-found(Object::Remote::CLIENT|(Object::Remote::PROTOCOL_LOCAL|PSQL::TrayAppSvr: :00000001)CID_SafeArchive::FileArchiveCache))" start to show a week after using the computer.
    I don't know if the error it's from windows or from any software of the Adobe. How can i solve this problem?

    Well "Protector Suite QL" is some security tool and apparently it requires authentication procedures and blocks access to critical system routines. You need to fix that. Nothing to do with Adobe at all.
    Mylenium

  • How to generate .PRN file from a ReportDocument object in Crystal Reports 10.

    Hi,
    I have reports created in Crystal 10 version. From the VB .Net code I am able to load the report to ReportDocument object and able to print it to the local printer. Now I need to generate .PRN file of the report for faxing purpose.
    Can anyone help me one this?.
    Thanks,
    Srini.

    Hi Joanne,
    Boxes do not actually have a 'name'. When you add a Box in a report, it will be called 'Box 1' by default. And the only place this name is visible is under the Report Explorer.
    Or do you mean to say 'Text Object'?
    -Abhilash

  • Load balancing remote shared object?

    Has anyone had experience keeping the Remote Shared Object in
    sync between multiple FMS servers for load balancing purposes? I'm
    thinking in terms of being able to push an SO change to one and
    have the others stay in sync.

    I made it use localhost as the path to the .swf so you might
    want to change the net connection uri property to the application
    directory if you are testing on a webhosts domain.
    [/code]
    var my_nc:NetConnection = new NetConnection();
    my_nc.connect("rtmp:/myDomain/mySwf");
    my_so = SharedObject.getRemote("testSo", my_nc.uri, true);
    my_so.connect(my_nc);
    my_so.data.aString = "a testing string";
    /// making sure it's saved.
    //I can see it fine now
    trace(my_so.data.aString);
    var my_nc:NetConnection = new NetConnection();
    my_nc.connect("rtmp:/myDomain/mySWF");
    my_so = SharedObject.getRemote("testSo", my_nc.uri, true);
    my_so.connect(my_nc);
    trace(my_so.data.astring);
    [/code]

  • Access Remote DB Object using Public DB Link in Application Express -HTMLDB

    How to access and list remote database objects in HTMLDB - V2 (Application Express).
    I can query using Public DB Link with SQL.

    It is not possible. To create reports or forms on remote objects, create local views of the remote objects.
    Mike

  • Remote Shared Objects peerIDs

    Hello All, I would like to use a remote shared object to communicate to nearID. My knowledge of Server-Side ActionScript is not particularly great. Is there any tutorials or links out there that can give a demonstration how remote shared objects can obtain and distribure peerIDs? 
    Thank You

    Thank you Rajesh. Apologies for my late reply. Are you suggesting I do something like this? In the code below I have included a changeList array to describe the change properties of each member in a remote shared object. Furthermore, I have created so.data property to store attributes of the rso when a user changes one of the slots it triggers the syncEvent. Can someone please take a good close look at my code to see if you can identify any errors? thanks in advance.
    function syncExample(event:SyncEvent):void{
         my_rso.data.username1;
         my_rso.data.username2;
         my_rso.data.username3;
         my_rso.data.username4;
         my_rso.data.username5;
    for (var i = 0; i <changeList.length; i++){
    var changeList:Array = event.changeList;
    var info:Object;
    info = changeList[i];
    switch(info.code){
       case "success"
      lient_info = my_rso.data[info.name];
       case "change":
       client_info = my_rso.data[info.name];

  • How can I delete remote shared objects?

    Hello world...
    I have a problem...
    I need to unload an external .swf file or delete all the remote shared objects that it conteins...but I need to reload the same .swf file by pushing a button...
    Please help me...
    Emiliano.

    Hi,
    can you please give clear idea...
    It looks like when the namespace was deleted delete all objects under this namespace was systematically deleted.
    means all objects under namespace is already deleted before deleting namespace..right?
    If so then Now there are existing interface objects somewhere out there in the IR. Objects such as data types, message type, message mapping and interface mapping objects
    Try to clear your cache..using SXI_CACHE...
    Try to  re-create namespace and delete all objects related to your namespace and delete namespace again...( Not sure this wull help..but u can try)
    Nilesh

  • Specifying timeout for calls on remote CORBA objects

    When using a remote CORBA object from a Java client, we make use of a periodic heartbeat call to ensure the remote object is still available.
    If the process hosting the remote object dies, we get an exception back immediately after making the call which helps us to know that we need to re-connect.
    If, however, the network goes down (i.e. unplug the machine running the process hosting the remote object from the network), things get a little tricker. At this point, you end up relying on the underlying socket timeouts to control how soon you'll get back an exception.
    We're using both C++/TAO/ACE clients and Java clients. For the C++ clients, we noticed that the timeout value varied significantly based on operating system. For example, on Windows XP Home, it took 75 seconds to get an exception, but on Windows 2000 Pro, it only took 5 seconds.
    The solution for the C++ clients was to make use of a policy override in the ORB, specifying a 5 second timeout. This resulted in a uniform timeout regardless of underlying operating system.
    Now, we have to solve the same problem for the Java clients and I'm wondering if there is a similar mechanism for Sun's built-in ORB. Any ideas?

    here's what I found out. The ORB provided by Sun doesn't appear to provide a policy manager or any other way to specify object request timeouts.
    We've ended up using JacORB instead, which very easily plugs into the JDK. With JacORB, we're able to specify an object request timeout using the code below:
    long objtimeout = 5; // sets a 5 second timeout
    PolicyManager policyManager = PolicyManagerHelper.narrow(
    orb.resolve_initial_references("ORBPolicyManager"));
    Policy p = new org.jacorb.orb.policies.RelativeRoundtripTimeoutPolicy(objtimeout * 10000000);
    policyManager.set_policy_overrides(new Policy[]{ p },
    SetOverrideType.ADD_OVERRIDE);

  • ReportDocument object, sort options

    I am using Visual Studio 2005, Visual Basic syntax, SqlServer 2000 and CrystalReports XI to build a Windows Forms application.  I have a form that allows the user to define criteria for a report which I pass as a parameter to a ReportDocument object.  I now want to allow the users to define the sort fields also.  But it appears that the sort fields of the object are readonly.  Can I define the sort fields of the ReportDocument class in my code?

    Well, I thought my question was answered.  It was a very good example.  But....  I want to allow the users to select more than 1 field to sort by.  I have created the following function and it works if I only have 1 item, but it fails on the 2nd item if I have more than 1.  Can you sort by more than 1 item?   And also, it is breaking to a new page for every new last name (my sort), is there a property I need to set so it does not do that?  Thanks for your help.
    Private Function lfSort(Byval pSortList As List(Of Miscellaneous3))
         'pSortList contains a list of fields that the user wants this report to be sorted by
         'the list contains 3 items: 1)Code=the field name as defined in the table  2)Display1=the field name in English, not geek talk 3)Display2=the sort order
            Dim lSortFld As String
            Dim lSortDir As String
            Dim crDatabaseFieldDefinition As DatabaseFieldDefinition
            Dim crSortField As SortField
            If pSortList.Count > 0 Then
                For i As Integer = 0 To pSortList.Count - 1
                    lSortFld = pSortList(i).Code
                    If pSortList(i).Display2 = "Desc" Then
                        lSortDir = SortDirection.DescendingOrder
                    Else
                        lSortDir = SortDirection.AscendingOrder
                    End If
              'set the crystal parameters
                    crDatabaseFieldDefinition = crReportDocument.Database.Tables(0).Fields(lSortFld.ToString)
                    crSortField = crReportDocument.DataDefinition.SortFields(i)
                    crSortField.Field = crDatabaseFieldDefinition
                    crSortField.SortDirection = lSortDir
                Next
            End If
    End Function

  • Snap shot remote shared object question

    HI I'd like to take a snapshot of video from a webcam and
    then store that snapshot either as a file or as an object in a
    remote shared object anybody know how that can be accomplished? I
    also need to know how to store a picture in a remote shared object
    ...the picture in this case is being brought into flash using
    loadMovie.

    If you're using loadMovie, you need to extract an image from
    the recorded flv file. FFMPEG does this quite nicely.
    About the use of the sharedObject, you can use it to
    store/sync the location of the image file, but you couldn't store
    the image itself in the SO (well... you could, but you'd have to
    break it down to pixel data and that would make for an awfully big
    SO).

  • Understanding remote shared objects

    Hi Fellow users, I am using a remote shared object in my Flash Media Server project for the first time. My purpose of using a rso is to update data in real-time accross multiple clients.
    Ok, I like to store a list of users who are connected to my application. And when a client disconnects I want the object updated to all other clients connected and the online status list is revised.
    I dont know what the best approach is for this... Is it possible to use the onSync event?  And put the clients in an array and when their properties are changed the server is dispatched and updated. Or, would you recommend other alternatives?
    Interested to hear your thoughts and opinions guys.
    Thanks

    Thank you Rajesh. Apologies for my late reply. Are you suggesting I do something like this? In the code below I have included a changeList array to describe the change properties of each member in a remote shared object. Furthermore, I have created so.data property to store attributes of the rso when a user changes one of the slots it triggers the syncEvent. Can someone please take a good close look at my code to see if you can identify any errors? thanks in advance.
    function syncExample(event:SyncEvent):void{
         my_rso.data.username1;
         my_rso.data.username2;
         my_rso.data.username3;
         my_rso.data.username4;
         my_rso.data.username5;
    for (var i = 0; i <changeList.length; i++){
    var changeList:Array = event.changeList;
    var info:Object;
    info = changeList[i];
    switch(info.code){
       case "success"
      lient_info = my_rso.data[info.name];
       case "change":
       client_info = my_rso.data[info.name];

  • Obtaining Parameter Values through ReportDocument object

    Post Author: realityenigma
    CA Forum: .NET
    Hello everyone. I am using Microsoft Visual Studio 2008 and C#. I am attempting to obtain the Parameter Values after they have been set via a CrystalReportViewer through the ReportDocument object. The reason is that I am writing a scheduler that allows users of our web application to schedule reports for X runs or X datetime span. At this point the application adds to an XML file that describes the newly scheduled report's information, etc. At this point, when the time critera etc. are met, a service reads the XML file and then runs the report with current data. The issue is I cannot seem to get the ParameterValues values, and serializing the document using a BinaryFormatter yields and error on the service side stating the that I need to load the report from a RAS. Am I going about this the wrong way? Can I get to the ParameterValues without the RAS serialization situation, or is that just it? All responses are appreciated.
    Thanks,
    Michael Davidson

    Let us take this source:
    public class a {
    public void doit(int argc,String argv[] ) { }
    }Let us compile it with the -g option. Then let's do strings a.class:
    (I[Ljava/lang/String;)V
    <init>
    Code
    LineNumberTable
    LocalVariableTable
    SourceFile
    [Ljava/lang/String;
    a.java
    argc
    argv
    doit
    java/lang/Object
    thisSo the argument names really appear to be in the class file, but not forcibly available through reflection, but maybe through examining the LineNumberTable and LocalVariableTable parts of the class file.

Maybe you are looking for