PWCT 1.9 Art Documentation ( http://doublesvsoop.sourceforge.net )

2006-2013, Mahmoud Fayed ( msfclipper@users.sourceforge.net )

_____________________________________________________________________________________

Table of contents

1 - Introduction

2 - Implementation steps

3 - Final Steps Tree

1 - Introduction

In this lesson we are going to learn how to create the template (Crystal Reports 10 - Print Preview)

2 - Implementation Steps

s1.JPG

Fig. (1) Goal Desginer - Steps Tree

Select the step (Set Class Name & Window Name)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (PWCT - Code Generator)

                3 - Select the component (CG Replace String)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (CG Replace String)

                Note : Stop typing when you see the required component is selected

s2.JPG

Fig. (2) Component Browser Select the component (CG Replace String)

After selecting the component click Ok or press ENTER

s3.JPG

Fig. (3) Interaction page - Set the properties and enter the required data as in the image above

s4.JPG

Fig. (4) Goal Desginer - Steps Tree

Select the step (Set Class Name & Window Name)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (PWCT - Code Generator)

                3 - Select the component (CG Replace String)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (CG Replace String)

                Note : Stop typing when you see the required component is selected

s5.JPG

Fig. (5) Component Browser Select the component (CG Replace String)

After selecting the component click Ok or press ENTER

s6.JPG

Fig. (6) Interaction page - Set the properties and enter the required data as in the image above

s7.JPG

Fig. (7) Goal Desginer - Steps Tree

Select the step (Class)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Define Class)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Define Class)

                Note : Stop typing when you see the required component is selected

s8.JPG

Fig. (8) Component Browser Select the component (Define Class)

After selecting the component click Ok or press ENTER

s9.JPG

Fig. (9) Interaction page - Set the properties and enter the required data as in the image above

s10.JPG

Fig. (10) Goal Desginer - Steps Tree

Select the step (Declare Class Data)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Data)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Data)

                Note : Stop typing when you see the required component is selected

s11.JPG

Fig. (11) Component Browser Select the component (Declare Class Data)

After selecting the component click Ok or press ENTER

s12.JPG

Fig. (12) Interaction page - Set the properties and enter the required data as in the image above

s13.JPG

Fig. (13) Goal Desginer - Steps Tree

Select the step (Declare Class Data)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Data)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Data)

                Note : Stop typing when you see the required component is selected

s14.JPG

Fig. (14) Component Browser Select the component (Declare Class Data)

After selecting the component click Ok or press ENTER

s15.JPG

Fig. (15) Interaction page - Set the properties and enter the required data as in the image above

s16.JPG

Fig. (16) Goal Desginer - Steps Tree

Select the step (Declare Class Data)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Data)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Data)

                Note : Stop typing when you see the required component is selected

s17.JPG

Fig. (17) Component Browser Select the component (Declare Class Data)

After selecting the component click Ok or press ENTER

s18.JPG

Fig. (18) Interaction page - Set the properties and enter the required data as in the image above

s19.JPG

Fig. (19) Goal Desginer - Steps Tree

Select the step (Declare Class Data)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Data)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Data)

                Note : Stop typing when you see the required component is selected

s20.JPG

Fig. (20) Component Browser Select the component (Declare Class Data)

After selecting the component click Ok or press ENTER

s21.JPG

Fig. (21) Interaction page - Set the properties and enter the required data as in the image above

s22.JPG

Fig. (22) Goal Desginer - Steps Tree

Select the step (Declare Class Methods)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Method)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Method)

                Note : Stop typing when you see the required component is selected

s23.JPG

Fig. (23) Component Browser Select the component (Declare Class Method)

After selecting the component click Ok or press ENTER

s24.JPG

Fig. (24) Interaction page - Set the properties and enter the required data as in the image above

s25.JPG

Fig. (25) Goal Desginer - Steps Tree

Select the step (Declare Class Methods)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Method)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Method)

                Note : Stop typing when you see the required component is selected

s26.JPG

Fig. (26) Component Browser Select the component (Declare Class Method)

After selecting the component click Ok or press ENTER

s27.JPG

Fig. (27) Interaction page - Set the properties and enter the required data as in the image above

s28.JPG

Fig. (28) Goal Desginer - Steps Tree

Select the step (Declare Class Methods)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Declare Class Method)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Declare Class Method)

                Note : Stop typing when you see the required component is selected

