<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code</title><link>https://www.infopathdev.com:443/forums/45.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21747.aspx</link><pubDate>Tue, 17 Jul 2007 16:03:08 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21747</guid><dc:creator>skrile</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21747.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21747</wfw:commentRss><description>&lt;p&gt;Genius.&amp;nbsp; Here is all the code, and it works great.&amp;nbsp; I&amp;#39;ll always have an English translation, but may be missing some other.&amp;nbsp; This way, at least the English will always be dispalyed.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;//When loading the document, set all the labels to the default language id choice (english) &lt;br /&gt;function XDocument::OnLoad(eventObj) &lt;br /&gt;&amp;nbsp; { var langID = XDocument.DOM.selectSingleNode(&amp;quot;/my:myFields/my:languageview&amp;quot;).text; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setTranslations(langID);&lt;br /&gt;&amp;nbsp; } &lt;br /&gt;&lt;br /&gt;//After a user changes the language dropdown, reset all the labels if possible to the language of choice &lt;br /&gt;function msoxd_my_languageview::OnAfterChange(eventObj) &lt;br /&gt;{ var langID = XDocument.DOM.selectSingleNode(&amp;quot;/my:myFields/my:languageview&amp;quot;).text; &lt;br /&gt;&amp;nbsp; setTranslations(langID); &lt;br /&gt;}&lt;/p&gt;&lt;p&gt;//Set all the language labels to the proper translation if possible. &lt;br /&gt;function setTranslations(lid) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; var oNode = null; &lt;br /&gt;&amp;nbsp; var oNodes = XDocument.DOM.selectNodes(&amp;quot;//my:myFields/my:labels/*&amp;quot;); &lt;br /&gt;&amp;nbsp; while (oNode = oNodes.nextNode()) &lt;br /&gt;&amp;nbsp; { var theString = transtring(oNode.nodeName,lid); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XDocument.DOM.selectSingleNode(&amp;quot;/my:myFields/my:labels/&amp;quot;+oNode.nodeName).text = transtring(oNode.nodeName,lid); &lt;br /&gt;&amp;nbsp; } &lt;br /&gt;} &lt;/p&gt;&lt;p&gt;//Actually do the work of retrieving the translation. &lt;br /&gt;//First, set the translation to N/A &lt;br /&gt;//Then see if the currently selected language (languageview) has a translation &lt;br /&gt;//If not, then see if there is an English equivelant &lt;br /&gt;//If not, then just return the N/A &lt;br /&gt;function transtring(sid,thislid) &lt;br /&gt;{ var resultstring = &amp;quot;N/A&amp;quot; &lt;br /&gt;&amp;nbsp; var objTranslation = XDocument.DataObjects(&amp;quot;ThirdPartyEvent_Translations&amp;quot;).DOM; &lt;br /&gt;&amp;nbsp; objTranslation.setProperty(&amp;quot;SelectionNamespaces&amp;quot;,&amp;#39;xmlns:dfs=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/dataFormSolution&amp;quot; &amp;#39; + &amp;#39; xmlns:d=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/ado/dataFields&amp;quot;&amp;#39;); &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; //sid is passed in from a looping function that goes through all the&amp;nbsp;labels node.&amp;nbsp; InfoPath sticks a &amp;quot;my:&amp;quot; on the front of&amp;nbsp;each&lt;br /&gt;&amp;nbsp; //of the nodes.&amp;nbsp; I didn&amp;#39;t use &amp;quot;my:&amp;quot; in my naming convention in the Sharepoint list, so here we strip it out.&lt;br /&gt;&amp;nbsp; sid = sid.replace(&amp;quot;my:&amp;quot;,&amp;quot;&amp;quot;)&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; var tstring = objTranslation.selectSingleNode(&amp;quot;//dfs:myFields/dfs:dataFields/dfs:ThirdPartyEvent_Translations/@Translation[../@stringID = &amp;#39;&amp;quot;+sid+&amp;quot;&amp;#39; and ../@languageid = &amp;#39;&amp;quot;+thislid+&amp;quot;&amp;#39;]&amp;quot;);&lt;br /&gt;&amp;nbsp; if (tstring == null) &lt;br /&gt;&amp;nbsp; { tstring = objTranslation.selectSingleNode(&amp;quot;//dfs:myFields/dfs:dataFields/dfs:ThirdPartyEvent_Translations/@Translation[../@stringID = &amp;#39;&amp;quot;+sid+&amp;quot;&amp;#39; and ../@languageid = &amp;#39;en&amp;#39;]&amp;quot;) } &lt;br /&gt;&amp;nbsp; if (tstring != null) { var resultstring = tstring.text } &lt;br /&gt;&amp;nbsp; return resultstring; &lt;br /&gt;} &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks for you help.&lt;/p&gt;</description></item><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21746.aspx</link><pubDate>Tue, 17 Jul 2007 15:51:43 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21746</guid><dc:creator>davidair</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21746.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21746</wfw:commentRss><description>&lt;p&gt;Well, selectSingleNode returns a node object if xpath matches or null otherwise. So if you do .text of something which is null, you will get an exception.&lt;/p&gt;&lt;p&gt;Instead, do something like that:&lt;/p&gt;&lt;p&gt;var someNode = something.selectSingleNode(someXPath)&lt;br /&gt;if&amp;nbsp;(someNode != null)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; // do something with someNode.text&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21745.aspx</link><pubDate>Tue, 17 Jul 2007 15:43:21 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21745</guid><dc:creator>skrile</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21745.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21745</wfw:commentRss><description>&lt;p&gt;OK, I found the issue.&amp;nbsp; I named my stringIDs on my Sharepoint list things like &amp;#39;user_username&amp;#39; and &amp;#39;user_emailaddress&amp;#39;.&amp;nbsp; oNode.nodeName was returning &amp;#39;&lt;strong&gt;my:&lt;/strong&gt;user_username&amp;#39; etc.&amp;nbsp; I used the string.replace(&amp;quot;my:&amp;quot;,&amp;quot;&amp;quot;) function and all is well.&amp;nbsp; However, I was wondering.&amp;nbsp; Is there a way to &amp;quot;trap&amp;quot; the fact that the following doesn&amp;#39;t exist?&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;function transtring(sid,thislid) &lt;br /&gt;&amp;nbsp;&amp;nbsp; { var objTranslation = XDocument.DataObjects(&amp;quot;ThirdPartyEvent_Translations&amp;quot;).DOM; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objTranslation.setProperty(&amp;quot;SelectionNamespaces&amp;quot;,&amp;#39;xmlns:dfs=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/dataFormSolution&amp;quot; &amp;#39; + &amp;#39; xmlns:d=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/ado/dataFields&amp;quot;&amp;#39;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sid = sid.replace(&amp;quot;my:&amp;quot;,&amp;quot;&amp;quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var tstring = &lt;strong&gt;objTranslation.selectSingleNode(&amp;quot;//dfs:myFields/dfs:dataFields/dfs:ThirdPartyEvent_Translations/@Translation[../@stringID = &amp;#39;&amp;quot;+sid+&amp;quot;&amp;#39; and ../@languageid = &amp;#39;&amp;quot;+thislid+&amp;quot;&amp;#39;]&amp;quot;).text; return tstring;&lt;br /&gt;&amp;nbsp; &lt;/strong&gt;&amp;nbsp;}&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I tried:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;if (objTranslation.selectSingleNode(&amp;quot;//dfs:myFields/dfs:dataFields/dfs:ThirdPartyEvent_Translations/@Translation[../@stringID = &amp;#39;&amp;quot;+sid+&amp;quot;&amp;#39; and ../@languageid = &amp;#39;&amp;quot;+thislid+&amp;quot;&amp;#39;]&amp;quot;).text == null) {}&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;But that didn&amp;#39;t work.&amp;nbsp; Got the same object error.&lt;/p&gt;</description></item><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21740.aspx</link><pubDate>Tue, 17 Jul 2007 14:24:45 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21740</guid><dc:creator>davidair</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21740.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21740</wfw:commentRss><description>&lt;p&gt;Technically this code seems to make sense but maybe there is something else under labels which causes this to fail. I would recommend to step through your code in the debugger, looking at oNode at each iteration.&lt;/p&gt;</description></item><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21738.aspx</link><pubDate>Tue, 17 Jul 2007 13:54:18 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21738</guid><dc:creator>skrile</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21738.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21738</wfw:commentRss><description>&lt;p&gt;So, now I&amp;#39;m trying to use that information to refresh all the data in those nodes by values stored in another data set.&amp;nbsp; The complete code is:&lt;/p&gt;&lt;p&gt;function XDocument::OnLoad(eventObj) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; var objTranslation = XDocument.DataObjects(&amp;quot;ThirdPartyEvent_Translations&amp;quot;).DOM; objTranslation.setProperty(&amp;quot;SelectionNamespaces&amp;quot;,&amp;#39;xmlns:dfs=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/dataFormSolution&amp;quot; &amp;#39; + &amp;#39; xmlns:d=&amp;quot;http://schemas.microsoft.com/office/infopath/2003/ado/dataFields&amp;quot;&amp;#39;); &lt;br /&gt;&amp;nbsp; var selectedLanguage = XDocument.DOM.selectSingleNode(&amp;quot;/my:myFields/my:languageview&amp;quot;).text;&amp;nbsp;&lt;br /&gt;&amp;nbsp; var oNode = null &lt;br /&gt;&amp;nbsp; var transtring = &amp;quot;&amp;quot; &lt;br /&gt;&amp;nbsp; var oNodes = XDocument.DOM.selectNodes(&amp;quot;//my:myFields/my:labels/*&amp;quot;) &lt;br /&gt;&amp;nbsp; while (oNode = oNodes.nextNode()) &lt;br /&gt;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; transtring = objTranslation.selectSingleNode(&amp;quot;//dfs:myFields/dfs:dataFields/dfs:ThirdPartyEvent_Translations/@Translation[../@stringID = &lt;strong&gt;&lt;u&gt;&amp;#39;user_sectionhead&amp;#39;&lt;/u&gt;&lt;/strong&gt; and ../@languageid = &amp;#39;&amp;quot; + selectedLanguage + &amp;quot;&amp;#39;]&amp;quot;).text &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (transtring != null) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {XDocument.DOM.selectSingleNode(&amp;quot;/my:myFields/my:labels/&amp;quot; + oNode.nodeName).text = transtring} &lt;br /&gt;&amp;nbsp; &amp;nbsp;} &lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The above code WORKS!&amp;nbsp; But, all the labels are painted with the corresponding text to the &lt;em&gt;user_sectionhead&lt;/em&gt; stringid.&lt;/p&gt;&lt;p&gt;The problem I am running in to is that when I try to replace &amp;#39;user_sectionhead&amp;#39; (one of the names of my nodes under &lt;em&gt;labels&lt;/em&gt;) I get a Object required error.&amp;nbsp; Here is the syntax that IS NOT WORKING:&lt;/p&gt;&lt;p&gt;transtring = objTranslation.selectSingleNode(&amp;quot;//dfs:myFields/dfs:dataFields/dfs:ThirdPartyEvent_Translations/@Translation[../@stringID = &lt;strong&gt;&lt;u&gt;&amp;#39;&amp;quot; + oNode.nodeName&amp;nbsp;+ &amp;quot;&amp;#39;&lt;/u&gt;&lt;/strong&gt;and ../@languageid = &amp;#39;&amp;quot; + selectedLanguage + &amp;quot;&amp;#39;]&amp;quot;).text&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Could it be that oNode.nodeName is not &amp;quot;text&amp;quot; and needs to be converted to a string?&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21735.aspx</link><pubDate>Tue, 17 Jul 2007 13:26:30 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21735</guid><dc:creator>skrile</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21735.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21735</wfw:commentRss><description>Boo ya.&amp;nbsp; Thank you.&amp;nbsp; That did it!</description></item><item><title>Re: Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21734.aspx</link><pubDate>Tue, 17 Jul 2007 13:23:57 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21734</guid><dc:creator>davidair</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21734.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21734</wfw:commentRss><description>&lt;p&gt;Try the following xpath instead:&lt;/p&gt;&lt;p&gt;/my:myFields/my:labels/*&lt;/p&gt;&lt;p&gt;Then you should be able to use nodeName&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Looping through Data Source nodes</title><link>https://www.infopathdev.com:443/forums/thread/21731.aspx</link><pubDate>Tue, 17 Jul 2007 13:07:40 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:21731</guid><dc:creator>skrile</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/21731.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=21731</wfw:commentRss><description>&lt;p&gt;I have a project where I want to loop through a group of data in my Main Datasource.&amp;nbsp; The structure of my data is:&lt;/p&gt;&lt;p&gt;&amp;nbsp;Main&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myFields&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; lables&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; label1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; label2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; label3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; label4&lt;/p&gt;&lt;p&gt;&amp;nbsp;What I want to do is write a looping function that looks at each of the children of &lt;em&gt;labels&lt;/em&gt; and then do some stuff.&amp;nbsp; I&amp;#39;ve tried something like this:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;var oNode = null &lt;br /&gt;var oNodes = XDocument.DOM.selectNodes(&amp;quot;//my:myFields/my:labels&amp;quot;) &lt;br /&gt;while (oNode = oNodes.nextNode()) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { XDocument.UI.Alert(oNode.text); }&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This shows me the TEXT of each oNode, but I want the NAME of the oNode.&amp;nbsp; &lt;/p&gt;&lt;p&gt;I&amp;#39;ve tried&amp;nbsp;&amp;nbsp;&lt;em&gt;XDocument.UI.Alert(oNode.nodeName);&lt;/em&gt; and it just returns &lt;em&gt;my:labels&lt;/em&gt;.&amp;nbsp; &lt;/p&gt;&lt;p&gt;I&amp;#39;ve tried &lt;em&gt;XDocument.UI.Alert(oNode.firstChild.nodeName);&lt;/em&gt; and it just returns &lt;em&gt;#text&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Any thoughts?&lt;/p&gt;</description></item></channel></rss>