By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,435 Members | 2,891 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,435 IT Pros & Developers. It's quick & easy.

Crystal in Oracle forms

P: 1
I am trying to imbed crystal in oracle. I got the following steps from the web.
when i try to run the created from , iget the error frm-41344.

Any suggestions.

Regards,
Zellipa


STEPS TO display the Crystal Report in Oracle Forms 6i:

**NOTE: This assumes that you already have Crystal Reports installed on your machine.

1. Create a new form.
2. Create a control block, name it 'CONTROL'.
3. Create a CONTENT canvas, name it 'REPCAN'.
4. Create an ActiveX control on the canvas, name it 'CrystalReport1'.
5. Create an Image item and name it 'REP'. (Make sure that image item overlaps
the ActiveX control completely; this image item is only used to get the item
handle. Enlarge this object such a way that it will fit the window; the
report gets displayed in this item so the item size should be adeqately
large.
6. Right click on the ActiveX control item and select "Insert Object" from the
menu.
7. From the list select "Crystal Report Control".
8. Select the Program->Import OLE Library Interface Menu in the form.
9. Select Crystal.CrystalReport from the List. (This will list two methods
and one Event. The two methods are CrystalCtrl and IRowCursor, the event is
CrystalReprotEvent).
10. Select all three and click on the OK button to accept. (This will
create the PL/SQL wrapper program units).
11. In the "When-New-Form-Instance" trigger of the form, put the following
code.

DECLARE
charWinHandle VARCHAR2(50);
numWinHandle NUMBER;

BEGIN
Set_Application_Property(Cursor_Style,'BUSY');

charWinHandle := Get_Item_Property('Control.Rep',Window_Handle);
numWinHandle := To_Number(charWinHandle);

:Item('Control.CrystalReport1').OCX.Crystal.Crysta lReport.WindowParentHandle
:= numWinHandle;

:Item('Control.CrystalReport1').OCX.Crystal.Crysta lReport.WindowState := 2;

:Item('CONTROL.CRYSTALREPORT1').OCX.Crystal.Crysta lReport.Connect
:= 'DSN=;UID=' || Get_Application_Property(UserName) ||
';pwd=' || Get_Application_Property(password) || ';dsq=;';

Crystal_CrystalCtrl.ReportFileName( :Item('Control.CrystalReport1').interface,
'C:\Sample_Rep.Rpt' );

Set_Window_Property( Forms_Mdi_Window, Window_State,Maximize );
Set_Window_Property( 'MAIN', Window_State, Maximize );

:reptitle := 'Report Preview Window';

numWinHandle := Crystal_CrystalCtrl.PrintReport( :Item('Control.CrystalReport1').interface );
Set_Application_Property(Cursor_Style,'DEFAULT');

END;

**NOTE: Change the report name and path according to your required file name and path in
the "Crystal_CrystalCtrl.ReportFileName" method call. Also, the connection string shown
assumes that you will use the current USER and PASSWORD for the Form.

12. To make the above Form generic so that you can run any Crystal report from it, then create
a parameter for the report name and pass it to the Form using CALL_FORM from any other Form.
Then just replace the file name with the passed parameter.

13. Run the Form.
Feb 10 '07 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.