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
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