s29.JPG

Fig. (29) Component Browser Select the component (Declare Class Method)

After selecting the component click Ok or press ENTER

s30.JPG

Fig. (30) Interaction page - Set the properties and enter the required data as in the image above

s31.JPG

Fig. (31) Goal Desginer - Steps Tree

Select the step (Class Methods)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Define Class Method)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Define Class Method)

                Note : Stop typing when you see the required component is selected

s32.JPG

Fig. (32) Component Browser Select the component (Define Class Method)

After selecting the component click Ok or press ENTER

s33.JPG

Fig. (33) Interaction page - Set the properties and enter the required data as in the image above

s34.JPG

Fig. (34) Goal Desginer - Steps Tree

Select the step (Start Here)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Windows)

                3 - Select the component (Define New Window)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Define New Window)

                Note : Stop typing when you see the required component is selected

s35.JPG

Fig. (35) Component Browser Select the component (Define New Window)

After selecting the component click Ok or press ENTER

s36.JPG

Fig. (36) Interaction page - Set the properties and enter the required data as in the image above

s37.JPG

Fig. (37) Form Designer

s38.JPG

Fig. (38) Goal Desginer - Steps Tree

Select the step (Window Controls)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Controls)

                3 - Select the component (Button)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Button)

                Note : Stop typing when you see the required component is selected

s39.JPG

Fig. (39) Component Browser Select the component (Button)

After selecting the component click Ok or press ENTER

s40.JPG

Fig. (40) Interaction page - Set the properties and enter the required data as in the image above

s41.JPG

Fig. (41) Form Designer

s42.JPG

Fig. (42) Goal Desginer - Steps Tree

Select the step (Button Events)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Events)

                3 - Select the component (Button Events)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Button Events)

                Note : Stop typing when you see the required component is selected

s43.JPG

Fig. (43) Component Browser Select the component (Button Events)

After selecting the component click Ok or press ENTER

s44.JPG

Fig. (44) Interaction page - Set the properties and enter the required data as in the image above

s45.JPG

Fig. (45) Goal Desginer - Steps Tree

Select the step (Window Controls)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (ActiveX)

                3 - Select the component (Define ActiveX control)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Define ActiveX control)

                Note : Stop typing when you see the required component is selected

s46.JPG

Fig. (46) Component Browser Select the component (Define ActiveX control)

After selecting the component click Ok or press ENTER

s47.JPG

Fig. (47) Interaction page - Set the properties and enter the required data as in the image above

s48.JPG

Fig. (48) Form Designer

s49.JPG

Fig. (49) Goal Desginer - Steps Tree

Select the step (Window Controls)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Controls)

                3 - Select the component (Button)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Button)

                Note : Stop typing when you see the required component is selected

s50.JPG

Fig. (50) Component Browser Select the component (Button)

After selecting the component click Ok or press ENTER

s51.JPG

Fig. (51) Interaction page - Set the properties and enter the required data as in the image above

s52.JPG

Fig. (52) Form Designer

s53.JPG

Fig. (53) Goal Desginer - Steps Tree

Select the step (Button Events)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Events)

                3 - Select the component (Button Events)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Button Events)

                Note : Stop typing when you see the required component is selected

s54.JPG

Fig. (54) Component Browser Select the component (Button Events)

After selecting the component click Ok or press ENTER

s55.JPG

Fig. (55) Interaction page - Set the properties and enter the required data as in the image above

s56.JPG

Fig. (56) Goal Desginer - Steps Tree

Select the step (Define New Window ( MyWindowName ) , Title : "Print Report")

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Windows)

                3 - Select the component (Window Class)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Window Class)

                Note : Stop typing when you see the required component is selected

s57.JPG

Fig. (57) Component Browser Select the component (Window Class)

After selecting the component click Ok or press ENTER

s58.JPG

Fig. (58) Interaction page - Set the properties and enter the required data as in the image above

s59.JPG

Fig. (59) Interaction page - Set the properties and enter the required data as in the image above

s60.JPG

Fig. (60) Interaction page - Set the properties and enter the required data as in the image above

s61.JPG

Fig. (61) Form Designer

s62.JPG

Fig. (62) Goal Desginer - Steps Tree

Select the step (Class Methods)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Define Class Method)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Define Class Method)

                Note : Stop typing when you see the required component is selected

s63.JPG

