<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3524148200558152803</id><updated>2020-02-29T05:41:55.688-05:00</updated><title type='text'>My Learnings</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-7901358961936749173</id><published>2018-07-24T06:38:00.000-04:00</published><updated>2018-07-24T06:38:06.469-04:00</updated><title type='text'>Selenium: db and excel data into maps</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;package learning;&lt;br /&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.sql.DriverManager;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.ResultSetMetaData;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import java.sql.Statement;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.HashMap;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.List;&lt;br /&gt;import java.util.Map;&lt;br /&gt;import java.util.Map.Entry;&lt;br /&gt;import java.util.Set;&lt;br /&gt;import java.util.TreeMap;&lt;br /&gt;&lt;br /&gt;import org.apache.poi.ss.usermodel.Row;&lt;br /&gt;import org.apache.poi.ss.usermodel.Sheet;&lt;br /&gt;import org.apache.poi.ss.usermodel.Workbook;&lt;br /&gt;import org.apache.poi.xssf.usermodel.XSSFWorkbook;&lt;br /&gt;&lt;br /&gt;import com.codoid.products.exception.FilloException;&lt;br /&gt;import com.codoid.products.fillo.Connection;&lt;br /&gt;import com.codoid.products.fillo.Fillo;&lt;br /&gt;import com.codoid.products.fillo.Recordset;&lt;br /&gt;&lt;br /&gt;public class uploadFileinMap {&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;@SuppressWarnings(&quot;resource&quot;)&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public static void main(String[] args) throws IOException, FilloException, ClassNotFoundException, SQLException {&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;excelINTO_TreeMap();&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;db_INTO_HashMap();&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public static void db_INTO_HashMap() throws FilloException, SQLException, ClassNotFoundException&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String sQuery=&quot;Select defectid from qedge.dms&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String dbUrl = &quot;jdbc:mysql://localhost:3306/qedge&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String username = &quot;root&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String password = &quot;sasa&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Class.forName(&quot;com.mysql.cj.jdbc.Driver&quot;);&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;java.sql.Connection con = DriverManager.getConnection(dbUrl, username, password);&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Statement stmt = con.createStatement();&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;ResultSet rs = stmt.executeQuery(sQuery);&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;List&lt;map object=&quot;&quot; tring=&quot;&quot;&gt;&amp;gt; resultlist = new ArrayList&lt;map object=&quot;&quot; tring=&quot;&quot;&gt;&amp;gt;();&lt;/map&gt;&lt;/map&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Map&lt;string bject=&quot;&quot;&gt;row=null;&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ResultSetMetaData meta = rs.getMetaData();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int ColumnCount=meta.getColumnCount();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (rs.next()) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;row= new HashMap&lt;string bject=&quot;&quot;&gt;();&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/string&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 1; i &amp;lt;= ColumnCount; i++)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; row.put(meta.getColumnName(i), rs.getObject(i));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; resultlist.add(row);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (Map&lt;string bject=&quot;&quot;&gt; map:resultlist){&lt;/string&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;for (String key : map.keySet())&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;System.out.println(key);&lt;br /&gt;//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;System.out.println(map.get(key).toString());&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;System.out.println(map.get(&quot;defectid&quot;).toString());&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public static void excelINTO_TreeMap() throws FilloException&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String filePath=&quot;D:\\Selenium\\TestDataUpload.xlsx&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String Sheetname =&quot;Sheet1&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;TreeMap&lt;string string=&quot;&quot; treemap=&quot;&quot; tring=&quot;&quot;&gt;&amp;gt; resultList = new TreeMap&lt;string string=&quot;&quot; treemap=&quot;&quot; tring=&quot;&quot;&gt;&amp;gt;();&lt;/string&gt;&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;TreeMap&lt;string string=&quot;&quot;&gt; resetset = new TreeMap&lt;string string=&quot;&quot;&gt;();&lt;/string&gt;&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;String sQuery=&quot;Select * from Sheet1&quot;;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;ArrayList&lt;string&gt; a;&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Fillo fileo=new Fillo();&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Connection con = fileo.getConnection(filePath);&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Recordset rs = con.executeQuery(sQuery);&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;while (rs.next())&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;TreeMap&lt;string string=&quot;&quot;&gt; innermap =new TreeMap&lt;string string=&quot;&quot;&gt;();&lt;/string&gt;&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;a=rs.getFieldNames();&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;for (int k=0;k&lt;a .size=&quot;&quot; href=&quot;https://www.blogger.com/null&quot; k=&quot;&quot; p=&quot;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;innermap.put(a.get(k).toString(),rs.getField(a.get(k).toString()));&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;resultList.put(rs.getField(a.get(0).toString()), innermap);&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;resetset.put(rs.getField(a.get(0).toString()), rs.getField(a.get(1).toString()));&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;}&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;}&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;for (Entry&lt;string string=&quot;&quot;&gt; entry:resetset.entrySet())&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;String value1=((TreeMap&lt;string string=&quot;&quot;&gt;)resultList.get(entry.getKey())).get(&quot;R1C1&quot;);&lt;/string&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;System.out.println(&quot;printing from loop 1 ----&quot; + value1);&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/7901358961936749173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/selenium-db-and-excel-data-into-maps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7901358961936749173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7901358961936749173'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/selenium-db-and-excel-data-into-maps.html' title='Selenium: db and excel data into maps'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-4066867795054781561</id><published>2018-07-23T04:31:00.002-04:00</published><updated>2018-07-23T04:31:23.033-04:00</updated><title type='text'>python: fetch mysql db data row wise </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;import mysql.connector&lt;br /&gt;from mysql.connector import Error, cursor&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp; &amp;nbsp; con=mysql.connector.connect(host=&#39;localhost&#39;,database=&#39;qedge&#39;,user=&#39;root&#39;,password=&#39;****&#39;)&lt;br /&gt;&amp;nbsp; &amp;nbsp; if con.is_connected():&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; squery=&#39;Select * from qedge.dms&#39;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cursor=con.cursor()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cursor.execute(squery)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rows=cursor.fetchall()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for row in rows:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(row)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;except Error as e:&lt;br /&gt;&amp;nbsp; &amp;nbsp; print(e)&lt;br /&gt;finally:&lt;br /&gt;&amp;nbsp; &amp;nbsp; cursor.close&lt;br /&gt;&amp;nbsp; &amp;nbsp; con.close()&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/4066867795054781561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/python-fetch-mysql-db-data-row-wise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/4066867795054781561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/4066867795054781561'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/python-fetch-mysql-db-data-row-wise.html' title='python: fetch mysql db data row wise '/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-1782172284609969455</id><published>2018-07-23T03:06:00.002-04:00</published><updated>2018-07-23T03:06:27.472-04:00</updated><title type='text'>Python: get entire workbook data cell by cell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;import openpyxl&lt;br /&gt;&lt;br /&gt;book=openpyxl.load_workbook(&quot;D:\\Automation\\QEDGE\\WorkingProject\\PythonLearning\\Resources\\excel.xlsx&quot;)&lt;br /&gt;sName=book.sheetnames&lt;br /&gt;for s in sName:&lt;br /&gt;&amp;nbsp; &amp;nbsp; sheet=book[s]&lt;br /&gt;&amp;nbsp; &amp;nbsp; #sheet=book.get_sheet_by_name(&quot;Sheet1&quot;)&lt;br /&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;cells=sheet[&#39;A1&#39;:&#39;B5&#39;]&lt;br /&gt;&amp;nbsp; &amp;nbsp; for row in sheet.__iter__():&lt;br /&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print(row)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for cell in row:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(cell.value)&lt;br /&gt;book.close()&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/1782172284609969455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/python-get-entire-workbook-data-cell-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/1782172284609969455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/1782172284609969455'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/python-get-entire-workbook-data-cell-by.html' title='Python: get entire workbook data cell by cell'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-3359331372996645407</id><published>2018-07-22T23:22:00.001-04:00</published><updated>2018-07-22T23:22:05.281-04:00</updated><title type='text'>PDF extraction using Python</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;import PyPDF2&lt;br /&gt;&lt;br /&gt;file=open(&#39;C:\\Users\\ajind3\\Downloads\\entity.pdf&#39;,&#39;rb&#39;)&amp;nbsp;&lt;br /&gt;fileRead=PyPDF2.PdfFileReader(file)&lt;br /&gt;dPage=fileRead.getPage(0)&lt;br /&gt;print(dPage.extractText())&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/3359331372996645407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/pdf-extraction-using-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3359331372996645407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3359331372996645407'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2018/07/pdf-extraction-using-python.html' title='PDF extraction using Python'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-8427408362876355280</id><published>2015-12-14T04:04:00.002-05:00</published><updated>2015-12-14T04:04:50.354-05:00</updated><title type='text'>QC SQL Query for &quot;Requirement + Defects Matrix&quot;  for multiple projects</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Select QC_RequirementID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JIRA_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QC_BUG_IDs,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JIRA_BUG_IDs&lt;br /&gt;&amp;nbsp; from (Select distinct req.RQ_REQ_ID as QC_RequirementID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01 as JIRA_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME as Description,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED as STATUS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07 as Release_Date,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status as Bug_Status,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_BUG_ID)) as QC_BUG_IDs,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_USER_01)) as JIRA_BUG_IDs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Project1.Req req&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project1.LINK LNK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_ENTITY_ID = req.rq_req_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and LNK.LN_ENTITY_TYPE = &#39;REQ&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project1.BUG BUG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_BUG_ID = BUG.BG_BUG_ID -- and BUG.Bg_Status &amp;lt;&amp;gt; &#39;Closed&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by req.RQ_REQ_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select distinct req.RQ_REQ_ID as QC_RequirementID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01 as JIRA_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME as Description,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED as STATUS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07 as Release_Date,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status as Bug_Status,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_BUG_ID)) as QC_BUG_IDs,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_USER_01)) as JIRA_BUG_IDs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Project2.Req req&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project2.LINK LNK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_ENTITY_ID = req.rq_req_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and LNK.LN_ENTITY_TYPE = &#39;REQ&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project2.BUG BUG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_BUG_ID = BUG.BG_BUG_ID -- and BUG.Bg_Status &amp;lt;&amp;gt; &#39;Closed&#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by req.RQ_REQ_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select distinct req.RQ_REQ_ID as QC_RequirementID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01 as JIRA_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME as Description,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED as STATUS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07 as Release_Date,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status as Bug_Status,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_BUG_ID)) as QC_BUG_IDs,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_USER_01)) as JIRA_BUG_IDs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Project3.Req req&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project3.LINK LNK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_ENTITY_ID = req.rq_req_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and LNK.LN_ENTITY_TYPE = &#39;REQ&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project3.BUG BUG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_BUG_ID = BUG.BG_BUG_ID -- and BUG.Bg_Status &amp;lt;&amp;gt; &#39;Closed&#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by req.RQ_REQ_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select distinct req.RQ_REQ_ID as QC_RequirementID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01 as JIRA_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME as Description,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED as STATUS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07 as Release_Date,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status as Bug_Status,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_BUG_ID)) as QC_BUG_IDs,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_USER_01)) as JIRA_BUG_IDs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Project4.Req req&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project4.LINK LNK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_ENTITY_ID = req.rq_req_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and LNK.LN_ENTITY_TYPE = &#39;REQ&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project4.BUG BUG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_BUG_ID = BUG.BG_BUG_ID -- and BUG.Bg_Status &amp;lt;&amp;gt; &#39;Closed&#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by req.RQ_REQ_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNION ALL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select distinct req.RQ_REQ_ID as QC_RequirementID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01 as JIRA_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME as Description,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED as STATUS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07 as Release_Date,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status as Bug_Status,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_BUG_ID)) as QC_BUG_IDs,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to_char(wm_concat(BUG.BG_USER_01)) as JIRA_BUG_IDs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Project5.Req req&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project5.LINK LNK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_ENTITY_ID = req.rq_req_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and LNK.LN_ENTITY_TYPE = &#39;REQ&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT OUTER JOIN Project5.BUG BUG&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON LNK.LN_BUG_ID = BUG.BG_BUG_ID -- and BUG.Bg_Status &amp;lt;&amp;gt; &#39;Closed&#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by req.RQ_REQ_ID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_01,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_NAME,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_REQ_REVIEWED,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; req.RQ_USER_07,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUG.Bg_Status)&lt;br /&gt;where Release_Date = &#39;2015-12-11&#39;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--select distinct dt.OWNER from dba_tables dt where dt.OWNER like &#39;%XXXXXXX%&#39;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/8427408362876355280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2015/12/qc-sql-query-for-requirement-defects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8427408362876355280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8427408362876355280'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2015/12/qc-sql-query-for-requirement-defects.html' title='QC SQL Query for &quot;Requirement + Defects Matrix&quot;  for multiple projects'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-7690112259392408577</id><published>2014-08-26T07:27:00.001-04:00</published><updated>2014-08-26T07:27:13.533-04:00</updated><title type='text'>Read Complete Excel into Multi-Dimensional Dictionary object by ADO</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;Public Function Func_ReadXL_IN_Dictionary(xlFilePath,xlSheetName)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; On error resume next &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim ADO,rs,rowCounter,TCName&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set ADO=CreateObject(&quot;ADODB.Connection&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set objDict=CreateObject(&quot;Scripting.Dictionary&quot;)&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ADO.Open &quot;DRIVER={Microsoft Excel Driver (*.xls)};DBQ=&quot;&amp;amp; xlFilePath &amp;amp;&quot;;Readonly=True&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs=createobject(&quot;ADODB.recordset&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rs.Open &quot;Select * from [&quot; &amp;amp; xlSheetName &amp;amp; &quot;$]&quot;,ADO&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dim LoopCounter:LoopCounter=0&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DO&lt;br /&gt;&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rowCounter=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LoopCounter=LoopCounter+1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rowCounter=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; For each field in rs.Fields&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rowCounter=rowCounter+1&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If LoopCounter=1 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if rowCounter=1 Then&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TCName=&amp;nbsp;&amp;nbsp;&amp;nbsp; field.name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objDict.Add TCName,CreateObject(&quot;Scripting.Dictionary&quot;)&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objDict(TCName).add field.name,field.name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If isempty(field.name)=False Then&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objDict(TCName).add field.name,field.name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;End if &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if rowCounter=1 Then&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TCName=&amp;nbsp;&amp;nbsp;&amp;nbsp; field.value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objDict.Add TCName,CreateObject(&quot;Scripting.Dictionary&quot;)&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objDict(TCName).add field.name,field.value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Else&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If isempty(field.value)=False Then&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; objDict(TCName).add field.name,field.value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End if &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; If LoopCounter &amp;lt;&amp;gt; 1 Then&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rs.MoveNext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Loop until rs.EOF&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs=Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set ADO=Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; set Func_ReadXL_IN_Dictionary=objDict&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set objDict=Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; On error goto 0&lt;br /&gt;End Function&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/7690112259392408577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2014/08/read-complete-excel-into-multi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7690112259392408577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7690112259392408577'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2014/08/read-complete-excel-into-multi.html' title='Read Complete Excel into Multi-Dimensional Dictionary object by ADO'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-8710727054019777465</id><published>2014-05-08T01:54:00.002-04:00</published><updated>2014-05-08T01:59:12.835-04:00</updated><title type='text'>How to read complete Excel sheet into Multi-Dimensional dictionary objects</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;Following is the sheet that need to be fetched into the&amp;nbsp;Multi-Dimensional dictionary object&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&#39;Excel File&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-ackh5NAKZQo/U2sZjdXAT8I/AAAAAAAABn8/OredYE6aUd0/s1600/ExcelFile.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-ackh5NAKZQo/U2sZjdXAT8I/AAAAAAAABn8/OredYE6aUd0/s1600/ExcelFile.JPG&quot; height=&quot;87&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&#39;Function&lt;/b&gt;&lt;br /&gt;&#39;========================================================================&lt;br /&gt;&#39; Description: &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt; &amp;nbsp;This function will read the entire excel sheet and capture the sheet into multidimensioanl dictinoary object&lt;br /&gt;&#39;Dependencies: &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;First row of the sheet should be the unique identifier&lt;br /&gt;&#39; Input: &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt; xlFilePath: Excel File which is to be read by the script&lt;br /&gt;&#39; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;         &lt;/span&gt; xlSheetName: SheetName which is to be read by the script&lt;br /&gt;&#39;Output: &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;The objDict will be returned&lt;br /&gt;&#39;========================================================================&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Public Function Func_ReadXL_IN_Dictionary(xlFilePath,xlSheetName)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39; open and read excel file&lt;br /&gt;Dim objXL,objWrkBk,objWrkSht&lt;br /&gt;Dim objDict&lt;br /&gt;&lt;br /&gt;Set objXL=CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;Set objWrkBk=objXL.Workbooks.Open(xlFilePath)&lt;br /&gt;Set objWrkSht=objWrkBk.Worksheets(xlSheetName)&lt;br /&gt;&lt;br /&gt;Set objDict=CreateObject(&quot;Scripting.Dictionary&quot;)&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&#39; copy all excel data into the dictionary object&lt;br /&gt;&amp;nbsp;Dim rCount,cCount &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;                  &lt;/span&gt;&#39; get the row and column count of the worksheet&lt;br /&gt;rCount=objWrkSht.usedrange.rows.count&lt;br /&gt;cCount=objWrkSht.usedrange.columns.count&lt;br /&gt;&lt;br /&gt;&#39;Copy all Data cell by cell&lt;br /&gt;Dim row,col &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;&lt;br /&gt;For row =2 to rCount&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;objDict.Add objWrkSht.cells(row,1).value,CreateObject(&quot;Scripting.Dictionary&quot;)&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;For col=1 to cCount&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;objDict (objWrkSht.cells(row,1).value).add objWrkSht.cells(1,col).value, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;objWrkSht.cells(row,col).value&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Next&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;          &lt;/span&gt;&lt;br /&gt;Next &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;br /&gt;set Func_ReadXL_IN_Dictionary=objDict&lt;br /&gt;&#39;Release objects&lt;br /&gt;objWrkBk.Close&lt;br /&gt;objXL.Quit&lt;br /&gt;Set objWrkSht= Nothing&lt;br /&gt;Set objWrkBk=Nothing&lt;br /&gt;Set objXL=Nothing&lt;br /&gt;Set objDict=Nothing&lt;br /&gt;&lt;br /&gt;&lt;b&gt;End Function&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&#39; USE THIS FUNCTION AS FOLLOWS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dim xlFilePath:xlFilePath=&quot;D:\...\MasterFile.xlsx&quot; &lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;give excel=&quot;&quot; here=&quot;&quot; path=&quot;&quot;&gt;&lt;/give&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Dim xlSheetName:xlSheetName=&quot;MasterFile&quot;&lt;br /&gt;Dim objDict: objDict=objMasterFile&lt;br /&gt;&lt;br /&gt;Dim objMasterF&lt;br /&gt;set objMasterF = Func_ReadXL_IN_Dictionary (xlFilePath,xlSheetName)&lt;br /&gt;a=objMasterF.keys&lt;br /&gt;b=objMasterF.items&lt;br /&gt;&lt;br /&gt;For i=0 to objMasterF.count-1&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;print a(i) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;c=objMasterF(a(i)).items&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;For j=0 to objMasterF(a(i)).count-1&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;print c(j) &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Next&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&#39;OUTPUT&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-oy_kTfwPi6o/U2sbCnjC_rI/AAAAAAAABoI/lhd7IYuO80o/s1600/Output1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-oy_kTfwPi6o/U2sbCnjC_rI/AAAAAAAABoI/lhd7IYuO80o/s1600/Output1.jpg&quot; height=&quot;255&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/8710727054019777465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2014/05/how-to-read-complete-excel-sheet-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8710727054019777465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8710727054019777465'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2014/05/how-to-read-complete-excel-sheet-into.html' title='How to read complete Excel sheet into Multi-Dimensional dictionary objects'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ackh5NAKZQo/U2sZjdXAT8I/AAAAAAAABn8/OredYE6aUd0/s72-c/ExcelFile.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-7519862897245449812</id><published>2013-07-20T11:28:00.000-04:00</published><updated>2013-07-20T23:47:21.057-04:00</updated><title type='text'>Collection</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;According to MSDN a &lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Collection object is an ordered set of items  that can be referred to as a unit. The &lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Collection object provides a convenient way  to refer to a related group of items as a single object. The items, or members,  in a collection need only be related by the fact that they exist in the  collection. Members of a collection don&#39;t have to share the same data type.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Once a collection is created, members can be added using the  &lt;code&gt;Add &lt;/code&gt;method and removed using the &lt;code&gt;Remove &lt;/code&gt;method.  Specific members can be returned from the collection using the &lt;code&gt;Item  &lt;/code&gt;method, while the entire collection can be iterated using the &lt;code&gt;For  Each...Next &lt;/code&gt;statement.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;It means that a collection is a COM object that has 3  properties and 2 methods:&lt;span style=&quot;color: #274e13;&quot;&gt; &lt;code&gt;Add&lt;/code&gt;, &lt;code&gt;Remove&lt;/code&gt;&lt;/span&gt;, &lt;span style=&quot;color: #ea9999;&quot;&gt;&lt;b&gt;&lt;code&gt;Count&lt;/code&gt;, &lt;code&gt;Item &lt;/code&gt;and &lt;code&gt;_NewEnum&lt;/code&gt;&lt;/b&gt;&lt;/span&gt;, though in  technical literature you may find that only &lt;code&gt;Count &lt;/code&gt;and  &lt;code&gt;_NewEnum &lt;/code&gt;are necessary for the object to be called the  collection.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;in QTP:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Collections methods (add, remove) don&#39;t work&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;_NewEnum i have not seen any practicale application yet. but when we do for each it used internally.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&amp;nbsp;item:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Following two statements are equal as item is the default property:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Set desc=Description.Create()&lt;br /&gt;desc(&quot;micclass&quot;).value=&quot;Link&quot;&lt;br /&gt;desc(&quot;html tag&quot;).value=&quot;A&quot;&lt;br /&gt;&lt;br /&gt;Set cLiks=Browser(&quot;Gmail: Email from Google&quot;).Page(&quot;Gmail: Email from Google&quot;).ChildObjects(desc)&lt;br /&gt;&lt;br /&gt;For i=0 to&amp;nbsp; cLiks.count&lt;br /&gt;&lt;br /&gt;print cLiks(i).getroproperty(&quot;text&quot;)&amp;nbsp; &#39;- Same as below &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;print cLiks.item(i).getroproperty(&quot;text&quot;) &#39;- same as above &lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/7519862897245449812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2013/07/collection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7519862897245449812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7519862897245449812'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2013/07/collection.html' title='Collection'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-2592140739839296861</id><published>2012-11-16T05:32:00.001-05:00</published><updated>2012-11-16T05:33:07.893-05:00</updated><title type='text'>Selenium + Excel</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;import java.util.List;&lt;br /&gt;import org.openqa.selenium.By;&lt;br /&gt;import org.openqa.selenium.WebDriver;&lt;br /&gt;import org.openqa.selenium.WebElement;&lt;br /&gt;import org.openqa.selenium.firefox.FirefoxDriver;&lt;br /&gt;import org.openqa.selenium.support.ui.Select;&lt;br /&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.Date;&lt;br /&gt;import jxl.*; &lt;br /&gt;import jxl.read.biff.BiffException;&lt;br /&gt;&lt;br /&gt;import jxl.write.*;&lt;br /&gt;import jxl.write.biff.RowsExceededException;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Medical {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param args&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @throws InterruptedException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @throws IOException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @throws BiffException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @throws WriteException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @throws RowsExceededException &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  public static void main(String[] args) throws InterruptedException,  BiffException, IOException, RowsExceededException, WriteException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//read data from config file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Workbook workbook = Workbook.getWorkbook(new File(&quot;D:\\AJ\\XYZ.xls&quot;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sheet sheet = workbook.getSheet(&quot;Configuration&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String URL = sheet.getCell(0,1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String UserName = sheet.getCell(1,1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String Pwd = sheet.getCell(2,1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sheet shtUser = workbook.getSheet(&quot;User&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String strUserLastName = shtUser.getCell(0,1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sheet shtSummaryTable = workbook.getSheet(&quot;SummaryTable&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //int cntCol=shtSummaryTable.getColumns();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //int rowCnt=shtSummaryTable.getRows(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//Write result &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WritableWorkbook result = Workbook.createWorkbook(new File(&quot;D:\\AJ\\Result.xls&quot;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WritableSheet shtResult = result.createSheet(&quot;TestCase&quot;,0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label Header1 = new Label(0, 0, &quot;TestCaseNo&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label Header2 = new Label(1,0, &quot;TestCaseDescription&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label Header3 = new Label(2, 0, &quot;Result&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shtResult.addCell(Header1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shtResult.addCell(Header2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shtResult.addCell(Header3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//Invoke firefox and login into the application&lt;br /&gt;WebDriver f1=new FirefoxDriver();&lt;br /&gt;f1.get(URL);&lt;br /&gt;//f1.get(&quot;http://www.caisis.org/demo/Login.aspx&quot;);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;userName&#39;]&quot;)).sendKeys(UserName);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;password&#39;]&quot;)).sendKeys(Pwd);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;enterButton&#39;]&quot;)).click();&lt;br /&gt;&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;PageHeader1_searchWords&#39;]&quot;)).sendKeys(strUserLastName);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;searchBtn&#39;]&quot;)).click();&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;PageHeader1_rptHeaderTabs__ctl1_TabCenterTD&#39;]&quot;)).click();&lt;br /&gt;&lt;br /&gt;Label row11 = new Label(0, 1, &quot;Caisis_TC_01&quot;);&lt;br /&gt;Label row12 = new Label(1, 1, &quot;Login&quot;);&lt;br /&gt;Label row13 = new Label(2, 1, &quot;Pass&quot;);&lt;br /&gt;shtResult.addCell(row11);&lt;br /&gt;shtResult.addCell(row12);&lt;br /&gt;shtResult.addCell(row13);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;String whandle = f1.getWindowHandle();&lt;br /&gt;&amp;nbsp;//Go to Operation room details and submit details for the room &lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;menu&#39;]/li[3]/a&quot;)).click();&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;menu&#39;]/li[3]/ul/li[1]/a&quot;)).click();&lt;br /&gt;&lt;br /&gt;WebElement theFrame = f1.findElement(By.name(&quot;DataEntryFrame&quot;));&lt;br /&gt;f1.switchTo().frame(theFrame);&lt;br /&gt;WebElement chkBox= f1.findElement(By.xpath(&quot;.//*[@id=&#39;_ctl3__ctl0_OperatingRoomDetails_OpPending&#39;]&quot;));&lt;br /&gt;chkBox.click();&lt;br /&gt;&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;_ctl3__ctl0_OperatingRoomDetails_OpDateText&#39;]&quot;)).sendKeys(&quot;11/30/2012&quot;);&lt;br /&gt;&lt;br /&gt;Select droplist = new Select(f1.findElement(By.xpath(&quot;.//*[@id=&#39;_ctl3__ctl0_OperatingRoomDetails_OpService&#39;]&quot;)));&amp;nbsp; &lt;br /&gt;droplist.selectByVisibleText(&quot;GMT&quot;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;_ctl3__ctl0_OperatingRoomDetails_OpCaseSurgeon&#39;]&quot;)).sendKeys(&quot;Ceaser Johnson&quot;);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;_ctl3__ctl0_OperatingRoomDetails_OpAdmitDateText&#39;]&quot;)).sendKeys(&quot;11/30/2012&quot;);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;_ctl3__ctl0_OperatingRoomDetails_OpDischargeDateText&#39;]&quot;)).sendKeys(&quot;12/01/2012&quot;);&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;SaveBtn&#39;]&quot;)).click();&lt;br /&gt;f1.switchTo().window(whandle);&lt;br /&gt;&lt;br /&gt;Label row21 = new Label(0, 2, &quot;Caisis_TC_02&quot;);&lt;br /&gt;Label row22 = new Label(1, 2, &quot;Enter Operating Room Details &quot;);&lt;br /&gt;Label row23 = new Label(2, 2, &quot;Pass&quot;);&lt;br /&gt;shtResult.addCell(row21);&lt;br /&gt;shtResult.addCell(row22);&lt;br /&gt;shtResult.addCell(row23);&lt;br /&gt;&lt;br /&gt;//Go to Patients summary page and verify the summary is populated &lt;br /&gt;&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;menu&#39;]/li[1]/a&quot;)).click();&lt;br /&gt;f1.findElement(By.xpath(&quot;.//*[@id=&#39;menu&#39;]/li[1]/ul/li[1]/a&quot;)).click();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Switch to Summary &lt;br /&gt;WebElement SummaryFrame = f1.findElement(By.name(&quot;ChronListFrame&quot;));&lt;br /&gt;f1.switchTo().frame(SummaryFrame);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // read data from the table &lt;br /&gt;WebElement table_element = f1.findElement(By.xpath(&quot;.//*[@id=&#39;chronListTable&#39;]&quot;));&lt;br /&gt;List tr_collection=table_element.findElements(By.xpath(&quot;id(&#39;chronListTable&#39;)/tbody/tr&quot;));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for(int rowCounter = 2;rowCounter&amp;lt;=rowCnt ; rowCounter++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // String strDate=shtSummaryTable.getCell(0,rowCounter-1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //String strVariable=shtSummaryTable.getCell(1,rowCounter-1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //String strValue=shtSummaryTable.getCell(2,rowCounter-1).getContents();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //String strQuality=shtSummaryTable.getCell(3,rowCounter-1).getContents();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//System.out.println(&quot;NUMBER OF ROWS IN THIS TABLE = &quot;+tr_collection.size());&lt;br /&gt;int row_num,col_num;&lt;br /&gt;row_num=1;&lt;br /&gt;col_num=0;&lt;br /&gt;for(WebElement trElement : tr_collection)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; List td_collection=trElement.findElements(By.xpath(&quot;td&quot;));&lt;br /&gt;&amp;nbsp; //&amp;nbsp; System.out.println(&quot;NUMBER OF COLUMNS=&quot;+td_collection.size());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; col_num=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(WebElement tdElement : td_collection)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (shtSummaryTable.getCell(col_num,row_num).getContents().trim().equals(tdElement.getText().trim())) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Matched&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;UnMatched&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println (tdElement.getText().trim());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(shtSummaryTable.getCell(col_num,row_num).getContents().trim());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System.out.println(&quot;row # &quot;+row_num+&quot;, col # &quot;+col_num+ &quot;text=&quot;+tdElement.getText());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col_num++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (row_num==4) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_num++;&lt;br /&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Label row31 = new Label(0, 3, &quot;Caisis_TC_03&quot;);&lt;br /&gt;Label row32 = new Label(1, 3, &quot;Summary Table Matching &quot;);&lt;br /&gt;Label row33 = new Label(2, 3, &quot;Pass&quot;);&lt;br /&gt;shtResult.addCell(row31);&lt;br /&gt;shtResult.addCell(row32);&lt;br /&gt;shtResult.addCell(row33);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.write();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//f1.quit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/2592140739839296861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2012/11/selenium-code-to-read-and-write-to-xls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2592140739839296861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2592140739839296861'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2012/11/selenium-code-to-read-and-write-to-xls.html' title='Selenium + Excel'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-6325785900301292336</id><published>2012-07-25T11:10:00.001-04:00</published><updated>2012-07-25T11:10:24.148-04:00</updated><title type='text'>Code to export QTP OR into txt format</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Set Repo= CreateObject(&quot;Mercury.ObjectRepositoryUtil&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Repo.Load &quot;C:\Users\ajindal\Desktop\POC\Kmantra.tsr&quot;&lt;br /&gt;&lt;br /&gt;Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;&lt;br /&gt;Set f = fso.OpenTextFile(&quot;C:\Users\ajindal\Desktop\POC\KMantraOR.txt&quot;, 8, True)&lt;br /&gt;&lt;br /&gt;Set TOCollection = Repo.GetAllObjects&lt;br /&gt;&lt;br /&gt;For i = 0 To TOCollection.Count - 1&lt;br /&gt;&lt;br /&gt;Set TestObject = TOCollection.Item(i)&lt;br /&gt;&lt;br /&gt;Msg = Repo.GetLogicalName(TestObject) &amp;amp; vbNewLine&lt;br /&gt;&lt;br /&gt;Set PropertiesCollection = TestObject.GetTOProperties()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For n = 0 To PropertiesCollection.Count - 1&lt;br /&gt;&lt;br /&gt;Set Property = PropertiesCollection.Item(n)&lt;br /&gt;&lt;br /&gt;Msg = Msg &amp;amp; Property.Name &amp;amp; &quot;-&quot; &amp;amp; Property.Value &amp;amp; vbNewLine&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;f.Writeline Msg&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;f.Close&lt;br /&gt;&lt;br /&gt;Set fso=Nothing &lt;br /&gt;&lt;br /&gt;Set Repo=Nothing &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/6325785900301292336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2012/07/code-to-export-qtp-or-into-txt-format.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/6325785900301292336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/6325785900301292336'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2012/07/code-to-export-qtp-or-into-txt-format.html' title='Code to export QTP OR into txt format'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-5900013529430291697</id><published>2012-05-07T04:41:00.001-04:00</published><updated>2012-05-07T04:41:14.724-04:00</updated><title type='text'>Copy Data from one xls to another</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Very often i face problems when excel files become very big due to formatting and other invalid links and it become it quite cumbersome to transfer these files or even open these files and work on your system.&lt;br /&gt;&lt;br /&gt;I developed a very small and easy code to copy all data from all sheets into another workbook. You can use this code by changing the file names. Let me know if you need any help to change the same.&lt;br /&gt;&lt;br /&gt;&#39;Declare Variables&lt;br /&gt;Dim objXL,objWrkBk,objWrkSht&lt;br /&gt;&#39;Create excel object&lt;br /&gt;Set objXL=CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;&#39;open workbook&lt;br /&gt;Set objWrkBk=objXL.Workbooks.Open(&quot;C:\Users\Ashish\Desktop\MTC\CW_Job_Centre_Master_Test_Cases_USA+Mexico_Full_Cycle_R_3.3.5.xls&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Create new workbook where all the data will be copied&lt;br /&gt;Dim objNewWorkBook,objNewWorkSheet&lt;br /&gt;Set objNewWorkBook=objXL.Workbooks.Add()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39; Get all the sheet names one by one and copy them into the 2nd workbook&lt;br /&gt;Dim shts, varSheets&lt;br /&gt;Set shts=objWrkBk.Sheets &#39; get the sheets collection&lt;br /&gt;For each varSheets in shts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objWrkSht=objWrkBk.Worksheets(varSheets.name) &#39;open the first sheet&lt;br /&gt;Dim rCount,cCount &#39; get the row and column count of the worksheet&lt;br /&gt;rCount=objWrkSht.usedrange.rows.count&lt;br /&gt;cCount=objWrkSht.usedrange.columns.count&lt;br /&gt;&lt;br /&gt;Set objNewWorkSheet=objNewWorkBook.Worksheets.Add () &#39; create the 2nd sheet&lt;br /&gt;objNewWorkSheet.name=varSheets.name &#39; Give the same name as of first sheet&lt;br /&gt;&lt;br /&gt;&#39;Copy all Data cell by cell&lt;br /&gt;Dim row,col&lt;br /&gt;For row=1 to rCount&lt;br /&gt;For col=1 to cCount&lt;br /&gt;objNewWorkSheet.cells(row,col)=objWrkSht.cells(row,col)&lt;br /&gt;Next&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;msgbox varSheets.name&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Save as the 2nd workbook&lt;br /&gt;Dim wrkBkName:wrkBkName=Year(Now)&amp;amp;Month(Now)&amp;amp;Day(Now)&amp;amp; Hour(Now)&amp;amp; Minute(Now) &amp;amp; Second(Now)&lt;br /&gt;objNewWorkBook.saveas &quot;C:\Users\Ashish\Desktop\MTC\&quot; &amp;amp; wrkBkName &amp;amp; &quot;.xls&quot;&lt;br /&gt;&lt;br /&gt;&#39;&#39;Release objects&lt;br /&gt;objNewWorkBook.save&lt;br /&gt;objNewWorkBook.close&lt;br /&gt;objWrkBk.Close&lt;br /&gt;objXL.Quit&lt;br /&gt;Set objNewWorkBook=Nothing&lt;br /&gt;Set objWrkBk=Nothing&lt;br /&gt;Set objXL=Nothing&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/5900013529430291697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2012/05/copy-data-from-one-xls-to-another.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/5900013529430291697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/5900013529430291697'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2012/05/copy-data-from-one-xls-to-another.html' title='Copy Data from one xls to another'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-8895483794970671055</id><published>2011-12-12T15:27:00.000-05:00</published><updated>2011-12-12T15:27:02.460-05:00</updated><title type='text'>Print Logical Name &amp; Physical properties from OR</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Following program will return the class name, logical name and all physical properties of a object placed in OR:&lt;br /&gt;&lt;br /&gt;Set RepositoryFrom = CreateObject(&quot;Mercury.ObjectRepositoryUtil&quot;)&lt;br /&gt;RepositoryFrom.Load &quot;&lt;repository path=&quot;&quot;&gt;&quot;&amp;nbsp;&amp;nbsp; &#39; Write your OR path here &lt;br /&gt;Dim TOCollection,Msg&lt;br /&gt;Set TOCollection = RepositoryFrom.GetAllObjects &lt;br /&gt;For i = 0 To TOCollection.Count - 1&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set TestObject = TOCollection.Item(i)&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ln = RepositoryFrom.GetLogicalName(TestObject)&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cn= TestObject.GetTOProperty(&quot;Class Name&quot;)&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set PropertiesCollection = TestObject.GetTOProperties() &lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Msg=&quot;&quot;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For n=0 To PropertiesCollection.Count - 1&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Property = PropertiesCollection.Item(n)&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Msg = Msg &amp;amp; Property.Name &amp;amp; &quot;-&quot; &amp;amp; Property.Value &amp;amp; vbNewLine&lt;/div&gt;Next&lt;br /&gt;print cn &amp;amp; vbnewline &amp;amp; ln &amp;amp;vbnewline &amp;amp; Msg &amp;amp; VBnewline &amp;amp; VBnewline &amp;amp; VBnewline&lt;br /&gt;Next&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/8895483794970671055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/12/print-logical-name-physical-properties.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8895483794970671055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8895483794970671055'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/12/print-logical-name-physical-properties.html' title='Print Logical Name &amp; Physical properties from OR'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-6776859917805321169</id><published>2011-12-09T13:25:00.000-05:00</published><updated>2011-12-09T13:25:04.467-05:00</updated><title type='text'>Index &amp; Location Ordinal Identifiers</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;What is the difference between index and location ordinal identifier.&lt;br /&gt;Index is assigned based upon the HTML source code while the location goes from top to bottom and then left to right.&lt;br /&gt;Ordinal identifier is always specified with respect to the other elements/objects in the application.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/6776859917805321169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/12/index-location-ordinal-identifiers.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/6776859917805321169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/6776859917805321169'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/12/index-location-ordinal-identifiers.html' title='Index &amp; Location Ordinal Identifiers'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-5803786056402385179</id><published>2011-12-06T15:18:00.000-05:00</published><updated>2011-12-06T15:18:20.598-05:00</updated><title type='text'>Silverlight- How to get headers from the datagrid</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;I was automating one Silverlight application and struck into the columns headers. for some&amp;nbsp;Columns&amp;nbsp;qtp was not able to fetch the correct header value. It was only giving back&amp;nbsp;numerical values while my columns were having strings (shown in below figures). It was simply returning the column no:&lt;br /&gt;&lt;br /&gt;Following is my application:&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-5WSDroxRgCM/Tt5v2WhAwuI/AAAAAAAAA0s/6F-YTbnLbno/s1600/2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; dda=&quot;true&quot; height=&quot;117px&quot; src=&quot;http://4.bp.blogspot.com/-5WSDroxRgCM/Tt5v2WhAwuI/AAAAAAAAA0s/6F-YTbnLbno/s320/2.JPG&quot; width=&quot;320px&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I was trying&amp;nbsp;to get the column headers and then the whole table to store into two dimensional array. When i executed&amp;nbsp;the following statement it was giving weird results. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;For i =1 to 15&lt;/div&gt;print Browser(&quot;JobCenter&quot;).Page(&quot;JobCenter&quot;).SlvWindow(&quot;MainPage&quot;).SlvTable(&quot;revenueAtAGlanceDashboard&quot;).SlvTable(&quot;CountriesRevenueAtAGlancDashboard&quot;).GetCellProperty(1,i,&quot;colname&quot;) &amp;amp; &quot; Col no - &quot; &amp;amp; i &lt;br /&gt;Next&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;For col no 7&amp;nbsp;and up it was giving col no; instead of heading. Not sure what was the issue and even&amp;nbsp;developers said they can&#39;t help as they can&#39;t find a specific&amp;nbsp;region for this behaviour. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-8LYm8_yXZMM/Tt5z4GLo-3I/AAAAAAAAA00/lqL6u4xYrxo/s1600/3.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; dda=&quot;true&quot; height=&quot;200px&quot; src=&quot;http://3.bp.blogspot.com/-8LYm8_yXZMM/Tt5z4GLo-3I/AAAAAAAAA00/lqL6u4xYrxo/s320/3.JPG&quot; width=&quot;320px&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I looked around on msdn and went through&amp;nbsp;datagrid controls. Through some&amp;nbsp;research and googling&amp;nbsp;i understood that we can also fetch the columns headers by using datagrid columns collection but no such material is available on the internet. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I&amp;nbsp;create first the columns collections objects: &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Dim objColHeader:Set objColHeader=Browser(&quot;JobCenter&quot;).Page(&quot;JobCenter&quot;).SlvWindow(&quot;MainPage&quot;).SlvTable(&quot;revenueAtAGlanceDashboard&quot;).SlvTable(&quot;CountriesRevenueAtAGlancDashboard&quot;).Object.Columns&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;then by using its item and&amp;nbsp;header property i was able to fine&amp;nbsp;the header name: &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Dim colName:colName=objColHeader.Item(cCounter).Header&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;results: &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;By&amp;nbsp;executing the following statement:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Set objColHeader=Browser(&quot;JobCenter&quot;).Page(&quot;JobCenter&quot;).SlvWindow(&quot;MainPage&quot;).SlvTable(&quot;revenueAtAGlanceDashboard&quot;).SlvTable(&quot;CountriesRevenueAtAGlancDashboard&quot;).Object.Columns&lt;/div&gt;&lt;br /&gt;For i =1 to 15 &lt;br /&gt;colName=objColHeader.Item(i).Header&lt;br /&gt;print colName&lt;br /&gt;Next &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-AfDNqpkoSXc/Tt517iNoGNI/AAAAAAAAA08/8h-cJKqISGU/s1600/5.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; dda=&quot;true&quot; height=&quot;320px&quot; src=&quot;http://2.bp.blogspot.com/-AfDNqpkoSXc/Tt517iNoGNI/AAAAAAAAA08/8h-cJKqISGU/s320/5.JPG&quot; width=&quot;254px&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Moreover this method is much faster then by simply taking data from getcelldata. The 2nd method took only&amp;nbsp;2.4 secs &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/5803786056402385179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/12/silverlight-how-to-get-headers-from.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/5803786056402385179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/5803786056402385179'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/12/silverlight-how-to-get-headers-from.html' title='Silverlight- How to get headers from the datagrid'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-5WSDroxRgCM/Tt5v2WhAwuI/AAAAAAAAA0s/6F-YTbnLbno/s72-c/2.JPG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-2777373907533770103</id><published>2011-04-21T14:28:00.000-04:00</published><updated>2011-04-21T14:28:51.309-04:00</updated><title type='text'>ADO &amp; Flat File</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Text files can also be accessed by using the ADO objects. Following is the code for the same:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Connnection Objects&lt;br /&gt;Dim conn&lt;br /&gt;Set conn=CreateObject(&quot;ADODB.connection&quot;)&lt;br /&gt;&#39;Create the DSN for the text file, defualt directory is poiting to the location where flat file is kept&lt;br /&gt;conn.open &quot;DefaultDir=C:\Users\sandeep\Desktop\Blog R &amp;amp; D\ADO Flat File;Driver={Driver da Microsoft para arquivos texto (*.txt; *.csv)};DriverId=27;FIL=text;FILEDSN=C:\Users\sandeep\Desktop\Blog R &amp;amp; D\ADO Flat File\Flt.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;&quot;&lt;br /&gt;&lt;br /&gt;&#39;Recordset object&lt;br /&gt;Dim rs&lt;br /&gt;Set rs=CreateObject(&quot;Adodb.recordset&quot;)&lt;br /&gt;strQry=&quot;Select * from SampleTextFile.txt&quot; &amp;nbsp;&#39; Execute query&lt;br /&gt;rs.Open strQry,conn&lt;br /&gt;&lt;br /&gt;&#39; Loop and get the records from the flat file&lt;br /&gt;Dim counter&lt;br /&gt;Do&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;counter= counter+1&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;For i=0 to rs.Fields.Count-1&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;If counter=1 Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;print rs(i).name&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;print rs(i).value&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;else&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;print rs(i).value&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;End If&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Next&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;rs.MoveNext&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;Loop until rs.EOF&lt;br /&gt;&lt;br /&gt;Set rs=Nothing&lt;br /&gt;Set conn=Nothing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Output Log&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-3cqzjrXqb3Y/TbB3Rg3iwCI/AAAAAAAAAzU/3aP7DM002pg/s1600/Output.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;207&quot; src=&quot;http://2.bp.blogspot.com/-3cqzjrXqb3Y/TbB3Rg3iwCI/AAAAAAAAAzU/3aP7DM002pg/s320/Output.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Input Text File Log&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-VbU6VYfMxCw/TbB2RV0ukMI/AAAAAAAAAzM/LrgDc67jZAQ/s1600/TextFile.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;145&quot; src=&quot;http://3.bp.blogspot.com/-VbU6VYfMxCw/TbB2RV0ukMI/AAAAAAAAAzM/LrgDc67jZAQ/s320/TextFile.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/2777373907533770103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/04/ado-flat-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2777373907533770103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2777373907533770103'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/04/ado-flat-file.html' title='ADO &amp; Flat File'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-3cqzjrXqb3Y/TbB3Rg3iwCI/AAAAAAAAAzU/3aP7DM002pg/s72-c/Output.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-3045516933983586202</id><published>2011-04-19T12:44:00.001-04:00</published><updated>2011-04-19T12:47:04.359-04:00</updated><title type='text'>Test batch runner by using ADO</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Excel files can also be accessed by using ADO objects. Similarly Test Batch runner can be created by using the ADO &amp;amp; AOM objects. Following is the code for the test batch runner by using ADO:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;********************* Launch QTP ****************************&lt;br /&gt;Dim qtp&lt;br /&gt;Set qtp=CreateObject(&quot;QuickTest.Application&quot;)&lt;br /&gt;qtp.Launch&lt;br /&gt;qtp.Visible=True&lt;br /&gt;&lt;br /&gt;&#39;*************** Open Excel file by using ADO objects **************&lt;br /&gt;Dim ADO&lt;br /&gt;Set ADO=CreateObject(&quot;ADODB.Connection&quot;)&lt;br /&gt;ADO.Open &quot;DSN=Excel Files;DBQ=C:\Users\sandeep\Desktop\Training\TestBatchRunner\TBR.xlsx;DefaultDir=C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\FILES;DriverId=790;MaxBufferSize=2048;PageTimeout=5;&quot;&lt;br /&gt;&lt;br /&gt;&#39;**************Fetch data from excel file by using ADO***************&lt;br /&gt;Set rs=createobject(&quot;ADODB.recordset&quot;)&lt;br /&gt;rs.Open &quot;Select * from [Sheet1$]&quot;,ADO&lt;br /&gt;Dim counter:counter=0&lt;br /&gt;Dim colCounter&lt;br /&gt;Dim varScriptRunStatus&lt;br /&gt;Dim scriptName&lt;br /&gt;Do &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;counter=counter+1&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;colCounter=0&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;For each field in rs.Fields&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;colCounter=colCounter+1&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;If counter=1 Then &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;If colCounter=2 Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;           &lt;/span&gt;varScriptRunStatus=field.name&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;End If&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;else&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;If isnull(field.value)=False Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;          &lt;/span&gt;If colCounter=2 Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;            &lt;/span&gt;scriptName=field.value&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;          &lt;/span&gt;End If&lt;br /&gt;&#39;*****************Open and execute scripts ****************************&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;          &lt;/span&gt;If colCounter=3 and (lcase(varScriptRunStatus)=lcase(field.value) or lcase( varScriptRunStatus)=&quot;all&quot;)Then &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;            &lt;/span&gt;qtp.Open scriptName,True&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;            &lt;/span&gt;qtp.Test.Run&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;          &lt;/span&gt;End If &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;End If&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;end If &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Next&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;rs.MoveNext&lt;br /&gt;Loop until rs.EOF&lt;br /&gt;&lt;br /&gt;&#39;Release objects&lt;br /&gt;Set rs=Nothing&lt;br /&gt;Set ADO=Nothing&lt;br /&gt;Set qtp=Nothing&lt;br /&gt;&lt;br /&gt;Snapshot of the Data File:&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-IASBJ7XhL9U/Ta27vT56KJI/AAAAAAAAAzE/RJ9DIbkYy8Q/s1600/TestBatchRunner.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;167&quot; src=&quot;http://4.bp.blogspot.com/-IASBJ7XhL9U/Ta27vT56KJI/AAAAAAAAAzE/RJ9DIbkYy8Q/s400/TestBatchRunner.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/3045516933983586202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/04/test-batch-runner-by-using-ado.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3045516933983586202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3045516933983586202'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/04/test-batch-runner-by-using-ado.html' title='Test batch runner by using ADO'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-IASBJ7XhL9U/Ta27vT56KJI/AAAAAAAAAzE/RJ9DIbkYy8Q/s72-c/TestBatchRunner.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-4724645076468622731</id><published>2011-03-27T11:29:00.009-04:00</published><updated>2011-03-27T11:37:03.835-04:00</updated><title type='text'>Excel files and QTP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=q0c3-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B0013FRNKG&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Excel files are the integrated part of the software Testing Process specially automation testing.&amp;nbsp; QTP uses excel files as&amp;nbsp;default data files. It’s very easy to maintain test data into Excel files. Number of files can vary from one to many in any testing Project. There are several ways to access the excel files into the QTP:&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;First-QTP Default files:&lt;/b&gt; By default each QTP script has a default excel file. For a script with single action (Action1) we will have two sheets. One is global which can be used to access data across multiple actions; another is per Action Sheet with the sheet name as action Name (Action 1).&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;i&gt;Example:&lt;/i&gt; As shown in the below snapshot we have a new script with only one Action named as “Action1”&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;212&quot; src=&quot;https://lh5.googleusercontent.com/--cldEjkKp1o/TYwCL7GpZiI/AAAAAAAAAyQ/hmloSs0uCV0/s400/Ex1-Script.jpg&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&amp;nbsp;As shown below this script has only two excel sheets. One is Global and another is “Action1”&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://lh5.googleusercontent.com/-b4UxjDbf5-k/TYwClWLHLDI/AAAAAAAAAyU/bv5tGIi81fs/s1600/Ex2-DataTable.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;92&quot; src=&quot;https://lh5.googleusercontent.com/-b4UxjDbf5-k/TYwClWLHLDI/AAAAAAAAAyU/bv5tGIi81fs/s400/Ex2-DataTable.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;As the no of actions will increase into the script&amp;nbsp;number of sheets will also increase correspondingly. All these sheets and there data can be accessed by QTP default methods.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;For example: if we have the data as shown below in Global sheet then any of the mehtods written in below script can be used to access the data. There output is also shown in the print screen window&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://lh4.googleusercontent.com/-Grp9nrEpGq0/TY2rRbF1eQI/AAAAAAAAAyY/f8SOqlHj70A/s1600/Ex3-Data+%2526+Script+to+print+Data.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;252&quot; r6=&quot;true&quot; src=&quot;https://lh4.googleusercontent.com/-Grp9nrEpGq0/TY2rRbF1eQI/AAAAAAAAAyY/f8SOqlHj70A/s400/Ex3-Data+%2526+Script+to+print+Data.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Similarly we can access the data from the local action sheets too. Method written in line no 6 can be used to access data from any of the sheets. As shown in line no 8 we have fetched the data from Global sheet. Thus it enables us to fetch data from any sheet which is available at run time in the script.&lt;a href=&quot;https://lh6.googleusercontent.com/-rv0HDQcQUu4/TY2rtgpa1DI/AAAAAAAAAyc/SwXWAO-74gw/s1600/Ex4-Data+%2526+Script+to+print+Data.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; r6=&quot;true&quot; src=&quot;https://lh6.googleusercontent.com/-rv0HDQcQUu4/TY2rtgpa1DI/AAAAAAAAAyc/SwXWAO-74gw/s400/Ex4-Data+%2526+Script+to+print+Data.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Utility Objects&lt;/b&gt;:&amp;nbsp; By using utility objects we can import excel files at the run time , we can add data into the sheets and then export them before exiting the script. It enables us to save the data which is added at run time into the sheet. Following are the excel utility objects these will be&amp;nbsp;explained&amp;nbsp;in other post.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;DataTable Object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Calibri;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;DTParameter Object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Calibri;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;DTSheet Object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;strong&gt;Excel Objects (Excel. Application):&lt;/strong&gt; Another method to access the excel files is by using COM objects. Following are the sample codes to access&amp;nbsp;xls files by using&amp;nbsp;VBscript. These codes can be run as it is in&amp;nbsp;QTP. &lt;/div&gt;&lt;br /&gt;&lt;strong&gt;Example 1:&lt;/strong&gt; Following is the example of opening and writing data into xls file.&lt;br /&gt;&lt;br /&gt;xls file before writing the data:&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; height=&quot;105&quot; r6=&quot;true&quot; src=&quot;https://lh3.googleusercontent.com/-syUITTyD-Ic/TY2t9dCkVBI/AAAAAAAAAyk/rx41QEae2Hs/s400/Ex5-Excel.jpg&quot; width=&quot;400&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&#39; Open and Write data into a xls sheet&lt;br /&gt;&lt;br /&gt;&#39;Declare Variables&lt;br /&gt;Dim objXL,objWrkBk,objWrkSht&lt;br /&gt;&#39;Create excel object&lt;br /&gt;Set objXL=CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;&#39;open workbook&lt;br /&gt;Set objWrkBk=objXL.Workbooks.Open(&quot;C:\Users\sandeep\Desktop\Training\Excel\ExcelClass-1 - Exam.xlsx&quot;)&lt;br /&gt;&#39;Open excel sheet&lt;br /&gt;Set objWrkSht=objXL.ActiveWorkbook.Worksheets(&quot;TextOr&quot;)&lt;br /&gt;objWrkSht.cells(1,1)=&quot; Hello World&quot;&lt;br /&gt;&#39;Release objects&lt;br /&gt;objWrkBk.Save&lt;br /&gt;objXL.Quit&lt;br /&gt;Set objWrkSht=Nothing&lt;br /&gt;Set objWrkBk=Nothing&lt;br /&gt;Set objXL=Nothing&lt;br /&gt;&lt;br /&gt;&#39;xls file after executing the above script: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://lh6.googleusercontent.com/-GFXu4pye8HE/TY2vPCEE79I/AAAAAAAAAyo/QcN3zUUPH2U/s1600/Ex6-xls.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;106&quot; r6=&quot;true&quot; src=&quot;https://lh6.googleusercontent.com/-GFXu4pye8HE/TY2vPCEE79I/AAAAAAAAAyo/QcN3zUUPH2U/s400/Ex6-xls.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example 2: How to copy data from one xls file to another.&lt;br /&gt;&lt;br /&gt;This example shows how to create a duplicate copy of the excel file. This code also demonstrates the following:&lt;br /&gt;&lt;br /&gt;1. How to get the all sheet names from a collection&lt;br /&gt;&lt;br /&gt;2. How to get row count &amp;amp; column count &lt;br /&gt;&lt;br /&gt;3. How to create a new workbook and worksheet at run time &amp;amp; How to save them. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39; How to copy data from one workbook to another&lt;br /&gt;&lt;br /&gt;&#39;Declare Variables&lt;br /&gt;Dim objXL,objWrkBk,objWrkSht&lt;br /&gt;&#39;Create excel object&lt;br /&gt;Set objXL=CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;&#39;open workbook&lt;br /&gt;Set objWrkBk=objXL.Workbooks.Open(&quot;C:\Users\sandeep\Desktop\Training\Excel\ExcelClass-1 - Exam.xlsx&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Create new workbook where all the data will be copied&lt;br /&gt;Dim objNewWorkBook,objNewWorkSheet&lt;br /&gt;Set objNewWorkBook=objXL.Workbooks.Add()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39; Get all the sheet names one by one and copy them into the 2nd workbook&lt;br /&gt;Dim shts, varSheets&lt;br /&gt;Set shts=objWrkBk.Sheets &#39; get the sheets collection&lt;br /&gt;For each varSheets in shts&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Set objWrkSht=objWrkBk.Worksheets(varSheets.name) &#39;open the first sheet&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Dim rCount,cCount &#39; get the row and column count of the worksheet&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;rCount=objWrkSht.usedrange.rows.count&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;cCount=objWrkSht.usedrange.columns.count&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Set objNewWorkSheet=objNewWorkBook.Worksheets.Add () &#39; create the 2nd sheet&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;objNewWorkSheet.name=varSheets.name &#39; Give the same name as of first sheet&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&#39;Copy all Data cell by cell&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Dim row,col&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;For row=1 to rCount&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;For col=1 to cCount&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;objNewWorkSheet.cells(row,col)=objWrkSht.cells(row,col)&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Next&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Next&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;Save as the 2nd workbook&lt;br /&gt;Dim wrkBkName:wrkBkName=Year(Now)&amp;amp;Month(Now)&amp;amp;Day(Now)&amp;amp; Hour(Now)&amp;amp; Minute(Now) &amp;amp; Second(Now)&lt;br /&gt;objNewWorkBook.saveas &quot;C:\Users\sandeep\Desktop\Training\Excel\&quot; &amp;amp; wrkBkName &amp;amp; &quot;.xlsx&quot;&lt;br /&gt;&lt;br /&gt;&#39;&#39;Release objects&lt;br /&gt;objNewWorkBook.save&lt;br /&gt;objNewWorkBook.close&lt;br /&gt;objWrkBk.Close&lt;br /&gt;objXL.Quit&lt;br /&gt;Set objNewWorkBook=Nothing&lt;br /&gt;Set objWrkBk=Nothing&lt;br /&gt;Set objXL=Nothing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;&lt;br /&gt;1. Cell be cell code will take quite a long time to create copies of the excel file. To do it faster copy all code in a vbs file and double click it. &lt;br /&gt;2. To change the order of the sheets use the optional parameters in “worksheets.add() “&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example 3: How to find text in the workbook:&lt;br /&gt;&lt;br /&gt;There are two methods find the same. Both are demonstrated below&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Input:&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-pBVYx32Ky9c/TY7VGcCLluI/AAAAAAAAAyw/Mf4m8VxQJLI/s1600/Ex7-DataTable.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;193&quot; src=&quot;http://2.bp.blogspot.com/-pBVYx32Ky9c/TY7VGcCLluI/AAAAAAAAAyw/Mf4m8VxQJLI/s320/Ex7-DataTable.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&#39;&#39; How to find &amp;nbsp;text in the workbook&lt;br /&gt;&lt;br /&gt;&#39;Declare Variables&lt;br /&gt;Dim objXL,objWrkBk,objWrkSht&lt;br /&gt;&#39;&#39;Create excel object&lt;br /&gt;Set objXL=CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;&#39;&#39;open workbook&lt;br /&gt;Set objWrkBk=objXL.Workbooks.Open(&quot;C:\Users\sandeep\Desktop\Training\Excel\ExcelClass-1 - Exam.xlsx&quot;)&lt;br /&gt;&lt;br /&gt;&#39;&#39;Open excel sheet&lt;br /&gt;Set objWrkSht=objXL.ActiveWorkbook.Worksheets(&quot;XYZ&quot;)&lt;br /&gt;&lt;br /&gt;Dim Text2Found:Text2Found=&quot;eye liner&quot;&lt;br /&gt;&#39; First &amp;amp; recommended method&lt;br /&gt;Dim objFind:Set objFind=objWrkSht.usedrange.find(Text2Found)&lt;br /&gt;If &amp;nbsp;objFind is nothing Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;print &quot;text not found&quot;&lt;br /&gt;else&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;print &quot; Row no from First Method: &quot; &amp;amp; objFind.Row &#39; find out the row no&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;print &quot; Column no from First Method: &quot; &amp;amp; objFind.column&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&#39; find out the col no&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;&#39; 2nd method&lt;br /&gt;Dim rCount,cCount&lt;br /&gt;rCount=objWrkSht.usedrange.rows.count&lt;br /&gt;cCount=objWrkSht.usedrange.columns.count&lt;br /&gt;Dim row,col&lt;br /&gt;Dim flgTextFound:flgTextFound=False&lt;br /&gt;For row=1 to rCount&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;For col=1 to cCount&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;If lcase(objWrkSht.cells(row,col))=Text2Found Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;print &quot; Row no from 2nd Method: &quot; &amp;nbsp;&amp;amp; row&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;print &amp;nbsp;&quot; Column no from 2nd Method: &quot; &amp;nbsp;&amp;amp; col&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;flgTextFound=True&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;Exit For&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;End If&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Next&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;If flgTextFound Then&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;Exit For&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;End If&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&#39;Release objects&lt;br /&gt;objXL.Quit&lt;br /&gt;Set objWrkSht=Nothing&lt;br /&gt;Set objWrkBk=Nothing&lt;br /&gt;Set objXL=Nothing&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Output:&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-FJ3SVXepGuw/TY7VMlNKP1I/AAAAAAAAAy0/bflAQyud-xg/s1600/Ex8-Result.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-FJ3SVXepGuw/TY7VMlNKP1I/AAAAAAAAAy0/bflAQyud-xg/s1600/Ex8-Result.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Excel by using ADO: Another method to access excel files is by using ADO objects&lt;br /&gt;Following example demonstrates how to use ADO objects to fetch data from the xls file.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Input File:&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-pbsMtdzvf94/TY8LtW147EI/AAAAAAAAAy8/nawblHeMoFQ/s1600/Ex9.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;211&quot; src=&quot;http://2.bp.blogspot.com/-pbsMtdzvf94/TY8LtW147EI/AAAAAAAAAy8/nawblHeMoFQ/s320/Ex9.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Dim ado&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Set ado=CreateObject(&quot;ADODB.connection&quot;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;ado.open &quot;DSN=Excel Files;DBQ=C:\Users\sandeep\Desktop\Training\Excel\ExcelClass-1 - Exam.xlsx;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;&quot;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Set rs=CreateObject(&quot;ADODB.Recordset&quot;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;rs.Open &quot;Select Sample &amp;nbsp;from [Sorting$]&quot;,ado&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Do until rs.EOF&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;For each rec in rs.Fields&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;If isnull(rec.value) then&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Exit do&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;print rec.value&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;end if&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;rs.MoveNext&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Loop&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;rs.Close&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;ado.Close&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Set rs=nothing&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Set ado=nothing&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Output:&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-Vf9IhAE49dc/TY8Lj7yNPAI/AAAAAAAAAy4/nTGeJegvp0w/s1600/Ex10.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;http://4.bp.blogspot.com/-Vf9IhAE49dc/TY8Lj7yNPAI/AAAAAAAAAy4/nTGeJegvp0w/s400/Ex10.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://lh3.googleusercontent.com/-syUITTyD-Ic/TY2t9dCkVBI/AAAAAAAAAyk/rx41QEae2Hs/s1600/Ex5-Excel.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/4724645076468622731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/03/how-to-use-excel-file-in-qtp.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/4724645076468622731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/4724645076468622731'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/03/how-to-use-excel-file-in-qtp.html' title='Excel files and QTP'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/--cldEjkKp1o/TYwCL7GpZiI/AAAAAAAAAyQ/hmloSs0uCV0/s72-c/Ex1-Script.jpg" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-3586902044499075703</id><published>2011-01-18T21:44:00.000-05:00</published><updated>2011-01-18T21:44:12.777-05:00</updated><title type='text'>Kill Prcoess By Name without any Popup</title><content type='html'>While developing scripts several times i have noticed that when trying to close the objects due to unforseen error a popup comes up which asks for the confirmation of closing the process or killing the process. &lt;br /&gt;Many a time we require to cleanup the environment by killing all excel &amp;amp; iexplore process before starting the execution. I use the following function to do the same with out giving any popup. &lt;br /&gt;&lt;br /&gt;&#39;Process Name= Name of the process from Task manager : Example: Excel.exe&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Call KillProcessByName (&quot;Excel.exe&quot;)&lt;/strong&gt;&amp;nbsp; &#39; this call with kill the opened excel files irrespective of there status&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;Public Function KillProcessByName(ProcessName)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dim objWMIService,colProcessList,objProcess &#39; Define variables &lt;br /&gt;&lt;br /&gt;Set objWMIService =GetObject(&quot;winmgmts:&quot; &amp;amp; &quot;{impersonationLevel=impersonate}!\\.\root\cimv2&quot;) &lt;br /&gt;&lt;br /&gt;Set colProcessList =objWMIService.ExecQuery (&quot;Select &quot; &amp;amp; &quot;* from Win32_Process Where Name =&quot; &amp;amp;&quot;&#39;&quot; &amp;amp;ProcessName &amp;amp; &quot;&#39;&quot;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;&#39; Select the process by name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For Each objProcess in colProcessList&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On error resume next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objProcess.Terminate()&amp;nbsp;&amp;nbsp; &#39; Terminate the process&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On error goto 0&lt;br /&gt;Next &lt;br /&gt;&lt;br /&gt;&#39;Release the objects&lt;br /&gt;Set objWMIService =Nothing &lt;br /&gt;Set colProcessList =Nothing &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;End Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;a href=&quot;http://www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M?ie=UTF8&amp;amp;tag=q0c3-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969&quot; target=&quot;_blank&quot;&gt;Kindle Wireless Reading Device, Wi-Fi, Graphite, 6&quot; Display with New E Ink Pearl Technology&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=q0c3-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B002Y27P3M&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px; padding-bottom: 0px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important;&quot; width=&quot;1&quot; /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/3586902044499075703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/01/kill-prcoess-by-name-without-any-popup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3586902044499075703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3586902044499075703'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/01/kill-prcoess-by-name-without-any-popup.html' title='Kill Prcoess By Name without any Popup'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-9102416931719635983</id><published>2011-01-15T23:05:00.003-05:00</published><updated>2011-01-16T11:35:08.364-05:00</updated><title type='text'>Synchronization - Wait|Exist|Do while|Sync</title><content type='html'>&lt;u&gt;&lt;b&gt;1. Wait Statement: &lt;/b&gt;&lt;/u&gt;It will wait for the specified amount of time. We can specify the time in both seconds and milliseconds. But its necessary to define time in the wait statement even it is zero otherwise it will give you an error.&lt;br /&gt;&lt;br /&gt;Example: wait, wait () both will give errors&lt;br /&gt;while&amp;nbsp; wait(0), wait 0, wait 0, 10000 are valid statements.&lt;br /&gt;&lt;br /&gt;also wait (0, 10000) will give an error and wait 0,10000 is a valid statement.&lt;br /&gt;&lt;br /&gt;The disadvantage of wait statements is that it is not applied on a condition. If this statements is encountered by the compiler then it will wait for the specified amount of time. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;2. Exist Property:&lt;/b&gt;&lt;/u&gt; A very&amp;nbsp;useful&amp;nbsp;property when dealing with the dynamic objects which takes time to download on the web pages.As the name suggests this&amp;nbsp;property&amp;nbsp;checks if a objects exist before doing operations on the object. This property can be used almost all the objects. It is used as follows:&lt;br /&gt;&lt;br /&gt;A=Browser(&quot;&quot;).Page(&quot;&quot;).Frame(&quot;&quot;).webedit(&quot;Login&quot;).exist(09)&lt;br /&gt;&lt;br /&gt;The above exist statement will check if the &quot;Login&quot; object exists on the WebPage or not. If it exist then it return True to &quot;A: and if not then it will return False to &quot;A&quot;. In real time we generally checks if some objects exist or not before doing some operation on it.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;If&lt;/span&gt;&lt;/b&gt; Browser(&quot;JobCenter&quot;).Page(&quot;JobCenter&quot;).WebButton(strKeywordName).Exist(10) &lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;then&lt;/span&gt;&lt;/b&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Browser(&quot;JobCenter&quot;).Page(&quot;JobCenter&quot;).WebButton(strKeywordName).Click&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt; &lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;end if&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Difference between wait and Exist Statement:&lt;br /&gt;1. Execution will wait&amp;nbsp;specifically&amp;nbsp;for the &amp;nbsp;amount specified in Wait statement. If wait(10) is define then the QTP will wait for 10 seconds. No matter what happens. So if we have a script which run 100 time then naturally it is going to increase the run time&amp;nbsp;significantly.&lt;br /&gt;Exist: Execution will move to next statement as soon as Exist return a True. So if Exist(10) is specified and the condition become true on the very first second then QTP will move to next statement. Thus we have directly saved the 9 second.&lt;br /&gt;&lt;br /&gt;2. Wait is a statement while Exist is a property. By then help of wait we pause the execution for certain amount of time while Exist checks if a specified objects exists or not for the specified time. Thus we can use it in the loops and take various decisions.&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;1. There is no point of using the exist property when we are taking it value back in a variable. So following statement will throw Error.&lt;br /&gt;B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist - Error&lt;br /&gt;B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist(10) - Error&lt;br /&gt;&lt;br /&gt;while following statements will work fine&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;a=B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist - Good&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;a= B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist(10) - Good&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;2.Exist&amp;nbsp;can&#39;t&amp;nbsp;be used with the empty braces. It will give u error.However we can use it with the &quot;0&quot; in Exist which says don&#39;t wait if the objects Exist or don&#39;t exist.&lt;br /&gt;a=B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist() - Error&lt;br /&gt;a=B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist(0) - Good&lt;br /&gt;&lt;br /&gt;3. Exist statement with Empty braces will wait for the object synchronization time i.e. if the time is not specified in the exist statement then it will take the time from object synchronization timeout.&lt;br /&gt;&lt;br /&gt;a=B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist &amp;nbsp;- will wait for Object synchronization time by default 20 secs&lt;br /&gt;a=B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist(0) &amp;nbsp;- will wait for zero secs&lt;br /&gt;a=B(&quot;&quot;).P(&quot;&quot;).WebEdit(&quot;&quot;).Exist (10) - will wait for 10 secs&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;3. Do While:&lt;/b&gt;&lt;/u&gt; Do while loops are best suited when objects ares dynamics, objects are visible based upon state of some other objects. For example generally in application we have submit forms/submit details pages/upload attachments etc; in these cases the next page generally depends upon the size, number, connection speed &amp;amp; server response time. So we have a simple Do while loop here which will wait till the next page is not visible and we can specify the timeout period in the loop to; just in case something goes wrong.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Example:&lt;br /&gt;&lt;br /&gt;Dim Counter:Counter=0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Browser(&quot;&quot;).Page(&quot;&quot;).Frame(&quot;&quot;).Link(&quot;&quot;).Click&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;Do &lt;/span&gt;&lt;br /&gt;If Browser(&quot;&quot;).Page(&quot;&quot;).Frame(&quot;&quot;).WebTable(&quot;&quot;&quot;).Exist(5) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If trim(Browser(&quot;&quot;).Page(&quot;&quot;).Frame(&quot;&quot;).WebTable(&quot;&quot;).getcelldata(1,1))=&lt;somevalue&gt; Then&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end if &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;end if &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Counter= Counter+1&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #38761d;&quot;&gt;&#39;counter for tracking the no of attempts&lt;/span&gt;&lt;/somevalue&gt;&lt;br /&gt;If Counter=5&amp;nbsp; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reporter.ReportEvent micFail,&quot;&quot;, &quot;&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ExitActionIteration&lt;br /&gt;elseif Counter=2 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Browser(&quot;&quot;).Page(&quot;&quot;).Frame(&quot;&quot;).Link(&quot;&quot;).Click&amp;nbsp;&lt;span style=&quot;color: #93c47d;&quot;&gt; &lt;span style=&quot;color: #38761d;&quot;&gt;&#39; submit upload webtable request again&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;end If&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;Loop until Counter&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt; 5&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #38761d;&quot;&gt;&#39; exit in case webtable is not found after 5 attempts&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The above loop wait for the webtable to upload after clicking on a particular link. The loop keeps on checking some specific value ( Header of the webtable) till specified amount of time. If the webtable has not appeared the script click on the link again to do submit the upload webtable request again. If the webtable is not uploaded after 5 attempts then it will report the fail and skips to the next action iteration.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;4 Sync Method:&lt;/b&gt;&lt;/u&gt; We can use the Browser and Page sync methods to synchronize the Browser and Page navigation&lt;br /&gt;&lt;br /&gt;The following sync statements will wait for the browser to complete its navigation i.e. till the browser status bar displays &quot;Done&quot; &lt;br /&gt;&lt;b&gt;Browser(&quot;&quot;).sync&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The following sync statements will wait for the page to download i.e. displayed. Whenever we navigate to a page the page gets download, the page sync wait till the page is displayed&lt;br /&gt;&lt;b&gt;Browser(&quot;&quot;).Page(&quot;&quot;).sync&lt;/b&gt;&lt;br /&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=q0c3-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=B003VUO6H4&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/9102416931719635983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2011/01/synchronization-waitexistdo-whilesync.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/9102416931719635983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/9102416931719635983'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2011/01/synchronization-waitexistdo-whilesync.html' title='Synchronization - Wait|Exist|Do while|Sync'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-6194214446777033203</id><published>2010-12-13T12:45:00.000-05:00</published><updated>2010-12-13T12:45:04.743-05:00</updated><title type='text'>Solution: QTP is recognizing web objects as win objects</title><content type='html'>One of the following may be causing problem: &lt;br /&gt;&lt;br /&gt;1. IE- Tabbed browsing should be&amp;nbsp;disabled.&lt;br /&gt;&lt;br /&gt;2. IE - Tools - Add-ons - Manage Add-ons&amp;nbsp;-&amp;nbsp;BHOManager Class ADD-On should be&amp;nbsp;enabled.&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;Start -&amp;nbsp;QTP&amp;nbsp;- Tools&amp;nbsp;- Register New Browser Control&amp;nbsp;- IE7 exe should be&amp;nbsp;registered.&lt;br /&gt;&lt;br /&gt;4. IE-&amp;nbsp;Security Settings&amp;nbsp;- Uncheck the checkbox Enable Advance Security&lt;br /&gt;&lt;br /&gt;5. Application is opened before QTP. Application should be opened only after qtp&lt;br /&gt;&lt;br /&gt;6. dll files are corrupted. Reregister then by going thru:&amp;nbsp; Programs -&amp;gt; QTP -&amp;gt; Tools -&amp;gt; Additional installation requirements</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/6194214446777033203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2010/12/solution-qtp-is-recognizing-web-objects.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/6194214446777033203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/6194214446777033203'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2010/12/solution-qtp-is-recognizing-web-objects.html' title='Solution: QTP is recognizing web objects as win objects'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-2050151652933617402</id><published>2010-12-03T14:44:00.000-05:00</published><updated>2010-12-03T14:44:40.920-05:00</updated><title type='text'>QTP File Menu Missing problem</title><content type='html'>QTP File Menu options generally sometimes goes to hidden or missing mode. We are not able to see them. We generally try to repair/reinstall QTP, restart system, check the memory size but nothing seems to work. A very simple solution of this problem is as follows: &lt;br /&gt;&lt;br /&gt;1. Open QTP&lt;br /&gt;2. Right click in the QTP toolbar &lt;br /&gt;3. Go to customize &lt;br /&gt;4. Toolbars &lt;br /&gt;5. Reset All &lt;br /&gt;&lt;br /&gt;And the problem should be solved now.</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/2050151652933617402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2010/12/qtp-file-menu-missing-problem.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2050151652933617402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2050151652933617402'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2010/12/qtp-file-menu-missing-problem.html' title='QTP File Menu Missing problem'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-2487703464331994342</id><published>2010-11-27T20:42:00.000-05:00</published><updated>2010-12-13T09:43:04.911-05:00</updated><title type='text'>QTP Certification M39 &amp; M16</title><content type='html'>&lt;span&gt;&lt;iframe align=&quot;left&quot; frameborder=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://rcm.amazon.com/e/cm?t=q0c3-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0578025795&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&quot; style=&quot;align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;&quot;&gt;&lt;/iframe&gt;&lt;/span&gt;HP has changed the Functional testing certification exam numbers. Previously it was M16 now for QTP 10 they have changed it to M39. Also giving a exam in India is very cheap as compared to&amp;nbsp;US. The examination fee here in US is 170 $ where as when i have checked the same for India it is 70$. So its better to give the exam &amp;nbsp;in india itself :-)</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/2487703464331994342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2010/11/qtp-certification-exam-fees.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2487703464331994342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/2487703464331994342'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2010/11/qtp-certification-exam-fees.html' title='QTP Certification M39 &amp; M16'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-7886515762344939780</id><published>2010-06-27T14:01:00.000-04:00</published><updated>2010-06-27T14:01:11.436-04:00</updated><title type='text'>Difference between different QTP versions  ( 9.2, 9.5, 10.0)</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;Between QTP 9.5 &amp;amp; earlier versions&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;1.&amp;nbsp;Checkpoints and Output values can be seen &amp;amp; edited in the OR while same was not possible in the earlier versions of QTP.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;2.&amp;nbsp;Installation file is a single one bundled with all add-ins, previously we have to download add-ins separately.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;3.&amp;nbsp;Movie recorder was introduced in the results &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;4.&amp;nbsp;Web add-in extensibility add- in was introduced &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;5.&amp;nbsp;Maintenance run mode was introduced &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;6.&amp;nbsp;It also supports the 64 bit windows edition while the earlier were supporting only 32 bit systems only&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;7. Bitmap tolerance feature was introduced in QTP 9.5&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Between QTP 10.0 &amp;amp; Earlier versions&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;1. Delphi add-in extensibility is introduced &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;2. System performance parameters can be monitored &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;3.&amp;nbsp;COM objects for the Bitmap checkpoints has been introduced &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;4.&amp;nbsp;Complete UI changes &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;5.&amp;nbsp;Version control with the help of QC 10.0 &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;6.&amp;nbsp;To Do pane&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;7.&amp;nbsp;Call actions dynamically&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;8.&amp;nbsp;From QTP results we can directly go on to the script lines &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;9.&amp;nbsp;All test resources can be save on one go from QC&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/7886515762344939780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2010/06/difference-between-different-qtp.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7886515762344939780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/7886515762344939780'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2010/06/difference-between-different-qtp.html' title='Difference between different QTP versions  ( 9.2, 9.5, 10.0)'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-8716232576674868814</id><published>2010-06-25T23:58:00.000-04:00</published><updated>2012-05-05T05:33:04.828-04:00</updated><title type='text'>Test Batch Runner - Run QTP Scripts from xls file</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;To run QTP Scripts from a xls file we need to use QTP AOM. First we have to write following code in a vbs file and save it anywhere on your system.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Option Explicit&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dim qtp&amp;nbsp;&lt;/div&gt;&lt;div&gt;Set qtp =CreateObject(&quot;QuickTest.Application&quot;)&lt;/div&gt;&lt;div&gt;qtp.Launch&lt;/div&gt;&lt;div&gt;qtp.Visible=True&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dim xl,bk,s&lt;/div&gt;&lt;div&gt;Set xl=createobject(&quot;Excel.application&quot;)&lt;/div&gt;&lt;div&gt;Set bk=xl.Workbooks.Open(&quot;D:\QTPScripts\Test Batch Runner\TestBatchRunner.xls&quot;)&lt;/div&gt;&lt;div&gt;Set s=xl.ActiveWorkbook.Worksheets(&quot;Sheet1&quot;)&lt;/div&gt;&lt;div&gt;Dim RowNo&lt;/div&gt;&lt;div&gt;RowNo=2&lt;/div&gt;&lt;div&gt;While trim(lcase(s.cells(RowNo,1)))&amp;lt;&amp;gt;&quot;end&quot;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;qtp.Open s.cells RowNo,1&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Dim qtpTest&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&#39;Assign the data table path&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;qtp.Test.Settings.Resources.DataTablePath = s.cells(RowNo,2)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&#39;&amp;nbsp;Results&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Dim qtpResults&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set qtpResults = CreateObject(&quot;QuickTest.RunResultsOptions&quot;)&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&#39;run the test&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;qtp.Test.Run &amp;nbsp;qtpResults,True&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;RowNo=RowNo+1&lt;/div&gt;&lt;div&gt;Wend&lt;/div&gt;&lt;div&gt;&#39;Release Objects&lt;/div&gt;&lt;div&gt;Set qtp=nothing&lt;/div&gt;&lt;div&gt;bk.Close&lt;/div&gt;&lt;div&gt;Set s=Nothing&lt;/div&gt;&lt;div&gt;Set bk=nothing&lt;/div&gt;&lt;div&gt;Set xl=nothing&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;change the workbook path as per your workbook.&lt;/div&gt;&lt;div&gt;Either use the following format for your xls file&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_6Ull2U2f4uA/TCV6pY0ygZI/AAAAAAAAArc/F6vkWUspBV0/s1600/Untitled.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://3.bp.blogspot.com/_6Ull2U2f4uA/TCV6pY0ygZI/AAAAAAAAArc/F6vkWUspBV0/s320/Untitled.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;or adjust the script as per ur file format.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Double click the vbs file and it should run all the scripts one by one.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/8716232576674868814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2010/06/test-batch-runner-run-qtp-scripts-from.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8716232576674868814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/8716232576674868814'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2010/06/test-batch-runner-run-qtp-scripts-from.html' title='Test Batch Runner - Run QTP Scripts from xls file'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6Ull2U2f4uA/TCV6pY0ygZI/AAAAAAAAArc/F6vkWUspBV0/s72-c/Untitled.jpg" height="72" width="72"/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3524148200558152803.post-3707554475221723113</id><published>2010-06-24T13:58:00.000-04:00</published><updated>2010-08-25T07:40:23.322-04:00</updated><title type='text'>How to generate report in HTML</title><content type='html'>First Method:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&#39;sResultsXML = &quot;C:\Results.xml&quot;&lt;br /&gt;&#39;sDetailedXSL = &quot;C:\Program Files\Mercury Interactive\QuickTest Professional\dat\PDetails.xsl&quot;&lt;br /&gt;&#39;sShortXSL = &quot;C:\Program Files\Mercury Interactive\QuickTest Professional\dat\PDetails.xsl&quot;&lt;br /&gt;&#39;ApplyXSL sResultsXML, sDetailedXSL, &quot;C:\Results_Detailed.html&quot;&lt;br /&gt;&#39;ApplyXSL sResultsXML, sShortXSL, &quot;C:\Results_Short.html&quot;&lt;br /&gt;Public Function ApplyXSL(ByVal inputXML, ByVal inputXSL, ByVal outputFile)&lt;br /&gt;&amp;nbsp;&amp;nbsp; sXMLLib = &quot;MSXML.DOMDocument&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set xmlDoc = CreateObject(sXMLLib)&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set xslDoc = CreateObject(sXMLLib)&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlDoc.async = False&lt;br /&gt;&amp;nbsp;&amp;nbsp; xslDoc.async = False&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; xslDoc.load inputXSL&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; xmlDoc.load inputXML&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; outputText = xmlDoc.transformNode(xslDoc.documentElement)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set outFile = FSO.CreateTextFile(outputFile,True)&lt;br /&gt;&amp;nbsp;&amp;nbsp; outFile.Write outputText&lt;br /&gt;&amp;nbsp;&amp;nbsp; outFile.Close&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set outFile = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set FSO = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set xmlDoc = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set xslDoc = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set xmlResults = Nothing&lt;br /&gt;&amp;nbsp;End Function&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;center&gt;&lt;table 0=&quot;&quot; 1=&quot;&quot; align=&quot;&quot; border=&quot;1&quot; cellpadding=&quot;&quot; center=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr #ccffff=&quot;&quot; bgcolor=&quot;&quot;&gt;&lt;td 2=&quot;&quot; align=&quot;&quot; center=&quot;&quot; colspan=&quot;&quot; left=&quot;&quot; valign=&quot;&quot; width=&quot;15%&quot;&gt;&lt;/td&gt;&lt;td 3=&quot;&quot; align=&quot;&quot; center=&quot;&quot; colspan=&quot;&quot; left=&quot;&quot; valign=&quot;&quot; width=&quot;15%&quot;&gt;&lt;/td&gt;&lt;td 3=&quot;&quot; align=&quot;&quot; center=&quot;&quot; colspan=&quot;&quot; left=&quot;&quot; valign=&quot;&quot; width=&quot;15%&quot;&gt;&lt;/td&gt;&lt;td align=&quot;&quot; center=&quot;&quot; left=&quot;&quot; valign=&quot;&quot; width=&quot;30%&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtpvbs.blogspot.com/feeds/3707554475221723113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://qtpvbs.blogspot.com/2010/06/how-to-generate-report-ion-html.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3707554475221723113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3524148200558152803/posts/default/3707554475221723113'/><link rel='alternate' type='text/html' href='http://qtpvbs.blogspot.com/2010/06/how-to-generate-report-ion-html.html' title='How to generate report in HTML'/><author><name>Ashish Jindal</name><uri>http://www.blogger.com/profile/15468020159180599238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_6Ull2U2f4uA/TAXKPY1_E_I/AAAAAAAAAnI/IE4NxdsV0wM/S220/100_0318.JPG'/></author><thr:total>0</thr:total></entry></feed>