Micro Focus QTP (UFT) Forums
if condition throwing type mismatch error - Printable Version

+- Micro Focus QTP (UFT) Forums (https://www.learnqtp.com/forums)
+-- Forum: Micro Focus UFT (earlier known as QTP) (https://www.learnqtp.com/forums/Forum-Micro-Focus-UFT-earlier-known-as-QTP)
+--- Forum: UFT / QTP Beginners (https://www.learnqtp.com/forums/Forum-UFT-QTP-Beginners)
+--- Thread: if condition throwing type mismatch error (/Thread-if-condition-throwing-type-mismatch-error)



if condition throwing type mismatch error - rrdamuluri - 11-04-2010

Hi,

I am gettingtype mismatch errror when I run the following code's if condition. can some one tell me what is wrong in my code.
Attached error image.

And one more thing I have another attribute primary="true" which is optional and may not show up for all the image nodes also have to be in if condition. How to code that



Code:
Set urinode=xmlDoc.SelectSingleNode(imgcat)



                imgcategory= urinode.getAttribute("category")

                imgwidth=urinode.getAttribute("width")

                imgheight=urinode.getAttribute("height")



                nodepath1 = "/on/programs/program[" & i& "]/images/image[" & j & "]/URI/text()"

                Set node = xmlDoc.SelectSingleNode(nodepath1)



If ((imgcategory="Poster Art")&(imgwidth="72")&(imgheight="108")) then

                xlSheet.Rows(nRow).Columns(iCol).value=TMS

                xlSheet.Rows(nRow).Columns(iCol+1).value=node.NodeValue

                xlSheet.Rows(nRow).Columns(iCol+2).value=imgcategory

                xlSheet.Rows(nRow).Columns(iCol+3).value=Yes

else

                xlSheet.Rows(nRow).Columns(iCol).value=TMS

                xlSheet.Rows(nRow).Columns(iCol+1).value=node.NodeValue

                xlSheet.Rows(nRow).Columns(iCol+2).value=imgcategory

                End If



RE: if condition throwing type mismatch error - PrabhatN - 11-04-2010

Hi,

Instead of "&", use "AND". Actually in VB, "&" operator is used to concatenate 2 Strings.

Now your code should look like

Code:
If ((imgcategory="Poster Art") AND (imgwidth="72") AND (imgheight="108")) then

The code below doesn't provide enough information about what you want to do or how you want to include it in the IF condition. Please provide a good description

Quote:And one more thing I have another attribute primary="true" which is optional and may not show up for all the image nodes also have to be in if condition. How to code that



RE: if condition throwing type mismatch error - rrdamuluri - 11-04-2010

Thanks Prabath AND works.
And for the one you asked clarification:
I have a node image which may or may not have attribute primay.When ever it is available I want to add a column in excel that it exists.
This is the xml node without primary attribute
Code:
<image type="image/jpg" width="432" height="288" category="Poster Art">
<URI>AllPhotos/26454/26454_ac.jpg</URI>
<caption>Poster Art</caption>
<provider>Unspecified</provider>
</image>
This is the xml node with primary attribute

Code:
<image type="image/jpg" width="288" height="432" primary="true" category="Poster Art">
<URI>AllPhotos/26454/26454_aa.jpg</URI>
<caption>Poster Art</caption>
<provider>Unspecified</provider>
</image>

And the code I wrote was
Code:
If ((imgcategory="Poster Art")AND(imgwidth="72")AND(imgheight="108")) then
If urinode.Attribute("primary")<>0 Then
xlSheet.Rows(nRow).Columns(iCol).value=TMS
xlSheet.Rows(nRow).Columns(iCol+1).value=node.NodeValue
xlSheet.Rows(nRow).Columns(iCol+2).value=imgcategory
xlSheet.Rows(nRow).Columns(iCol+3).value="Yes"
imgprimary=urinode.getAttribute("primary")
xlSheet.Rows(nRow).Columns(iCol+4).value=imgPrimary
else
xlSheet.Rows(nRow).Columns(iCol).value=TMS
xlSheet.Rows(nRow).Columns(iCol+1).value=node.NodeValue
xlSheet.Rows(nRow).Columns(iCol+2).value=imgcategory
xlSheet.Rows(nRow).Columns(iCol+3).value="Yes"
End If
   else
xlSheet.Rows(nRow).Columns(iCol).value=TMS
xlSheet.Rows(nRow).Columns(iCol+1).value=node.NodeValue
xlSheet.Rows(nRow).Columns(iCol+2).value=imgcategory
End If