Fig. (63) Component Browser Select the component (Define Class Method)

After selecting the component click Ok or press ENTER

s64.JPG

Fig. (64) Interaction page - Set the properties and enter the required data as in the image above

s65.JPG

Fig. (65) Goal Desginer - Steps Tree

Select the step (Start Here)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Windows)

                3 - Select the component (Window Class)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Window Class)

                Note : Stop typing when you see the required component is selected

s66.JPG

Fig. (66) Component Browser Select the component (Window Class)

After selecting the component click Ok or press ENTER

s67.JPG

Fig. (67) Interaction page - Set the properties and enter the required data as in the image above

s68.JPG

Fig. (68) Interaction page - Set the properties and enter the required data as in the image above

s69.JPG

Fig. (69) Interaction page - Set the properties and enter the required data as in the image above

s70.JPG

Fig. (70) Goal Desginer - Steps Tree

Select the step (Class Methods)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Object Oriented Programming (OOP))

                3 - Select the component (Define Class Method)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Define Class Method)

                Note : Stop typing when you see the required component is selected

s71.JPG

Fig. (71) Component Browser Select the component (Define Class Method)

After selecting the component click Ok or press ENTER

s72.JPG

Fig. (72) Interaction page - Set the properties and enter the required data as in the image above

s73.JPG

Fig. (73) Goal Desginer - Steps Tree

Select the step (Start Here)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Files / Folders)

                3 - Select the component (Get Startup folder)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (Get Startup folder)

                Note : Stop typing when you see the required component is selected

s74.JPG

Fig. (74) Component Browser Select the component (Get Startup folder)

After selecting the component click Ok or press ENTER

s75.JPG

Fig. (75) Goal Desginer - Steps Tree

Select the step (Start Here)

We will start now new interaction process to generate new steps to our steps tree.

The slow way (Using Mouse):

                1 - Click Interact to open the components browser

                2 - Select the domain (Crystal Reports 10)

                3 - Select the component (CR10 View Report File)

The fast way (Using Keyboard shortcuts):

                1 - Get the component using its name by typing (CR10 View Report File)

                Note : Stop typing when you see the required component is selected

s76.JPG

Fig. (76) Component Browser Select the component (CR10 View Report File)

After selecting the component click Ok or press ENTER

s77.JPG

Fig. (77) Interaction page - Set the properties and enter the required data as in the image above

s78.JPG

Fig. (78) Goal Desginer - Final Steps Tree

3 - Final Steps Tree

Set Class Name & Window Name

                PWCT-Code Generator: Replace String (MyClassName) with (windowprint)

                PWCT-Code Generator: Replace String (MyWindowName) with (&(self:cWindowName))

Class

                Define Class MyClassName

                                Declare Class Data

                                                Data cWindowName Init Value "PrintWindow"

                                                Data reportname Init Value "report1.rpt"

                                                Data databasename Init Value "data.mdb"

                                                Data oActiveX Init Value 0

                                Declare Class Methods

                                                Method showwindow

                                                Method closewindow

                                                Method showreport

                                End of Class

                                Class Methods

                                                Define Method showwindow Class MyClassName

                                                                Start Here

                                                                                Define New Window ( MyWindowName ) , Title : "Print Report"

                                                                                                Window Events

                                                                                                Window Properties

                                                                                                Window Controls

                                                                                                                Define New Button ( btnClose ) , Caption : "Close"

                                                                                                                                Button Events

                                                                                                                                                Event: ON CLICK : Action self:closewindow()

                                                                                                                                Button Properties

                                                                                                                Active Control ( self:oActiveX )

                                                                                                                Define New Button ( btn1 ) , Caption : "Show Report"

                                                                                                                                Button Events

                                                                                                                                                Event: ON CLICK : Action self:showreport()

                                                                                                                                Button Properties

                                                                                                End Of Window

                                                                                                MyWindowName.Center ( )

                                                                                                Activate window

                                                                End of Method (Return 0)

                                                Define Method closewindow Class MyClassName

                                                                Start Here

                                                                                MyWindowName.Release ( )

                                                                End of Method (Return 0)

                                                Define Method showreport Class MyClassName

                                                                Start Here

                                                                                StartUpFolder := Get StartUp Folder

                                                                                Crystal Reports 10, Object self:oActivex, View Report self:reportname , Database Location = startupfolder+"\"+self:databasename

                                                                End of Method (Return 0)