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

RB NoData behaviour

edited March 2003 in General
Hello

I've seen in your newsgroups a post regarding the behaviour of RBuilder when
NoData has been Found. In fact in that post there was the following code
portion :



Does RBuilder checks if DataPipeline is already Opene or Re-Opens it ? What
I mean is that suppose we have a report which Has Data. By using the above
code portion the Query against our RDBMS is been executed and now we know
that there are data. After that point we issue the command
in order to print our report. Does that last command
Re-Execute the Query against our RDBMS in order to produce the Preview Pages
(or send the report to the printer) Or Checks first if it's already Opened ?
If it re-executes the query against our RDBMS then this seems to be as a
SlowDown regarding the whole process since we run our query twice just to
overcome the "side-effect" of the Preview Window when there are No Data.


--
Best Regards

G.MYTSKIDIS
MYTSKIDIS_G@GI-NET.GR

Comments

  • edited March 2003
    There is a pipeline property called OpenDatasource. Setting this to false
    means that the pipeline will never attempt to open the dataset. Even if it
    is true, the pipeline is smart enough to know that the dataset is active in
    this case and will not try to reopen it when the report goes to print.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited March 2003
    Hello Jim

    Unfortunatelly it doesn't work. To be more acurate I've implemented then
    following procedures :

    1). Created a function in order to know if data exist.
    Function IsData4Print : Boolean;
    Begin
    Try

    TdaQueryDataView(MyReport.DataPipeline.DataView).Active:=True;
    MyReport.DataPipeline.Open;
    Result:=(Not (ppdaNoRecords In
    MyReport.DataPipeline.State));
    Except Result:=False; End;
    End;


    2). In my main print procedure just before the MyReport.Print I've placed
    the code
    ....................................
    ....................................
    Case IsData4Print of
    True :Try
    TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;
    Finally MyReport.Print;
    Else ShowMessage('Sorry... No Data !!');
    End;
    ....................................
    ....................................
    The IsData4Print works fine. But if it returns True (Data Exist) then the
    report crashes claiming that it can't do the Preview since the main
    datapipeline isn't opened.

    Tried to remark the
    "TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;"
    ....................................
    ....................................
    Case IsData4Print of
    True :MyReport.Print;
    Else ShowMessage('Sorry... No Data !!');
    End;
    ....................................
    ....................................

    in

    Now everything works fine except that the query against Oracle is been
    executed twice. Using Oracle Monitor (a utility which comes with DOA and
    reports all queries of DOA) is showing the execution twice; one for the
    function "IsData4Print" and another one for the RBuilder Preview needs. If I
    remark "IsData4Print" and go directly to the "MyReport.Print" the very same
    utility (which I've tested in the past with success many-many times) runs
    only once for the RBuilder Preview needs.

    So I'm back where I've started, unless I've missed something or you've any
    other clue.

    I'm using D7 Ent, RBuilder v7.02 Ent, Oracle 8i,9i through DOA.

    Looking forward for your reply


    --
    Best Regards

    G.MYTSKIDIS
    MYTSKIDIS_G@GI-NET.GR



  • edited April 2003
    Try this. You need to set OpenDatasource to false so that the pipeline
    doesn't reopen the dataset:

    http://www.digital-metaphors.com/tips/CheckForDataBeforePrinting.zip

    uses
    ppDBPipe,
    ppTypes,
    DBTables;

    procedure TForm1.Button1Click(Sender: TObject);
    begin

    if HaveData then
    ppReport1.Print
    else
    ShowMessage('No Data');

    end;

    function TForm1.HaveData: Boolean;
    begin

    try

    {test}

    TQuery(TppDBPipeline(ppReport1.DataPipeline).DataSource.DataSet).AfterOpen
    := AfterOpenEvent;

    TdaQueryDataView(ppReport1.DataPipeline.DataView).Active := True;

    ppReport1.DataPipeline.Open;

    TppDBPipeline(ppReport1.DataPipeline).OpenDatasource := False;

    {has no data?}
    if (ppReport1.DataPipeline.BOF and ppReport1.DataPipeline.EOF) then
    Result := False
    else
    Result := True;

    except
    Result:=False;
    end;

    end;

    procedure TForm1.AfterOpenEvent(DataSet: TDataSet);
    begin
    ShowMessage('Dataset ' + Dataset.Name + ' Opened');
    end;



    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited April 2003
    Still the same behaviour. I've copied the code snipset you've sended and the
    result was the following error (in the case that HaveData returns True) :

    " Cannot generate report.
    Could not open Dataset.: plShiftResults "

    where plShiftResults is the name of my report's main datapipeline.

    If I remark the
    "TppDBPipeline(ppReport1.DataPipeline).OpenDatasource:=False;" the the query
    is being executed twice.



    "Jim Bennett (Digital Metaphors)" wrote in
    message news:3e89a482$1@dm500....
    | Try this. You need to set OpenDatasource to false so that the pipeline
    | doesn't reopen the dataset:
    |
    | http://www.digital-metaphors.com/tips/CheckForDataBeforePrinting.zip
    |
    | uses
    | ppDBPipe,
    | ppTypes,
    | DBTables;
    |
    | procedure TForm1.Button1Click(Sender: TObject);
    | begin
    |
    | if HaveData then
    | ppReport1.Print
    | else
    | ShowMessage('No Data');
    |
    | end;
    |
    | function TForm1.HaveData: Boolean;
    | begin
    |
    | try
    |
    | {test}
    |
    | TQuery(TppDBPipeline(ppReport1.DataPipeline).DataSource.DataSet).AfterOpen
    | := AfterOpenEvent;
    |
    | TdaQueryDataView(ppReport1.DataPipeline.DataView).Active := True;
    |
    | ppReport1.DataPipeline.Open;
    |
    | TppDBPipeline(ppReport1.DataPipeline).OpenDatasource := False;
    |
    | {has no data?}
    | if (ppReport1.DataPipeline.BOF and ppReport1.DataPipeline.EOF) then
    | Result := False
    | else
    | Result := True;
    |
    | except
    | Result:=False;
    | end;
    |
    | end;
    |
    | procedure TForm1.AfterOpenEvent(DataSet: TDataSet);
    | begin
    | ShowMessage('Dataset ' + Dataset.Name + ' Opened');
    | end;
    |
    |
    |
    | Cheers,
    |
    | Jim Bennett
    | Digital Metaphors
    |
    |
    | "Mytskidis Georgios" wrote in message
    | news:3e8805e0@dm500....
    | > Hello Jim
    | >
    | > Unfortunatelly it doesn't work. To be more acurate I've implemented then
    | > following procedures :
    | >
    | > 1). Created a function in order to know if data exist.
    | > Function IsData4Print : Boolean;
    | > Begin
    | > Try
    | >
    | > TdaQueryDataView(MyReport.DataPipeline.DataView).Active:=True;
    | > MyReport.DataPipeline.Open;
    | > Result:=(Not (ppdaNoRecords In
    | > MyReport.DataPipeline.State));
    | > Except Result:=False; End;
    | > End;
    | >
    | > > There is a pipeline property called OpenDatasource. Setting this to
    | false
    | > > means that the pipeline will never attempt to open the dataset
    | >
    | > 2). In my main print procedure just before the MyReport.Print I've
    placed
    | > the code
    | > ....................................
    | > ....................................
    | > Case IsData4Print of
    | > True :Try
    | > TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;
    | > Finally MyReport.Print;
    | > Else ShowMessage('Sorry... No Data !!');
    | > End;
    | > ....................................
    | > ....................................
    | > The IsData4Print works fine. But if it returns True (Data Exist) then
    the
    | > report crashes claiming that it can't do the Preview since the main
    | > datapipeline isn't opened.
    | >
    | > Tried to remark the
    | > "TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;"
    | > ....................................
    | > ....................................
    | > Case IsData4Print of
    | > True :MyReport.Print;
    | > Else ShowMessage('Sorry... No Data !!');
    | > End;
    | > ....................................
    | > ....................................
    | >
    | > > Even if it
    | > > is true, the pipeline is smart enough to know that the dataset is
    active
    | > in
    | > > this case and will not try to reopen it when the report goes to print.
    | >
    | > Now everything works fine except that the query against Oracle is been
    | > executed twice. Using Oracle Monitor (a utility which comes with DOA and
    | > reports all queries of DOA) is showing the execution twice; one for the
    | > function "IsData4Print" and another one for the RBuilder Preview needs.
    If
    | I
    | > remark "IsData4Print" and go directly to the "MyReport.Print" the very
    | same
    | > utility (which I've tested in the past with success many-many times)
    runs
    | > only once for the RBuilder Preview needs.
    | >
    | > So I'm back where I've started, unless I've missed something or you've
    any
    | > other clue.
    | >
    | > I'm using D7 Ent, RBuilder v7.02 Ent, Oracle 8i,9i through DOA.
    | >
    | > Looking forward for your reply
    | >
    | >
    | > --
    | > Best Regards
    | >
    | > G.MYTSKIDIS
    | > MYTSKIDIS_G@GI-NET.GR
    | >
    | >
    | >
  • edited April 2003
    Send me an example that shows the problem. Use the DBDemos database for the
    example which shows the error. Send it zipped to
    support@digital-metaphors.com


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited April 2003
    Hello Jim

    I've sended you (at support@digital-metaphors.com) a demo project which
    shows the problem.
    Let me tell you what I've found out so far (perhaps might help you). When my
    report is hard-coded (double-click on the report component, create the
    report in design-time) the code you've sended me works just fine !!. When
    someone loads a report at run-time either by a database or a '.Rtm' file
    then the code simply just won't work !!. Seems that in that case, after the
    IsData4Print which opens the dataset, the Report.Print can't see that the
    dataset is already opened, tries to re-open it and finally crashes since
    we've instructed not to open the datasource through the command
    OpenDataSource:=False in the previous checking stage. All my reports are
    created at run-time and are re-loaded from my RDBMS (Oracle-DOA), so for the
    time-being I can't use that logic.


    --
    Best Regards

    G.MYTSKIDIS
    MYTSKIDIS_G@GI-NET.GR


    "Jim Bennett (Digital Metaphors)" wrote in
    message news:3e8b0ca9$1@dm500....
    | Send me an example that shows the problem. Use the DBDemos database for
    the
    | example which shows the error. Send it zipped to
    | support@digital-metaphors.com
    |
    |
    | Cheers,
    |
    | Jim Bennett
    | Digital Metaphors
    |
    |
    | "Mytskidis Georgios" wrote in message
    | news:3e8a87fa@dm500....
    | > Still the same behaviour. I've copied the code snipset you've sended and
    | the
    | > result was the following error (in the case that HaveData returns True)
    :
    | >
    | > " Cannot generate report.
    | > Could not open Dataset.: plShiftResults "
    | >
    | > where plShiftResults is the name of my report's main datapipeline.
    | >
    | > If I remark the
    | > "TppDBPipeline(ppReport1.DataPipeline).OpenDatasource:=False;" the the
    | query
    | > is being executed twice.
    | >
    | >
    | >
    | > "Jim Bennett (Digital Metaphors)" wrote
    in
    | > message news:3e89a482$1@dm500....
    | > | Try this. You need to set OpenDatasource to false so that the pipeline

    | > | doesn't reopen the dataset:
    | > |
    | > | http://www.digital-metaphors.com/tips/CheckForDataBeforePrinting.zip
    | > |
    | > | uses
    | > | ppDBPipe,
    | > | ppTypes,
    | > | DBTables;
    | > |
    | > | procedure TForm1.Button1Click(Sender: TObject);
    | > | begin
    | > |
    | > | if HaveData then
    | > | ppReport1.Print
    | > | else
    | > | ShowMessage('No Data');
    | > |
    | > | end;
    | > |
    | > | function TForm1.HaveData: Boolean;
    | > | begin
    | > |
    | > | try
    | > |
    | > | {test}
    | > |
    | > |
    | TQuery(TppDBPipeline(ppReport1.DataPipeline).DataSource.DataSet).AfterOpen
    | > | := AfterOpenEvent;
    | > |
    | > | TdaQueryDataView(ppReport1.DataPipeline.DataView).Active := True;
    | > |
    | > | ppReport1.DataPipeline.Open;
    | > |
    | > | TppDBPipeline(ppReport1.DataPipeline).OpenDatasource := False;
    | > |
    | > | {has no data?}
    | > | if (ppReport1.DataPipeline.BOF and ppReport1.DataPipeline.EOF)
    then
    | > | Result := False
    | > | else
    | > | Result := True;
    | > |
    | > | except
    | > | Result:=False;
    | > | end;
    | > |
    | > | end;
    | > |
    | > | procedure TForm1.AfterOpenEvent(DataSet: TDataSet);
    | > | begin
    | > | ShowMessage('Dataset ' + Dataset.Name + ' Opened');
    | > | end;
    | > |
    | > |
    | > |
    | > | Cheers,
    | > |
    | > | Jim Bennett
    | > | Digital Metaphors
    | > |
    | > |
    | > | "Mytskidis Georgios" wrote in message
    | > | news:3e8805e0@dm500....
    | > | > Hello Jim
    | > | >
    | > | > Unfortunatelly it doesn't work. To be more acurate I've implemented
    | then
    | > | > following procedures :
    | > | >
    | > | > 1). Created a function in order to know if data exist.
    | > | > Function IsData4Print : Boolean;
    | > | > Begin
    | > | > Try
    | > | >
    | > | > TdaQueryDataView(MyReport.DataPipeline.DataView).Active:=True;
    | > | > MyReport.DataPipeline.Open;
    | > | > Result:=(Not (ppdaNoRecords In
    | > | > MyReport.DataPipeline.State));
    | > | > Except Result:=False; End;
    | > | > End;
    | > | >
    | > | > > There is a pipeline property called OpenDatasource. Setting this
    to
    | > | false
    | > | > > means that the pipeline will never attempt to open the dataset
    | > | >
    | > | > 2). In my main print procedure just before the MyReport.Print I've
    | > placed
    | > | > the code
    | > | > ....................................
    | > | > ....................................
    | > | > Case IsData4Print of
    | > | > True :Try
    | > | > TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;
    | > | > Finally MyReport.Print;
    | > | > Else ShowMessage('Sorry... No Data !!');
    | > | > End;
    | > | > ....................................
    | > | > ....................................
    | > | > The IsData4Print works fine. But if it returns True (Data Exist)
    then
    | > the
    | > | > report crashes claiming that it can't do the Preview since the main
    | > | > datapipeline isn't opened.
    | > | >
    | > | > Tried to remark the
    | > | > "TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;"
    | > | > ....................................
    | > | > ....................................
    | > | > Case IsData4Print of
    | > | > True :MyReport.Print;
    | > | > Else ShowMessage('Sorry... No Data !!');
    | > | > End;
    | > | > ....................................
    | > | > ....................................
    | > | >
    | > | > > Even if it
    | > | > > is true, the pipeline is smart enough to know that the dataset is
    | > active
    | > | > in
    | > | > > this case and will not try to reopen it when the report goes to
    | print.
    | > | >
    | > | > Now everything works fine except that the query against Oracle is
    been
    | > | > executed twice. Using Oracle Monitor (a utility which comes with DOA
    | and
    | > | > reports all queries of DOA) is showing the execution twice; one for
    | the
    | > | > function "IsData4Print" and another one for the RBuilder Preview
    | needs.
    | > If
    | > | I
    | > | > remark "IsData4Print" and go directly to the "MyReport.Print" the
    very
    | > | same
    | > | > utility (which I've tested in the past with success many-many times)
    | > runs
    | > | > only once for the RBuilder Preview needs.
    | > | >
    | > | > So I'm back where I've started, unless I've missed something or
    you've
    | > any
    | > | > other clue.
    | > | >
    | > | > I'm using D7 Ent, RBuilder v7.02 Ent, Oracle 8i,9i through DOA.
    | > | >
    | > | > Looking forward for your reply
    | > | >
    | > | >
    | > | > --
    | > | > Best Regards
    | > | >
    | > | > G.MYTSKIDIS
    | > | > MYTSKIDIS_G@GI-NET.GR
    | > | >
    | > | >
    | > | >
  • edited April 2003
    I was unable to run your demo as is. I modified it to use our Oracle
    database and created a template as well. I copied your code and changed the
    class names to TOracleDataset and TdaDOAQueryDataview for the typecasts in
    your IsData4Print routine. It worked correctly in tests here. Are you using
    the latest daDOA.pas included in the RB 7.02 installation?


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited April 2003
    Hello Jim

    I'm very sure that I'm using the "daDOA.Pas" included in the RB 7.02
    Installation. In order for us to be in the "safe side", I'm sending you the
    current "daDOA.Pas" which I'm using (sended to
    support@digital-metaphors.com). Please verify that's the correct version and
    if not, e-mail to me the correct one.
    I really hope that this should be the case for I've not any other clue about
    it.

    Looking forward for your reply


    --
    Best Regards

    G.MYTSKIDIS
    MYTSKIDIS_G@GI-NET.GR



    "Jim Bennett (Digital Metaphors)" wrote in
    message news:3e8c8edc$1@dm500....
    | I was unable to run your demo as is. I modified it to use our Oracle
    | database and created a template as well. I copied your code and changed
    the
    | class names to TOracleDataset and TdaDOAQueryDataview for the typecasts in
    | your IsData4Print routine. It worked correctly in tests here. Are you
    using
    | the latest daDOA.pas included in the RB 7.02 installation?
    |
    |
    | Cheers,
    |
    | Jim Bennett
    | Digital Metaphors
    |
    |
    | "Mytskidis Georgios" wrote in message
    | news:3e8bf200@dm500....
    | > Hello Jim
    | >
    | > I've sended you (at support@digital-metaphors.com) a demo project which
    | > shows the problem.
    | > Let me tell you what I've found out so far (perhaps might help you).
    When
    | my
    | > report is hard-coded (double-click on the report component, create the
    | > report in design-time) the code you've sended me works just fine !!.
    When
    | > someone loads a report at run-time either by a database or a '.Rtm' file
    | > then the code simply just won't work !!. Seems that in that case, after
    | the
    | > IsData4Print which opens the dataset, the Report.Print can't see that
    the
    | > dataset is already opened, tries to re-open it and finally crashes since
    | > we've instructed not to open the datasource through the command
    | > OpenDataSource:=False in the previous checking stage. All my reports are
    | > created at run-time and are re-loaded from my RDBMS (Oracle-DOA), so for
    | the
    | > time-being I can't use that logic.
    | >
    | >
    | > --
    | > Best Regards
    | >
    | > G.MYTSKIDIS
    | > MYTSKIDIS_G@GI-NET.GR
    | >
    | >
    | > "Jim Bennett (Digital Metaphors)" wrote
    in
    | > message news:3e8b0ca9$1@dm500....
    | > | Send me an example that shows the problem. Use the DBDemos database
    for
    | > the
    | > | example which shows the error. Send it zipped to
    | > | support@digital-metaphors.com
    | > |
    | > |
    | > | Cheers,
    | > |
    | > | Jim Bennett
    | > | Digital Metaphors
    | > |
    | > |
    | > | "Mytskidis Georgios" wrote in message
    | > | news:3e8a87fa@dm500....
    | > | > Still the same behaviour. I've copied the code snipset you've sended
    | and
    | > | the
    | > | > result was the following error (in the case that HaveData returns
    | True)
    | > :
    | > | >
    | > | > " Cannot generate report.
    | > | > Could not open Dataset.: plShiftResults "
    | > | >
    | > | > where plShiftResults is the name of my report's main datapipeline.
    | > | >
    | > | > If I remark the
    | > | > "TppDBPipeline(ppReport1.DataPipeline).OpenDatasource:=False;" the
    the
    | > | query
    | > | > is being executed twice.
    | > | >
    | > | >
    | > | >
    | > | > "Jim Bennett (Digital Metaphors)"
    | wrote
    | > in
    | > | > message news:3e89a482$1@dm500....
    | > | > | Try this. You need to set OpenDatasource to false so that the
    | pipeline
    | >
    | > | > | doesn't reopen the dataset:
    | > | > |
    | > | > |
    http://www.digital-metaphors.com/tips/CheckForDataBeforePrinting.zip
    | > | > |
    | > | > | uses
    | > | > | ppDBPipe,
    | > | > | ppTypes,
    | > | > | DBTables;
    | > | > |
    | > | > | procedure TForm1.Button1Click(Sender: TObject);
    | > | > | begin
    | > | > |
    | > | > | if HaveData then
    | > | > | ppReport1.Print
    | > | > | else
    | > | > | ShowMessage('No Data');
    | > | > |
    | > | > | end;
    | > | > |
    | > | > | function TForm1.HaveData: Boolean;
    | > | > | begin
    | > | > |
    | > | > | try
    | > | > |
    | > | > | {test}
    | > | > |
    | > | > |
    | > |
    | TQuery(TppDBPipeline(ppReport1.DataPipeline).DataSource.DataSet).AfterOpen
    | > | > | := AfterOpenEvent;
    | > | > |
    | > | > | TdaQueryDataView(ppReport1.DataPipeline.DataView).Active :=
    | True;
    | > | > |
    | > | > | ppReport1.DataPipeline.Open;
    | > | > |
    | > | > | TppDBPipeline(ppReport1.DataPipeline).OpenDatasource := False;
    | > | > |
    | > | > | {has no data?}
    | > | > | if (ppReport1.DataPipeline.BOF and ppReport1.DataPipeline.EOF)
    | > then
    | > | > | Result := False
    | > | > | else
    | > | > | Result := True;
    | > | > |
    | > | > | except
    | > | > | Result:=False;
    | > | > | end;
    | > | > |
    | > | > | end;
    | > | > |
    | > | > | procedure TForm1.AfterOpenEvent(DataSet: TDataSet);
    | > | > | begin
    | > | > | ShowMessage('Dataset ' + Dataset.Name + ' Opened');
    | > | > | end;
    | > | > |
    | > | > |
    | > | > |
    | > | > | Cheers,
    | > | > |
    | > | > | Jim Bennett
    | > | > | Digital Metaphors
    | > | > |
    | > | > |
    | > | > | "Mytskidis Georgios" wrote in message
    | > | > | news:3e8805e0@dm500....
    | > | > | > Hello Jim
    | > | > | >
    | > | > | > Unfortunatelly it doesn't work. To be more acurate I've
    | implemented
    | > | then
    | > | > | > following procedures :
    | > | > | >
    | > | > | > 1). Created a function in order to know if data exist.
    | > | > | > Function IsData4Print : Boolean;
    | > | > | > Begin
    | > | > | > Try
    | > | > | >
    | > | > | > TdaQueryDataView(MyReport.DataPipeline.DataView).Active:=True;
    | > | > | > MyReport.DataPipeline.Open;
    | > | > | > Result:=(Not (ppdaNoRecords In
    | > | > | > MyReport.DataPipeline.State));
    | > | > | > Except Result:=False; End;
    | > | > | > End;
    | > | > | >
    | > | > | > > There is a pipeline property called OpenDatasource. Setting
    this
    | > to
    | > | > | false
    | > | > | > > means that the pipeline will never attempt to open the dataset
    | > | > | >
    | > | > | > 2). In my main print procedure just before the MyReport.Print
    I've
    | > | > placed
    | > | > | > the code
    | > | > | > ....................................
    | > | > | > ....................................
    | > | > | > Case IsData4Print of
    | > | > | > True :Try
    | > | > | > TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;
    | > | > | > Finally MyReport.Print;
    | > | > | > Else ShowMessage('Sorry... No Data !!');
    | > | > | > End;
    | > | > | > ....................................
    | > | > | > ....................................
    | > | > | > The IsData4Print works fine. But if it returns True (Data Exist)
    | > then
    | > | > the
    | > | > | > report crashes claiming that it can't do the Preview since the
    | main
    | > | > | > datapipeline isn't opened.
    | > | > | >
    | > | > | > Tried to remark the
    | > | > | > "TppDBPipeline(MyReport.DataPipeline).OpenDataSource:=False;"
    | > | > | > ....................................
    | > | > | > ....................................
    | > | > | > Case IsData4Print of
    | > | > | > True :MyReport.Print;
    | > | > | > Else ShowMessage('Sorry... No Data !!');
    | > | > | > End;
    | > | > | > ....................................
    | > | > | > ....................................
    | > | > | >
    | > | > | > > Even if it
    | > | > | > > is true, the pipeline is smart enough to know that the dataset
    | is
    | > | > active
    | > | > | > in
    | > | > | > > this case and will not try to reopen it when the report goes
    to
    | > | print.
    | > | > | >
    | > | > | > Now everything works fine except that the query against Oracle
    is
    | > been
    | > | > | > executed twice. Using Oracle Monitor (a utility which comes with
    | DOA
    | > | and
    | > | > | > reports all queries of DOA) is showing the execution twice; one
    | for
    | > | the
    | > | > | > function "IsData4Print" and another one for the RBuilder Preview
    | > | needs.
    | > | > If
    | > | > | I
    | > | > | > remark "IsData4Print" and go directly to the "MyReport.Print"
    the
    | > very
    | > | > | same
    | > | > | > utility (which I've tested in the past with success many-many
    | times)
    | > | > runs
    | > | > | > only once for the RBuilder Preview needs.
    | > | > | >
    | > | > | > So I'm back where I've started, unless I've missed something or
    | > you've
    | > | > any
    | > | > | > other clue.
    | > | > | >
    | > | > | > I'm using D7 Ent, RBuilder v7.02 Ent, Oracle 8i,9i through DOA.
    | > | > | >
    | > | > | > Looking forward for your reply
    | > | > | >
    | > | > | >
    | > | > | > --
    | > | > | > Best Regards
    | > | > | >
    | > | > | > G.MYTSKIDIS
    | > | > | > MYTSKIDIS_G@GI-NET.GR
    | > | > | >
    | > | > | >
    | > | > | >
    | > | > | > "Jim Bennett (Digital Metaphors)"
This discussion has been closed.