7 Dec 2012

Functions

Sub procedure

Declares the name, arguments and code that form the body of a Sub procedure

Syntax

 Sub name [(arglist)] 
   [statements]
   [Exit Sub]
   [statements]
End Sub

Arguments

Public: Indicates that the Sub procedure is accessible to all other procedures in all scripts.
Default: Used only with the Public keyword in a Class block to indicate that the Sub procedure is the default method
for the class. An error occurs if morethan one Default procedure is specified in a class.
Private: Indicates that the Sub procedure is accessible only to other procedures in the script where it is declared.
name: 
Name of the Sub; follows standard variable naming conventions.
arglist: List of variables representing arguments that are passed to the Sub procedure when it is called. Commas 
separate multiple variables.
statements: Any group of statements to be executed within the body of the Sub procedure.

Example

Addition 5 , 4
Sub Addition( num1,num2)
Result=num1+num2
Msgbox  "The Sum of the numbers is    "  &  Result
End Sub

Function
Declares the name, arguments, and code that form the body of a Function procedure.

Syntax

Function name [(arglist)]
   [statements]
   [name = expression]
   [Exit Function] 
   [statements]
   [name = expression]
End Function

Arguments

Public: Indicates that the Function procedure is accessible to all other procedures in all scripts.
Default: Used only with the Public keyword in a Class block to indicate that the Function procedure is the default method
for the class. An error occurs ifmore than one Default procedure is specified in a class.
Private: Indicates that the Function procedure is accessible only to other procedures in the script where it is declared or if the  function is a member of aclass, and that the Function procedure is accessible only to other procedures in that class.
name: Name of the Function; follows standard variable naming conventions.
arglist: List of variables representing arguments that are passed to the Function procedure when it is called. Commas separate multiple variables.
statements: Any group of statements to be executed within the body of the Function procedure.
expression: Return value of the Function.

Example

Result=Addition(5,4)

Msgbox  "The sum of the number is " & Result 

Function Addition( num1,num2) 
Addition=num1+num2 
End Function  

Call  

Transfers control to a Sub or Function procedure.

Syntax

[Call] name [argumentlist]

Arguments

Call: (Optional) keyword, If specified, you must enclose argumentlist in parentheses.
name: (Required) Name of the procedure to call.
argument list: (Optional) Comma-delimited list of variables, arrays, or expressions to pass to the procedure. 

Example

'Call a Sub procedure
Call Addition(5 , 4)
Sub Addition( num1,num2)
Result=num1+num2
Msgbox  "the Sum of the numbers is    "  &  Result
End Sub


Vb Script Sub Procedures

There are two types of procedures

1. Function Procedure
2. Sub Procedure

Function Procedure

A Function procedure is a series of VBScript statements enclosed by the Function and End Function statements. Function Procedure can able to return the value.

Example:

Function demo_add(a,b)

    demo_add=a+b

End Function

oVal=demo_add(2,3)

msgbox oVal    'Returns 5

In this example demo_add function returns a value to oVal. In Function procedures we can use function name to assign a value.

Sub Procedure

A Sub procedure is a series of VBScript statements enclosed by the Sub and End Sub statements. Sub Procedure cannot return any value.

Example:

Sub demo_sub(a,b,c)

    c=a+b

End sub

demo_sub 2,3,x

msgbox x    'Returns 5

This example will do the same as what function procedure is doing above. But in sub Procedure we need to use one more parameter to get values from the sub procedure.

Types of arguments in procedures

1. ByVal
2. ByRef

ByVal:

Indicates that the argument is passed by value.

ByRef :
Indicates that the argument is passed by reference.

By default all arguments are 'ByRef'.

Syntax

Function demo_add(a,b)

    demo_add=a+b

End Function

Here a,b are the arguments. By default these are 'ByRef'.

In simple words ByRef Means the value which is assigned to the variable with in the function is permanent and we can use that value out side of that function also.

ByVal means the value which is assigned to the variable with in the function is temporary and we can use that value only with in that function.

Example:

Function demo_parameters(byref x,byval y)
    x=20
    y=50
    demo_parameters=x+y
End Function

a=10
b=20
msgbox demo_parameters(a,b)
msgbox a
msgbox b

In the above function x and y are the arguments, declared as byref and byval.
With in that function i assigned values to x and y.

Outside of the function i assigned values to two variables and passing those variables in to the function.
'a' is passing reference to x and b is passing value to y.

With in that function i am changing the value for x. This value is permanent for 'a'. Because 'a' is passed as 'ByRef'.

But the value of 'b' will not be changed because it is passed as 'ByVal'.

 Using the following script How can you return the multiple values from a function


Usually Function procedure will return only one value. But by using arrays concept we can return multiple values from a function

Function fnGetOddNumbersInRange(fStartRange,fEndRange)

    'Declaring Dynamic array to store multiple values

Dim oddNumbers()

 'Initiating a counter to redim the dynamic array

cnt=0          

For iCounter=fStartRange to fEndRange

 'Applying the odd number logic : num/2 <>0 then its an odd number

    If iCounter mod 2<>0 Then  

        ReDim preserve oddNumbers(cnt)

  ' Storing Odd numbers in dynamic array

        oddNumbers(cnt)=iCounter    
        cnt=cnt+1

    End If

Next

 'Assigning array to the function

fnGetOddNumbersInRange=oddNumbers      

End Function

'How to work with this function?

 'Here Function will return array value

oVal=fnGetOddNumbersInRange(1,10)  

For i=0 to ubound(oVal)

   ' Displaying the values in array

    msgbox oVal(i)    

Next

Function Library & Associating Function library to a Test

Different Types of Library files
Different types of library files are ".qfl" files,".Vbs" files

Steps to follow to create Function Library:

1. Functions are created manually:
     File-->New-->Function library(Enter the functions)

2. Save the functions:
      File--> Save (File is saved as .qfl file)

3. Associating Function library to a Test:
     Test --> Settings --> Choose Resources tab --> Choose + button so select the ".qfl" file --> browse and select the ".qfl" file -->click OK.

How to use library files in QTP & how we can call these files in to script?

We can load the external Library files by using 2 ways:

1. Choose Test --> Settings --> Choose Resources tab --> Choose + button so select the library file -->  browse and select the 
     library file --> click OK.

2.  We can load the library files using Scripting:

Use execute file function to load library files:

Step1. Open a notepad and paste the below function

Example: 

'Code in External Library file(sample.vbs file).
function SumOfTwoNumbers(a,b)
Dim sum
sum=a+b
SumOfTwoNumbers=sum
End Function
Step2. Save the notepad as a .vbs file(sample.vbs) in path "D:\Sample.vbs"

Step3. Paste the below code in QTP and execute,You will find that the below code access function from the "sample.vbs" file

Example:

executefile "D:\Sample.vbs"
x=10
y=5
result=SumOfTwoNumbers(x,y)
msgbox result

No comments:

Post a Comment