Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

RefreshVolumeDirectory

edited May 2010 in Server
Hi Nard,

I have a new problem. In my client application there is an option very
common in the most of applications named "Save As...". So, when I use that
option, I insert a new row in my table (REPORTS) of DataBase. After, I try
to print that report, but that is not still available in my
ReportVolumeDirectory because there isn't any active session. First, how can
I refresh the ReportVolumeDirectory? How can I create a new session without
have printed a report before? I need of a ClientReport.sessionID.

Best Regards,

Bruno Braga

Comments

  • edited May 2010
    The ReportVolume.DirectionOptions.RefreshInterval specifies the refresh rate
    for rebuilding the directory cached by the Server. The default is 60
    (seconds).

    There is also a cached copy of the directory on the client. The
    ClientReportExplorer.RefreshVolumeDirectory method can be used to retrieve
    the latest from the server. When the ClientReportExplorer is displayed, the
    user can select View | Refresh Volume to retrieve the latest directory from
    the server.


    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited June 2010
    Nard,

    I think that you don't understand my question. Whether I don't have an
    active session created, the method
    ClientReportCatalog.RefreshVolumeDirectory(vVolumeName) does not work. Try
    it. I need to create a new session on client session. Could you explain me
    how can I do that on Client Side? Thanks.

  • edited June 2010
    I think I still don't understand. As a test I opened
    RBServer\Demos\Clients\Client Report Catalog\Dynamic List. I added a button
    to the Form and in the button OnClick I coded:

    procedure TfrmClientReports.Button1Click(Sender: TObject);
    begin
    FClientReportCatalog.ClearSession;
    FClientReportCatalog.SessionID := '';
    FClientReportCatalog.RefreshVolumeDirectory(FVolumeName);
    ShowMessage(FClientReportCatalog.SessionID);
    end;

    The above code clears the session and the sessionID and then when
    RefreshVolumeDirectory is called, a new sessionID is assigned by the server.



    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited June 2010
    Nard,

    Your example solved my problem. Thanks a lot!


    Best Regards,

    Bruno Braga


This discussion has been closed.