In this article, Dmitri Motevich explains QTP Descriptive Programming (DP) through Google Sets site:
(click image to enlarge it)The goal of the present QTP tutorial is to describe:
How to get number of controls (Links, Edits, Images, etc) with QTP DP.
Let's investigate Descriptive Programming on examples.
First of all, we should understand what Descriptive Programming means:
Answer: QTP DP is a run-time processing of objects which are not located in QTP Object Repository.
I've created new QTP script which starts with http://labs.google.com/sets page.
This QTP script is simple enough:
Desc("micclass").Value = "WebEdit"
Set Edits = Browser("Google Sets").Page("Google Sets").ChildObjects(Desc)
MsgBox "Number of Edits: " & Edits.Count
As you can see, it works correctly and returns correct number of Edits on a page.I'm going to explain this QTP script and answer the following question:
To specify that we want identify all Edits on browser's page I use "micclass" property:
Use Spy for that:

Open QTP object Spy and check recorded properties of object.
For example, these are properties of Edit:

As you can see, there is "Class Name" property and its value - "WebEdit". So, "WebEdit" is a value of Class Name of all Edits located on Web page.
Note: "Class Name" is a synonym of "micclass".
I gathered Class Names of Web objects in this table:
| # | Type of Web object | Class Name(micclass) |
| 1 | Web Browser | Browser |
| 2 | Page | Page |
| 3 | Edit box | WebEdit |
| 4 | Image | Image |
| 5 | Link | Link |
| 6 | Web Element | WebElement |
| 7 | Button | WebButton |
| 8 | Checkbox | WebCheckBox |
| 9 | Combobox (DropDownList) | WebList |
| 10 | Table | WebTable |
Since we created Description object for all edit boxes, we can use this description to get all specified objects ( = edit boxes).
The next step returns the collection of all child objects (i.e. edit boxes) contained within the page:
To get the number of found objects in a returned collection, we use Count property:
And the result is 5 found Edits on Google Sets page:

So, this is a mechanism of QuickTest Professional Descriptive Programming.
Also, we can use the same code to get number of others objects - Links, Images, Buttons, etc.
For that I modified QTP script:
Set Desc = Description.Create()
Desc("micclass").Value = MicClass
Set GetAllSpecificControls = Page.ChildObjects(Desc)
End Function
Function GetAllEdits(Page)
Set GetAllEdits = GetAllSpecificControls(Page, "WebEdit")
End Function
Function GetAllButtons(Page)
Set GetAllButtons = GetAllSpecificControls(Page, "WebButton")
End Function
Function GetAllLinks(Page)
Set GetAllLinks = GetAllSpecificControls(Page, "Link")
End Function
Function GetAllImages(Page)
Set GetAllImages = GetAllSpecificControls(Page, "Image")
End Function
Set oPage = Browser("Google Sets").Page("Google Sets")
MsgBox "Number of Edits: " & GetAllEdits(oPage).Count
MsgBox "Number of Buttons: " & GetAllButtons(oPage).Count
MsgBox "Number of Links: " & GetAllLinks(oPage).Count
MsgBox "Number of Images: " & GetAllImages(oPage).Count

You can compare the result with the initial web page (see first image in the present article) and verify that QTP Descriptive programming works correctly - it returns correct numbers of objects.
Summary:
- Dmitri has explained and shown the mechanism of QuickTest Professional Descriptive Programming (QTP DP).
- The present QTP tutorial explains how to get number of different objects - Edits, Links, Images, Buttons, etc.
I hope, that this article has helped you to understand QTP DP.
The future QTP tutorials will cover others questions on QTP Descriptive Programming.
SPONSORED LINKS

Thanks for detailed explanation
-Sachin Kaulgekar
Hi
Could you please help me out.
My input data is 300 characters.I am using MsAccess.As the field type text has a limitation of 255 charactes i used the field type"Memo".Now when i tried to retrieve the value in QTP,it says "Null".
Is there any way to convert data of type "MEMO" to type text??Pls help