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

Notify Troubleshooting

edited October 2003 in General
RB 6.03

Hi I am trying to track down an error that I believe is related to the
Notify procedure in the ppComm unit.

I have noticed when I use a drill down report and I close the report. At
times I will get an access violation. It isn't consistent, and I was having
a hard time recreating the error. However I was finally successfull in
replicating it by opening the drill down report and clicking some drill
downs then closing the report. Doing this repeatedly eventually creates the
error.

When the Delphi IDE debugger when to the source line where the error occured
it was in the Notify procedure.

One think I tried to do to prevent this error is control the creation and
freeing of the TppReport component. However I think this made the error
more prevailant. I use the FreeAndNil method to clear the component. Is
there any other type of method I should use to clearing a report from
memory?

Bill

Comments

  • edited October 2003
    One additional note on this error. I am able to trap it however when I
    close my application I get another access violation. So something is trying
    to be cleared out of memory that doesn't exist.

    Bill


  • edited October 2003
    Other possible causes.
    I have created my own custom viewer. And when I click a button to size the
    display and then quickly leave close the preview of the report. I get the
    same access violation.

    So I am narrowing down the cause to the actual refresh of the report.

    Bill

  • edited October 2003
    Hi Bill,

    Are you able to recreate the issue without using your custom viewer? There
    are no known issues of this kind with the TppCommunicator. You might try
    downloading a trial edition of RB 7.03 and testing with that.

    --
    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited October 2003
    Still haven't found a solution.
    One thing that may narrow down the cause.
    I have found that when I get the access violation and I am looking where the
    IDE has stopped. I place my mouse cursor over the FNotifyList variable and
    I get and inaccessable message. I place my cursor over the aCommunicator
    variable and I see that the object the aCommunicator is referencing is a
    Variable component in my report that I have a RAP function to calculate it's
    value.

    stopped here>>> if (FNotifyList <> nil) then
    begin
    FNotifyList.Remove(aCommunicator);
    end;

    So the only thing I can think of is that the Variable is still trying to do
    its calculation while the report is being freed.

    Is there any way I can detect if the report is done doing any calculations
    before I free it?

    Bill


  • edited October 2003
    In trying to duplicate the error completely outside of my application. I
    created a report that has drill downs like in my applicaiton. However this
    brought up another question.

    I saved the template for the drill down report to a file, so I can create
    new report component at run time and load this template into that report.
    However when I do this all the drill downs are expanded and there is not
    region to click to collapse them.

    So I loaded the saved template into a new TppReport at design time and even
    in this report the drill down setup is lost.

    How do I save drill down settings to a file template?

    Bill


  • edited October 2003
    Hi,

    I.ve got this random exception on the TppCommunicator.Notify, also.
    It looks like the component is freeing a object that's already destroyed.

    I'm unable to figure out what is causing this error.
    Sometimes i get the error after the 1st print, and sometimes after, say, the
    3th print.

    I'm using Delphi 6 and RP6.03

    Hope that someone can point me in the right direction.

    Thanks in advance,
    Marcel
    --
    Vendit BV
    http://www.vendit.nl/ (Bedrijfs site)
    http://www.vmsii.nl/ (VMSII support site)


This discussion has been closed.