Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Funky Preview Window
Message
 
À
22/11/2008 16:11:31
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire de rapports & Rapports
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Divers
Thread ID:
01362540
Message ID:
01363759
Vues:
17
>>>Cathy Pountney wrote:
>>>The parameters in the Render method use 960 dpi .. not FRUs.
>>
>>Thanks, yes, I know that. Typing fingers disconnected from brain -- the older I get, the more frequent that gets!
>>I'm going to comb through my positional-adjustment terms -- again -- to see if I neglected to convert one correctly.
>
>>>Doug Hennig wrote:
>>>In addition to the other suggestions, I've also seen compressed pages when an object is positioned or sized
>>>such that it's past the left or right edges of the page.
>
>===============
>
>I did find a couple of conversions to FRUs, instead of 960dpi -- which, of course, shoved report
>objects well beyond the page. Straightened all that out, and there's no more preview page distortion. But, the
>other problem I mentioned persists. Let me give a fuller description in hopes that something will ring a bell.
>
>My listener is for a straightforward columnar report that allows users to specify which columns to list. My test report has two report
>objects for column headings, two detail report objects for two corresponding columns of data, and nothing else to render
>on the report form. The listener's BeforeReport loads an array prop on the listener with the user-specified
>field names and their headings, their calculated column widths, and their calculated (accumulated) left positions.
>All calculations are (now) fine, and the computed positions and widths are well within the page.
>The listener has nAdjustLeft, nAdjustWidth, nAdjustTop and nAdjustHeight props. (All are initialized zero,
>and the latter two are not changed by this listener.)
>
>The listener's Render method has calls to BeforeRender, then the actual Render --
>ReportListener::Render(tnFRXRecno, This.nAdjustLeft + tnLeft,This.nAdjustTop + tnTop, ;
>This.nAdjustWidth + tnWidth, This.nAdjustHeight + tnHeight, tnObjectContinuationType, tcContentsToBeRendered, tiGDIPlusImage)
>and a NODEFAULT
>-- followed by a call to AfterRender.
>
>EvaluateContents looks up the field name or heading in the array (based on whether the ColumnPicker directive's
>expression is "Heading" or "Column"), and gets the value of the field from
>the data cursor's current record if it is a column-data report object. BeforeRender sets nAdjustLeft and nAdjustWidth so that the
>actual Render's computed param values are equal to the previously computed values in the array prop. AfterRender resets nAdjustLeft
>and nAdjustWidth to zero. I have only one record in the report-data cursor and no other listeners.
>
>When I specify only one column of output, the column 1-heading report object's EvaluateContents and
>BeforeRender methods execute correctly, the object is rendered properly on the report preview page, and the AfterRender
>fires. Then the same sequence runs correctly for the corresponding column 1-data report object. The column 2 report
>objects (properly) do not appear. Ah, joy!
>
>However, when I specify TWO columns, the EvaluateContents for the first column's heading and data-item report
>objects fire as expected, but the BeforeRender does not fire for either object! The EvaluateContents and BeforeRender methods
>fire for the second column's heading and data-item report objects as expected. All four objects render the proper values on the
>page (so column 1 heading and column-data report objects are obviously firing a Render from somewhere -- presumably the
>listener's parent class), but none of the four report objects is rendered in the proper Left position. All have been moved to the right to varying degrees -- as if the nAdjustLeft prop was not being reset properly (but, of course, that wackiness may well be entirely explained by the apparent
>failure of the proper Render method to fire for the column 1 report objects).
>
>Two questions: (1) When repositioning report field objects on the fly, Is there something more I should be doing,
>other than setting the Left adjustment in the BeforeRender and re-zeroing it in the AfterRender? (2) Do the above symptoms
>suggest anything obvious (or less obvious) to you that I should check out?
>
>(P.S. I have not yet tried substituting a custom DrawString render....)
>
>TIA,
>-mark


BeforeRender and AfterRender are not native methods of a reportlistener so that makes me ask ... where are you calling these methods? Maybe the problem is with the code that is meant to call these methods.
Cathy Pountney, Microsoft Visual FoxPro MVP
Memorial Business Systems, Inc. (www.mbs-intl.com)

My Website: (www.frontier2000.com)
My Blog: (www.cathypountney.blogspot.com)
My Book: The Visual FoxPro Report Writer - Pushing it to the Limit and Beyond
Free MSDN Article: What's New in the VFP 9.0 Report Writer
Free MSDN Article: The VFP 9.0 Report Writer In Action
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform