Trap datasource scrolling in design time
Hi again,
I've created a component that is linked to a datapipeline. The component
draws lots of DB related fields. I can get the text value of the field
correctly when printing or previewing.
The problem I have is that when the datasource scrolls in the preview my
component doesn't repaint itself. I'v looked into ppPrnabl and ppCtrls to
see how a standard ppDBText does this but to no avail.
I've override the IsDataAware function and set the return value to True to
no success.
thanks
Daniel
I've created a component that is linked to a datapipeline. The component
draws lots of DB related fields. I can get the text value of the field
correctly when printing or previewing.
The problem I have is that when the datasource scrolls in the preview my
component doesn't repaint itself. I'v looked into ppPrnabl and ppCtrls to
see how a standard ppDBText does this but to no avail.
I've override the IsDataAware function and set the return value to True to
no success.
thanks
Daniel
This discussion has been closed.
Comments
from the pipe.
What is your class descending from?
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
DrawCommands. It's these draw commands that needs to be repainted. Invalidate
the "parent" (the grid) when the data scrolls.
Like I've said, when printing it's ok but in preview the grid isn't invalidated.
I have to resize it or make some modifications to make it repaint.
Daniel
draw command, or a new draw command? Does the draw command change the data
that should print on the same page?
If you have a page in the preview and you want to redraw it, then call:
TppViewer(ppReport1.PreviewForm.Viewer).ScreenDevice.RenderPage;
TppViewer(ppReport1.PreviewForm.Viewer).RefreshPage;
Otherwise, you'll have to rerequest the page from the engine so that it
recreates the darw commands and a new page object to be drawn onteh screen
device. I posted this a few days ago in the other newsgroup:
"You'll need to have the report engine drop that page from its cache, then
tell the screen device to rerequest the page. The drill down subreport
behavior does this. There is a method on the report to reset from a given
page number. This clears all pages from that page forward and they are
regenerated. You can ask the Viewer to go to a page. However,
Viewer.GoToPage has a check to keep it from going to the same page, so that
doesn't work. You have to make a page request on the screne device. Here is
a simple example. Go to page two and click the blue label. Then check out
the OnDrawCommandClick event handler for the label."
http://www.digital-metaphors.com/tips/DrawCommandClickReRequestPage.zip
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com