21 Replies Latest reply on Jun 16, 2010 6:30 AM by BhaskerChari

    Load XML file from different location?

    tjay99

      Hi All,

       

      I've been going through an exercise by Karl Matthews to load XML data into an AIR App:

       

      http://www.adobe.com/devnet/air/flex/articles/xml_viewer_on_air.html

       

      but I would like to change where the XML file used in the project is retrieved from.

       

      Currently the XML file is loaded from here:

       

       

       

      <!-- Set up the HTTP service from where we get the source XML data -->

       

       

      <mx:HTTPService id="srcData"

      url="

      assets/UserGuide.xml"

      result="loadModelData(event)"

      />

       

      but I would like to load the XML file from one of these locations instead:

       

      File.userDirectory:

      File.documentsDirectory:

       

      Can someone please show me how I should change the above code to accomplish this, as my efforts to date have not been successful :-(

       

      I am using Flex Builder 3 and Air 1.5.

       

      Thanks heaps!

       

      Tim

        • 1. Re: Load XML file from different location?
          BhaskerChari Level 4

          Hi Tim,

           

          You can use the below code to read a XML file present in the userDirectory in the assets folder.

           

          private function readXMLContent(xmlFile:File,objContentView:Object):Array
                   {
                    var reportDir:File = File.userDirectory.resolvePath("assets");
              var xmlFile:File;
              var fileStream:FileStream = new FileStream();   
              xmlFile = reportDir.resolvePath("UserGuide.xml");
              if(xmlFile.exists && xmlFile.size > 0)// Checking if the impressions.xml file already exists and the file is not empty
              {
               var stream:FileStream = new FileStream();
                  var xml:XML = new XML();              
               stream.open(xmlFile, FileMode.READ);
              
               xml = XML(stream.readUTFBytes(stream.bytesAvailable));
               stream.close();
              }
                   }

           

          If this post answers your question or helps, please kindly mark it as such.


          Thanks,

          Bhasker Chari

          • 2. Re: Load XML file from different location?
            tjay99 Level 1

            Hi Bhasker,

             

            Thank you for replying.

             

            I am not very good at all this coding, but I am assuming I should now be doing entering the following:

             

             

            =======================

             

            <?xml version="1.0" encoding="utf-8"?>

            <mx:WindowedApplication

             

             

            xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"

            width="

            800" height="660"

            xmlns:comp="

            *" xmlns:fmtComp="fmtComps.*"

            creationComplete="srcData.send()"

            paddingLeft="

            0" paddingRight="0" paddingTop="0" paddingBottom="0">

             

             

             

            <mx:Script>

            <![CDATA[

             

             

            import mx.utils.ObjectProxy;

             

            import mx.rpc.events.ResultEvent;

             

            [

            Bindable]

             

            private var userManualObj:ObjectProxy;

             

             

            private function loadModelData(event:ResultEvent):void

            {

            userManualObj=event.result.UserManual;

            }

             

             

             

             

            private function readXMLContent(xmlFile:File,objContentView:Object):Array

            {

             

            var reportDir:File = File.userDirectory.resolvePath("assets");

             

            var xmlFile:File;

             

            var fileStream:FileStream = new FileStream();

            xmlFile = reportDir.resolvePath(

            "UserGuide.xml");

             

            if(xmlFile.exists && xmlFile.size > 0)// Checking if the impressions.xml file already exists and the file is not empty

            {

             

             

            var stream:FileStream = new FileStream();

             

            var xml:XML = new XML();

            stream.open(xmlFile, FileMode.READ);

             

            xml = XML(stream.readUTFBytes(stream.bytesAvailable));

            stream.close();

            }

            }

             

            ]]>

             

            </mx:Script>

             

             

             

             

            <!-- Set up the HTTP service from where we get the source XML data

            <mx:HTTPService id="srcData"

            url="assets/UserGuide.xml"

            result="loadModelData(event)"/> -->

             

             

             

             

            <mx:VBox width="100%" horizontalAlign="left" height="100%"

            paddingBottom="

            0" paddingLeft="0" paddingRight="0" paddingTop="0">

             

             

             

            <mx:TabNavigator width="100%" height="100%"

            paddingBottom="

            0" paddingLeft="0" paddingRight="0" paddingTop="0">

             

             

            <mx:Repeater id="modelsRep" dataProvider="{userManualObj.Product.Model}">

             

             

            <mx:VBox label="{modelsRep.currentItem.Name}" width="100%" height="100%">

             

             

            <comp:ModelDesc model="{modelsRep.currentItem}"/>

             

            </mx:VBox>

             

             

            </mx:Repeater>

             

             

            <mx:VBox label="Troubleshooting" width="100%" height="100%"

            paddingBottom="

            0" paddingLeft="0" paddingRight="0" paddingTop="0">

             

             

            <comp:Troubleshooting issues="{userManualObj.Product.Troubleshooting.Issue}" />

             

             

            </mx:VBox>

             

             

            </mx:TabNavigator>

             

             

             

            </mx:VBox>

            </mx:WindowedApplication>

             

             

            =======================

             

            and create and "assets" folder in my user directory placing the XML file in there?

             

            However when I do all that, I get this error when I try to compile:

             


              Encountered errors or warnings while building project main.mxml.
                main.mxml: Function does not return a value.

             

             

            Any thoughts?

             

            Many thanks,

             

            Tim

            • 3. Re: Load XML file from different location?
              BhaskerChari Level 4

              Hi Tim,

               

              That is a simple error actually the "readXMLContent" function is datatyped to return Array but it is not returning anything so that's why it is throwing an error.

               

              Simply you had to datatype the function return type as void.

               

              Repace the below function with the one I posted earliar:

               

              private function readXMLContent():void
                {
                 var reportDir:File = File.userDirectory.resolvePath("assets");
                 var xmlFile:File;
                 var fileStream:FileStream = new FileStream();
                 xmlFile = reportDir.resolvePath("UserGuide.xml");
                 if(xmlFile.exists && xmlFile.size > 0)// Checking if the UserGuide.xml file already exists and the file is not empty
                 {
                  var stream:FileStream = new FileStream();
                  var xml:XML = new XML();
                  stream.open(xmlFile, FileMode.READ);
                  xml = XML(stream.readUTFBytes(stream.bytesAvailable));
                  stream.close();
                 }
                }

               

              If this post answers your question or helps, please kindly mark it as such.


              Thanks,

              Bhasker Chari

              • 4. Re: Load XML file from different location?
                tjay99 Level 1

                Hi Bhasker,

                 

                I think we are getting there, but since I commented out these lines:

                 

                 

                 

                <!-- Set up the HTTP service from where we get the source XML data

                <mx:HTTPService id="srcData"

                url="assets/UserGuide.xml"

                result="loadModelData(event)"/> -->

                 

                I now get this error:

                 


                  Encountered errors or warnings while building project main.mxml.
                    main.mxml: Access of undefined property srcData.

                 

                 

                due to the following call:

                 

                creationComplete="srcData.send()"

                 

                If I change it to:

                 

                creationComplete="readXMLContent()"

                 

                it compiles, but when the Air App runs, no data loads?

                 

                 

                Your thoughts?

                 

                Thanks


                Tim

                • 5. Re: Load XML file from different location?
                  tjay99 Level 1

                  MaybeI should be doing something with this line too:

                   

                  loadModelData(event)

                   

                  ??

                   

                   

                  Ta

                   

                  Tim

                  • 6. Re: Load XML file from different location?
                    BhaskerChari Level 4

                    Hi Tim,

                     

                    Since you have commented those lines there is no reference to srcData variable so the error encountered.

                     

                    Now what you are doing is right i.e; calling creationComplete="readXMLContent()".

                     

                    Try to debug by putting the break point near the readXMLContent() function and check whether the xml file exists and if it is entering into if condition or not.

                     

                    Thanks,

                    Bhasker Chari

                    • 7. Re: Load XML file from different location?
                      BhaskerChari Level 4

                      Hi Tim,

                       

                      I have tested the application and it is loading the xml data...fine.

                       

                      Note: Please verify that you have placed the assets folder and xml in the correct path.

                       

                      On Windows, the path is C:\Documents and Settings\userName and On Mac OS it is /Users/userName.

                       

                      You can also remove the loadModelData() function and the commented lines...since these lines of code are no longer useful.

                       

                      Below is the total working code:

                       

                      <?xml version="1.0" encoding="utf-8"?>
                      <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
                      width="800" height="660" xmlns:comp="*" xmlns:fmtComp="fmtComps.*"
                      creationComplete="readXMLContent();" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
                      <mx:Script>
                      <![CDATA[
                        import mx.utils.ObjectProxy;
                        import mx.rpc.events.ResultEvent;
                        [Bindable]
                        private var userManualObj:ObjectProxy;
                        private function loadModelData(event:ResultEvent):void
                        {
                         userManualObj=event.result.UserManual;
                        }
                        private function readXMLContent():void
                        {
                           var reportDir:File = File.userDirectory.resolvePath("assets");
                           var xmlFile:File;
                           var fileStream:FileStream = new FileStream();
                           xmlFile = reportDir.resolvePath("UserGuide.xml");
                           if(xmlFile.exists && xmlFile.size > 0)// Checking if the UserGuide.xml file already exists and the file is not empty
                           {
                            var stream:FileStream = new FileStream();
                            var xml:XML = new XML();
                            stream.open(xmlFile, FileMode.READ);
                            xml = XML(stream.readUTFBytes(stream.bytesAvailable));
                            stream.close();
                           }
                          }
                      ]]>
                      </mx:Script>

                      <!-- Set up the HTTP service from where we get the source XML data

                       

                      <mx:HTTPService id="srcData"

                       

                      url="assets/UserGuide.xml"

                       

                      result="loadModelData(event)"/> -->

                      <mx:VBox width="100%" horizontalAlign="left" height="100%"
                      paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
                        <mx:TabNavigator width="100%" height="100%"
                        paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
                         <mx:Repeater id="modelsRep" dataProvider="{userManualObj.Product.Model}">
                          <mx:VBox label="{modelsRep.currentItem.Name}" width="100%" height="100%">
                          <comp:ModelDesc model="{modelsRep.currentItem}"/>
                          </mx:VBox>
                         </mx:Repeater>
                         <mx:VBox label="Troubleshooting" width="100%" height="100%"
                         paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
                          <comp:Troubleshooting issues="{userManualObj.Product.Troubleshooting.Issue}" />
                         </mx:VBox>
                        </mx:TabNavigator>
                      </mx:VBox>
                      </mx:WindowedApplication>

                      If this post answers your question or helps, please kindly mark it as such.


                      Thanks,

                      Bhasker Chari

                      • 8. Re: Load XML file from different location?
                        tjay99 Level 1

                        Hi Bhasker,

                         

                        I'll double check my folders, as it's still not working. I'll let you know my findings.

                         

                        Thank you so much for your efforts today :-)

                         

                        Tim

                        • 9. Re: Load XML file from different location?
                          tjay99 Level 1

                          Hi Bhasker,

                           

                          I've just spent that last 4 hours trying all sorts of things to try to get this to work, but I still don't get the XML data displaying? I've played around with other apps to display directories and files within those directories such as this:

                           

                          =====================

                          <?xml version="1.0" encoding="utf-8"?>

                          <mx:WindowedApplication

                           

                           

                          xmlns:mx="http://www.adobe.com/2006/mxml"

                          layout="

                          absolute" title="List all files and folders from the desktop">

                           

                           

                          <mx:Script>

                          <![CDATA[

                           

                           

                          import mx.collections.ArrayCollection;

                           

                          import flash.filesystem.File;

                           

                           

                          //declare array collection 'listfiles' dataprovider for the list//

                          [

                           

                          Bindable]

                           

                          private var listfiles:ArrayCollection=new ArrayCollection();

                           

                           

                          private function listdesktopfiles():void{

                           

                           

                          //point the file object 'desktop' to the desktop path//

                           

                           

                           

                          /*var desktop:File = File.userDirectory; */

                           

                           

                          var desktop:File = File.userDirectory.resolvePath("assets");

                           

                          /* will direct the path to the subdirectory 'Adobe AIR' available on the desktop */

                           

                           

                           

                          //getDirectoryListing() returns array of file objects from the file object pointer, desktop in this case//

                           

                           

                          var getfiles:Array = desktop.getDirectoryListing();

                           

                           

                          //Push all thi values to the Arraycollection to be diaplayed in the list//

                           

                           

                          for (var i:int = 0; i < getfiles.length; i++) {

                          listfiles.addItemAt((getfiles[i].nativePath), i);

                          }

                          }

                          ]]>

                           

                          </mx:Script>

                           

                           

                          <mx:Style>

                           

                           

                          .pad5{

                           

                          paddingTop:5;

                           

                          paddingLeft:5;

                           

                          paddingRight:5;

                           

                          paddingBottom:5

                           

                           

                          }

                           

                          </mx:Style>

                           

                           

                          <mx:VBox width="100%" height="100%" styleName="pad5">

                           

                           

                          <mx:Button label="Show all files/folders on Desktop" click="listdesktopfiles()"/>

                           

                           

                          <mx:List id="getlistings" dataProvider="{listfiles}" width="100%" height="100%"/>

                           

                           

                          </mx:VBox>

                          </mx:WindowedApplication>

                           

                          =====================

                           

                          which shows files in the right place (the swf's are just copied over is case it helped):

                           

                           

                          Untitled-3.gif

                           

                          but the XML App just shows a blank canvas with the words "Troubleshooting" top left twice.

                           

                          I am not familar with the de-bugging side of things in Flex, so what I should do to get confirmation as to when the XML file is located and loaded? This will then narrow down where the problem may be?

                           

                          Things would've been so much easier if we could've just done something like this:

                           

                          <mx:HTTPService id="srcData"

                          url=File.userDirectory.resolvePath("

                           

                          assets/UserGuide.xml")

                          result="loadModelData(event)"/>

                           

                           

                           

                          ;-)

                           

                          Looking forward to your reply.

                           

                          Thanks

                           

                          Tim

                           

                           

                           

                           

                           

                           

                          • 10. Re: Load XML file from different location?
                            BhaskerChari Level 4

                            Hi tim,

                             

                            You need to debug your application defenitely then you will come to know what's wrong in your application.

                             

                            Ok do the follwing to debug your application:

                             

                            1) On the top right of you FlexBuilder IDE Select Flex Debugging perspective...(default is FlexDevelopment Change it to Flex Debugging)

                             

                            2) Put a break point at the function readXMLContent() in app. You can put break point either by double clicking on the left of the numbering or simply place the cursor on the start of the function line and click CTRL + SHIFT + B key simultaneously. Then you can see a blue dot appear at that line ehich indicate that you have set a break point.

                             

                            3) After that click F11 key in you FB3 IDe then you application will launch in debug mode.

                             

                            4) After that you can see a green bar appearing at the function.Please find the screen shot attached.

                             

                            5) After this press F6 and try to go over through the next line and check whether the control has entered into the if condition in the function. If it hasn't entered into the if condition then ot means that xml file doesnt exists in that path. If it enters into the if condition then watch the variable xml after the green bar passes the line of code....xml = XML(stream.readUTFBytes(stream.bytesAvailable));

                             

                            You can watch the varible by right clicking on the xml variable in the IDE and you can see the variable values displayed in the Expressions window.

                             

                            If the Expressions window is not visible then you can open it by going to Window>>>Expressions in IDE.

                             

                            Hope this is very clear now how to debug your application now

                             

                             

                            Thanks,

                            Bhasker Chari

                            debug.JPG

                            • 11. Re: Load XML file from different location?
                              tjay99 Level 1

                              Hi Bhasker,

                               

                              Fantastic instructions thanks, unfortunately it didn't alert me to anything. From what I can work out, it still can't find the right folder/file to load, as I believe I saw references to NULL when I viewed in the Expressions window.

                               

                              I have tried everything, putting files/folders everywhere on my machine, just in case I was doing something wrong. Even renamed things, tried different projects, tried different computers, you name it, I think I've tried it.

                               

                              How about we try this one, can you send me a new Flex project and seperate XML file that simply:

                               

                              - Looks for an XML file in a different directory than where the project is installed

                              - Displays a few lines of data from the XML file in the Window

                               

                              From that, I am sure I can work out what's going on, as I feel Flex versions or XML declarations or something like that may be the reason why I'm having so much trouble.

                               

                              Hope that's not too much hassle for you, as I really want to get on top of this and learn to use Flex for many more things in the future. It's seems pretty cool.

                               

                              Thanks

                               

                              Tim

                              • 12. Re: Load XML file from different location?
                                tjay99 Level 1

                                Hi Bhasker,

                                 

                                Sorry to be a pain in the backside, but have you had a chance to look at my last post before this one?

                                 

                                Thanks

                                 

                                Tim

                                • 13. Re: Load XML file from different location?
                                  BhaskerChari Level 4

                                  Hi Tim,

                                   

                                  Sorry I dint had a chance to view your previous post...Do you want me to send a project ..? sorting out this problem...?

                                   

                                  Please leave your mailing address..I will email the project to you..

                                   

                                   

                                  Thanks,

                                  Bhasker Chari

                                  • 14. Re: Load XML file from different location?
                                    tjay99 Level 1

                                    Hi Bhasker,

                                     

                                    If you can create a very simple/basic project that would be a great help. Please send to:

                                     

                                    tjayblack123@gmail.com

                                     

                                    Many thanks for that,

                                     

                                    Tim

                                    • 15. Re: Load XML file from different location?
                                      BhaskerChari Level 4

                                      Hi Tim,

                                       

                                      Try to put your assets folder with UserGuide.xml on Desktop and try to use the below code:

                                       

                                      I have modified the path in below code to pint to desktopDirectory. Now by using the below code you should see an Alert displaying the xml loaded from the file. Please find the screenshot attached....You will see the Alert as soon as you launch the application..Please verify that you have now the assets folder with UserGuide.xml file placed on your desktop.

                                       

                                      <?xml version="1.0" encoding="utf-8"?>
                                      <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
                                      width="800" height="660" xmlns:comp="*" xmlns:fmtComp="fmtComps.*"
                                      creationComplete="readXMLContent();" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
                                      <mx:Script>
                                      <![CDATA[
                                        import mx.controls.Alert;
                                        import mx.utils.ObjectProxy;
                                        import mx.rpc.events.ResultEvent;
                                        [Bindable]
                                        private var userManualObj:ObjectProxy;
                                        private function loadModelData(event:ResultEvent):void
                                        {
                                         userManualObj=event.result.UserManual;
                                        }
                                        private function readXMLContent():void
                                        {
                                           var reportDir:File = File.desktopDirectory.resolvePath("assets");
                                           var xmlFile:File;
                                           var fileStream:FileStream = new FileStream();
                                           xmlFile = reportDir.resolvePath("UserGuide.xml");
                                           if(xmlFile.exists && xmlFile.size > 0)// Checking if the UserGuide.xml file already exists and the file is not empty
                                           {
                                            var stream:FileStream = new FileStream();
                                            var xml:XML = new XML();
                                            stream.open(xmlFile, FileMode.READ);
                                            xml = XML(stream.readUTFBytes(stream.bytesAvailable));
                                            var strXml:String = xml.toXMLString();
                                            Alert.show(strXml);
                                            stream.close();
                                           }
                                          }
                                      ]]>
                                      </mx:Script>

                                      <mx:VBox width="100%" horizontalAlign="left" height="100%"
                                      paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
                                        <mx:TabNavigator width="100%" height="100%"
                                        paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
                                         <mx:Repeater id="modelsRep" dataProvider="{userManualObj.Product.Model}">
                                          <mx:VBox label="{modelsRep.currentItem.Name}" width="100%" height="100%">
                                          <!--<comp:ModelDesc model="{modelsRep.currentItem}"/>-->
                                          </mx:VBox>
                                         </mx:Repeater>
                                         <mx:VBox label="Troubleshooting" width="100%" height="100%"
                                         paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
                                          <!--<comp:Troubleshooting issues="{userManualObj.Product.Troubleshooting.Issue}" />-->
                                         </mx:VBox>
                                        </mx:TabNavigator>
                                      </mx:VBox>
                                      </mx:WindowedApplication>

                                       

                                       

                                       

                                      If this post answers your question or helps, please kindly mark it as such.


                                      Thanks,

                                      Bhasker Chari

                                      xml.JPG

                                      • 16. Re: Load XML file from different location?
                                        tjay99 Level 1

                                        Hi Bhasker,

                                         

                                        When I use your code, the alert box opens and it displays the content of the XML file (I've just pasted a little bit of it below):

                                         

                                         

                                        ========================

                                         

                                         

                                        <UserManual Language="English" Season="Summer" Year="2008">
                                          <Product ProductGroup="Sunglasses" BrandName="Slades" Number="500">
                                            <Para>Slades—the world’s leading sunglasses—featuring unparalleled style, comfort, and protection against the glare of the sun. There’s a style that’s right for you—from everyday needs to the demands of extreme sports</Para>
                                            <Model ModelNumber="146 146 010" Id="BABCHEHF" Season="Summer">
                                              <Name>XT007 Uptown Style</Name>
                                              <Picture>
                                             

                                         

                                        ..........

                                         

                                         

                                        </Concern>
                                                <Action>
                                                  <Para>Place frames in hot water for 5 minutes and then gently bend frames and temple pieces to fit. Repeat actions until frames fit comfortably. If the glasses cannot be refitted using this method, visit your sunglasses retailer for assistance.</Para>
                                                </Action>
                                              </Issue>
                                            </Troubleshooting>
                                          </Product>
                                        </UserManual>

                                         

                                        ========================

                                         

                                        So that appears to work. However when I click the OK button, it just displays the "Troubleshooting" tab and that's it.

                                         

                                         

                                        If you can send over a little project that loads an XML file without all the extra files that this project has, it might help me track down the problem further?

                                         

                                        Your thoughts?

                                         

                                         

                                        Thanks

                                         

                                        Tim

                                        • 17. Re: Load XML file from different location?
                                          BhaskerChari Level 4

                                          Hi Tim,

                                           

                                          What else do you need ..?? Its working now for you as you told...After you click ok button you could not see anything in the aplication because I am not displaying anything in the application.

                                           

                                          I have displayed the xml in Alert just to show you that its working(I mean loading of the xml).

                                           

                                           

                                          Now you can make use of the xml variable pouplated  in the function readXMLContent() function and do whatever you want..So now you can make use of the xml variable which holds the reference to the UserGuide.xml data.

                                           

                                          xml = XML(stream.readUTFBytes(stream.bytesAvailable)); (This is the variable I am talking to.)

                                           

                                          Thanks,

                                          Bhasker Chari

                                          • 18. Re: Load XML file from different location?
                                            tjay99 Level 1

                                            Hi Bhasker,

                                             

                                            Therefore if I comment out:

                                             

                                            // var strXml:String = xml.toXMLString();

                                             

                                             

                                             

                                            // Alert.show(strXml);

                                             

                                            and remove your other comments towards the bottom, everything should work, however I am still left with a relatively blank canvas like I was at the start of this problem.

                                             

                                            I suspect this proves there must be something else in the project code that is looking for the original directory not the new Desktop directory that we now have it set to.

                                             

                                            Does everything work on your PC if you comment out the above lines?

                                             

                                             

                                            Ta

                                             

                                            Tim

                                             

                                             

                                             

                                            • 19. Re: Load XML file from different location?
                                              BhaskerChari Level 4

                                              Hi Tim,

                                               

                                              I couldn't figure out your problem exactly without having your full code.

                                               

                                              If you can send me all your project with all your includes(components) I may help you.

                                               

                                              You can mail me at bhaskerchari903@gmail.com

                                               

                                              Thanks ,

                                              Bhasker Chari

                                              • 20. Re: Load XML file from different location?
                                                tjay99 Level 1

                                                Hi Bhasker,

                                                 

                                                You have gone above and beyond what I expected, so I'll try to nut out the rest of it myself and stop hassling you.

                                                 

                                                Thanks again for all your help.

                                                 

                                                Cheers

                                                 

                                                Tim

                                                • 21. Re: Load XML file from different location?
                                                  BhaskerChari Level 4

                                                  Hi Tim,

                                                   

                                                  I wish u all the best for the rest of your work..

                                                   

                                                  Thanks,

                                                  Bhasker