Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Zooming More than 100 %
Message
General information
Forum:
Visual FoxPro
Category:
Reports & Report designer
Miscellaneous
Thread ID:
00702107
Message ID:
00702263
Views:
14
Tutarie,

The Designer is not near done yet since I just started putting Report Design code into my Preview control over the weekend. I know the feeling about going blind designing with small fonts. That's why I rewrote a VFP Report Designer replacement about 2 years ago in pure VFP. However, due to VFP technical limits graphics wise reasons and performance issues, I didn't want to release it. My customer had wanted over 300 objects in an 8.5 x 11 page. So I bought a bigger monitor. It didn't help much though.

I started playing around with my output code again at Fox Essential because I wanted rotated text and a Zoom to more than 100% Preview and printer scaling too. So, after about 20 hours of pure VFP coding and figuring out there was no way to pick up paint messages easily without a lot of FLL coding. I decided to write an ActiveX control as a container for my Report output in Delphi. So the Report output is getting close to being done, but since I was getting requests for a Designer tool, I started modifying the control over the weekend to add support to make it a Design Tool too. But there is a lot of work to go yet on Design. Hopefully, by next week I can have it saving to FRX's from within the control. Eventually, I plan to read and write FRX's in pure Delphi code inside the control.

Just last night I started implementing REPORT EVENTS in the control that will allow for protected modifications of VFP Reports. For example there is an OnFieldExpression() and OnPrintWhenExpression() EVENT that fires when the user clicks on the Ellipses button in the REPORT EXPRESSION Dialog Box. This will allow a developer to then add code into that event of the control on a VFP Form and launch their own Custom Expression Builder. Doug Hennig and I had talked about this a couple of years ago and he emailed me yesterday to see if I could add that to the control so I did that last night. It works pretty well if hosted in VFP. You can call put the following code into the OnFieldExpression() EVENT

LPARAMETERS nIndex, cExpression
LOCAL cMyExpression
GETEXP "My Expression" TO cMyExpression
oReportObject.SetFieldExpression(cMyExpression)

Calling my REPORT OBJECT's SetFieldExpression() Method will then place your Expression back into the Textbox of my Report Designer's EXPRESSION TextBox to be saved as the Expression for that Report Object.

I have been trying to think of where else we might want REPORT EVENTS to fire when things happen so you can suppress other user Design Modifications of a Report. For example you could keep a user from Moving Objects on the Report Surface or you could allow movement of an object but NOT Allow for modification of the Report Expression. This would enable Protected or Controlled Custom User Modifications of your Reports.

I'm looking for any thoughts and ideas about REPORT EVENTS for the REPORT DESIGNER, so please let me know what you think. I will post the work I did last night for download now. It only has the example of using the REPORT EVENTS in the REPORT EXPRESSION Dialog box, but it will show you how it works with the VFP GETEXPR command. I do have to solve the issue of my Dialog Box popping up as a TOP LEVEL form rather than an MDI Child of VFP so it works better within VFP. I have started looking at the CREATEPARAMS method in the Delphi Code and have subclassed it so I can set the Windows Handle and Window Flags correctly so it pops up inside of VFP as an MDI Child window rather than a TOP LEVEL FORM.

Drop the Report Object control onto a VFP form and put some code into the SetFieldExpression Event to try it out.

Oh Yeah! The Designer is a FULL PAGE Design layout with ZOOM Capabilities. I still have to add a toggle to turn off and on the BAND CONTROLS so you can size the bands and see them, etc.

Thanks!
Previous
Reply
Map
View

Click here to load this message in the networking platform